mirror of
https://github.com/friendica/friendica
synced 2026-01-15 02:28:41 +01:00
Merge branch 'master' into develop
This commit is contained in:
commit
27d94023ee
70 changed files with 27138 additions and 26508 deletions
128
CHANGELOG
128
CHANGELOG
|
|
@ -1,3 +1,129 @@
|
|||
Version 3.6 (2018-03-23)
|
||||
Friendica Core:
|
||||
Updates to the translations (DE, EN_GB, EN_US, ES, FR, IT, ZH_CN) [translation teams]
|
||||
Updates for the Danish and French regions [Alkarex]
|
||||
Update for the documentation [andyhee, annando, rabuzarus, ratten, rudlof, silke, tobiasd]
|
||||
Updates to the themes [Andi-K, annando, fabrixxm, hoergen, rebeka-catalina, rabuzarus]
|
||||
Enhancements to the ARIA support in frio [rabuzarus]
|
||||
Enhancements to the DB handling and structure [annando]
|
||||
Enhancements to the API [annando, fabrixxm, MrPetovan, rudlof]
|
||||
Enhancements to the support of Open Graph with images [hoergen]
|
||||
Enhancements to the Diaspora federation (participation signal, relay of dislikes, basic forum support for D*, Birthdays) [annando]
|
||||
Enhancements to the OStatus federation [annando]
|
||||
Enhancements to the handling of feed contacts [MrPetovan]
|
||||
Enhancements to the display of threaded discussions (optional) [MrPetovan]
|
||||
Enhancements to the display of events [hoergen]
|
||||
Enhancements to the ACL dialog (selection of forums) [rabuzarus]
|
||||
Enhancements to the handling of new connections [annando]
|
||||
Enhancements to the vitality check of contacts [annando]
|
||||
Enhancements to the daemon script [annando]
|
||||
Enhancements to the federation stats [annando, tobiasd]
|
||||
Enhancements to the interaction with public posts [annando]
|
||||
Enhancements to the structure of the admin panel [tobiasd]
|
||||
Enhancements to the community page [annando]
|
||||
Enhancements to the delegation of accounts [annando, MrPetovan]
|
||||
Enhancements to the user import and server relocation functionality [annando]
|
||||
Enhancements to the menu layout in the admin panel [tobiasd]
|
||||
Enhancements to the extraction of strings to be translated [fabrixxm, MrPetovan]
|
||||
Enhancements to the installation wizard [annando, tobias]
|
||||
Enhancements to the events [annando, hoergen, MrPetovan, rabuzarus]
|
||||
Enhancements to the handling of email contacts [annando]
|
||||
Enhancements to the Vagrant configuration of the development VM [tobias]
|
||||
Enhancements to the probing of pump.io profiles [annando]
|
||||
Enhancements to the handling of BBCode tags [MrPetovan]
|
||||
Enhancements to the OEmbed handling [MrPetovan]
|
||||
Fixed a bug that triggered the display of activities on the cummunity page [annando]
|
||||
Fixed a bug with personal notes [annando]
|
||||
Fixed a display issue of long postings when using the showmore option [annando]
|
||||
Fixed a bug that caused Twidere to crash on reload [annando]
|
||||
Fixed a bug in the exported data to the-federation.info [annando]
|
||||
Fixed a bug in URL completion for feed fragments [annando]
|
||||
Fixed a bug in the notification system about new registrations [annando]
|
||||
Fixed the display of dislikes [annando]
|
||||
Fixed the display of orphans childs in threads [MrPetovan]
|
||||
Fixed some SQL problems [annando]
|
||||
Fixed the CLI config script [tobiasd]
|
||||
Fixed the forum selection on the network display [annando]
|
||||
Fixed a bug during the import of accounts [annando]
|
||||
Fixed a problem with UTF8 encoding during account export [annando]
|
||||
Fixed a problem with archiving "self" contacts [annando]
|
||||
Fixes to file permissions lintian reported [tobiasd]
|
||||
Fixed a session problem leading to double login problem [MrPetovan]
|
||||
Fixed a bug that caused code blocks on Diaspora being displayed wrongly [MrPetovan]
|
||||
Fixed a bug that suggested it was possible to use some bridges without an account on the other side [annando]
|
||||
Fixed the situation that an OStatus activity was triggered when publishing a image without sending out a posting for it [annando]
|
||||
Fixed some issues with the display of exported events on GNU social and diaspora [annando]
|
||||
Fixed the issue that Atom feeds of forums had no postings listed [annando]
|
||||
Fixed a problem with the expiration of accounts [annando]
|
||||
Added Atom feed for conversations [annando]
|
||||
Added the possibility to address forums with !forumname [annando]
|
||||
Added option to compare version against upstream version [tobiasd]
|
||||
Added an optional hint that a global community page is global [tobiasd]
|
||||
Added an option to always display the preview image in shared articles even if larger ones exist [annando]
|
||||
Added CLI script to silence accounts on the community page [tobiasd]
|
||||
Added CLI script to block postings to a node from accounts [tobiasd]
|
||||
Added account block interface to the admin panel [MrPetovan]
|
||||
Added browser bookmarklet code snippet [hoergen]
|
||||
Added an additional feature to display a tag cloud on the profile page [rabuzarus]
|
||||
Added retrieval of Mastodon server statistics [annando]
|
||||
Added Atom feed that only contains top level postings of a user [annando]
|
||||
Added tag following via saved search for #hashtag [annando]
|
||||
Added PHP version information to the admin panel [MrPetovan]
|
||||
Added the possibility to change relationships between Friendica contacts [annando]
|
||||
Added the membersince functionality from the addon to the core [rabuzarus]
|
||||
Added support of nodeinfo 2.0 [annando]
|
||||
Removed the long deprecated internal templating engine [annando]
|
||||
Removed the obsolete mysql support, you have to use MySQLI or PDO [annando]
|
||||
Removed the unused mood module [annando]
|
||||
Removed connect link from side panel when it should not be there [annando]
|
||||
Removed very old updating routines [annando]
|
||||
Dependencies are now (mostly) handled by composer [MrPetovan, zeroadam]
|
||||
General code refactoring and beautification work [annando, MrPetovan, tobiasd, zeroadam]
|
||||
ejabberd logs are now handled by syslog [annando]
|
||||
Moved the poller script to the "scripts" directory and renamed it to worker [annando]
|
||||
Threaded display of conversations is now always enabled [annando]
|
||||
Images send to public forums are now always public as well [annando]
|
||||
The DB cleanup option now includes the conversation table [annando]
|
||||
Hash tags now always search locally [annando]
|
||||
Consistent naming of addons (instead of plugins and addons) [zeroadam]
|
||||
Community page is split between local and global and always visible for local users [annando]
|
||||
Updated the credits to include new contributors [tobiasd]
|
||||
|
||||
Friendica Addons:
|
||||
Updates to the translations (DE, EN_GB, ES, FR, IT, NL, ZH_CN) [translation teams]
|
||||
all bridges don't relay postings anymore that are posted to a public forum [annando]
|
||||
DAV addon marked unsupported [tobiasd]
|
||||
Current Weather: fixing a problem with the weathermap link [zeroadam]
|
||||
NSFW added config examples, reworked the description, now ignores the CW from Mastodon [andyhee, annando, rebeka-catalina]
|
||||
Twitter support 280 chars limit [annando]
|
||||
OpenWeatherMap fix broken map link [zeroadam]
|
||||
CommunityHome added settings to admin panel, removed active users feature [annando, fabrixxm]
|
||||
General code refactoring and beautification work [annando, MrPetovan, tobiasd, zeroadam]
|
||||
Public Server reworked [annando]
|
||||
pageheader settings beautifications [tobiasd]
|
||||
mailstream settings beautifications [tobiasd]
|
||||
Membersince is now part of the core [rabuzarus]
|
||||
Forum posts are not transmitted over the connectors anymore [annando]
|
||||
|
||||
Friendica Dir:
|
||||
Fixed a problem with the maintenance cron [MrPetovan]
|
||||
Fixed a problem with the location widget [MrPetovan]
|
||||
Work on the UI [MrPetovan]
|
||||
|
||||
Closed Issues:
|
||||
929, 1050, 1056, 1125, 1215, 1251, 1289, 1312, 1429, 1488, 1540,
|
||||
1610, 1858, 2786, 2845, 3020, 3039, 3337, 3379, 3394, 3396, 3566,
|
||||
3583, 3661, 3671, 3680, 3801, 3822, 3824, 3828, 3839, 3855, 3857,
|
||||
3860, 3863, 3867, 3905, 3911, 3916, 3942, 3946, 3999, 4013, 4020,
|
||||
4023, 4041, 4042, 4061, 4069, 4070, 4071, 4075, 4078, 4082, 4094,
|
||||
4105, 4115, 4116, 4137, 4141, 4144, 4150, 4155, 4161, 4163, 4173,
|
||||
4184, 4199, 4200, 4207, 4227, 4228, 4236, 4251, 4272, 4273, 4278,
|
||||
4279, 4281, 4290, 4294, 4295, 4296, 4304, 4306, 4319, 4348, 4362,
|
||||
4368, 4369, 4377, 4390, 4395, 4396, 4409, 4412, 4426, 4431, 4445,
|
||||
4450, 4452, 4458, 4463, 4481, 4482, 4495, 4497, 4498, 4508, 4518,
|
||||
4520, 4522, 4535, 4543, 4550, 4555, 4556, 4571, 4575, 4610, 4611,
|
||||
4620
|
||||
|
||||
Version 3.5.4 (2017-10-16)
|
||||
Friendica Core:
|
||||
Updates to the translations (DE) [translation teams]
|
||||
|
|
@ -90,7 +216,7 @@ Version 3.5.2 (2017-06-06)
|
|||
Updates to the translations (DE, EN-GB, EN-US, ES, IT, PT-BR, RU) [translation teams]
|
||||
Updates to the documentation [annando, beardyunixer, rabuzarus, tobiasd]
|
||||
Updated the nginx example configuration [beardyunixer]
|
||||
Code revision and refactoring [annando, hypolite, Quix0r, rebeka-catalina]
|
||||
Code revision and refactoring [annando, MrPetovan, Quix0r, rebeka-catalina]
|
||||
Background process is now done by the new worker process [annando]
|
||||
Added support of Composer for dependencies [Hypolite]
|
||||
Added support of Web app manifests [Rudloff]
|
||||
|
|
|
|||
26
INSTALL.txt
26
INSTALL.txt
|
|
@ -37,10 +37,12 @@ local .htaccess file
|
|||
- PHP *command line* access with register_argc_argv set to true in the
|
||||
php.ini file [or see 'poormancron' in section 8]
|
||||
|
||||
- curl, gd (with at least jpeg support), mysql, mbstring, xml and openssl extensions
|
||||
- curl, gd (with at least jpeg support), mysql, mbstring, xml, zip and openssl extensions
|
||||
|
||||
- some form of email server or email gateway such that PHP mail() works
|
||||
|
||||
- The POSIX module of PHP needs to be activated (e.g. RHEL, CentOS have disabled it)
|
||||
|
||||
- Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
|
||||
|
||||
- ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
|
||||
|
|
@ -129,24 +131,16 @@ assistance. Friendica will not work correctly if you cannot perform this step.
|
|||
You should also be sure that $a->config['php_path'] is set correctly, it should
|
||||
look like (changing it to the correct PHP location)
|
||||
|
||||
$a->config['php_path'] = '/usr/local/php53/bin/php'
|
||||
|
||||
Alternative: You may be able to use the 'poormancron' addon to perform this
|
||||
step if you are using a recent Friendica release. 'poormancron' may result in
|
||||
perfomance and memory issues and is only suitable for small sites with one or
|
||||
two users and a handful of contacts. To do this, edit the file
|
||||
".htconfig.php" and look for a line describing your addons. On a fresh
|
||||
installation, it will look like
|
||||
$a->config['php_path'] = '/usr/local/php56/bin/php'
|
||||
|
||||
$a->config['system']['addon'] = 'js_upload';
|
||||
Alternative: If you cannot use a cron job as described above, you can use
|
||||
the frontend worker and an external cron service to trigger the execution
|
||||
of the worker script. You can enable the frontend worker after the installation
|
||||
from the admin panel of your node and call
|
||||
|
||||
This indicates the "js_upload" addon module is enabled. You may add additional
|
||||
addons using this same line in the configuration file. Change it to
|
||||
read
|
||||
https://example.com/worker
|
||||
|
||||
$a->config['system']['addon'] = 'js_upload,poormancron';
|
||||
|
||||
and save your changes.
|
||||
with the service of your choice.
|
||||
|
||||
9. (Recommended) Set up a backup plan
|
||||
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
3.6-dev
|
||||
3.6
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ Config::load();
|
|||
check_db(true);
|
||||
|
||||
// Quit when in maintenance
|
||||
if (Config::get('system', 'maintenance', true)) {
|
||||
if (Config::get('system', 'maintenance', false, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
4
boot.php
4
boot.php
|
|
@ -38,8 +38,8 @@ use Friendica\Util\DateTimeFormat;
|
|||
require_once 'include/text.php';
|
||||
|
||||
define('FRIENDICA_PLATFORM', 'Friendica');
|
||||
define('FRIENDICA_CODENAME', 'Asparagus');
|
||||
define('FRIENDICA_VERSION', '3.6-dev');
|
||||
define('FRIENDICA_CODENAME', 'The Tazmans Flax-lily');
|
||||
define('FRIENDICA_VERSION', '3.6');
|
||||
define('DFRN_PROTOCOL_VERSION', '2.23');
|
||||
define('DB_UPDATE_VERSION', 1256);
|
||||
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-- ------------------------------------------
|
||||
-- Friendica 3.6-dev (Asparagus)
|
||||
-- Friendica 2018-05-dev (Tazmans Flax-lilly)
|
||||
-- DB_UPDATE_VERSION 1256
|
||||
-- ------------------------------------------
|
||||
|
||||
|
|
@ -466,6 +466,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
|||
`author-link` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
||||
`author-avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
||||
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
||||
`content-warning` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
||||
`body` mediumtext COMMENT '',
|
||||
`app` varchar(255) NOT NULL DEFAULT '' COMMENT '',
|
||||
`verb` varchar(100) NOT NULL DEFAULT '' COMMENT '',
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ Whether you feel like an expert or like a newbie - join us with your ideas!
|
|||
The discussion of Friendica development takes place in the following Friendica forums:
|
||||
|
||||
* The main [forum for Friendica development](https://forum.friendi.ca/profile/developers)
|
||||
* The [forum for Friendica theme development](https://friendica.eu/profile/ftdevs)
|
||||
|
||||
## Help other users
|
||||
|
||||
|
|
@ -141,7 +140,7 @@ If you want to get involved here:
|
|||
* Look at the first steps that were made (e.g. the clean theme).
|
||||
Ask us to find out whom to talk to about their experiences.
|
||||
* Talk to design people if you know any.
|
||||
* Let us know about your plans [in the dev forum](https://forum.friendi.ca/profile/developers) or the [theme developer forum](https://friendica.eu/profile/ftdevs).
|
||||
* Let us know about your plans [in the dev forum](https://forum.friendi.ca/profile/developers)
|
||||
Do not worry about cross-posting.
|
||||
|
||||
### Client software
|
||||
|
|
|
|||
26
doc/FAQ.md
26
doc/FAQ.md
|
|
@ -70,7 +70,8 @@ See Wikipedia for more of them ([video](http://en.wikipedia.org/wiki/HTML5_video
|
|||
<a name="avatars"></a>
|
||||
### Is it possible to have different avatars per profile?
|
||||
|
||||
Yes. On your Edit/Manage Profiles page, you will find a "change profile photo" link.
|
||||
Yes.
|
||||
On your Edit/Manage Profiles page, you will find a "change profile photo" link.
|
||||
Clicking this will take you to a page where you can upload a photograph and select which profile it will be associated with.
|
||||
To avoid privacy leakage, we only display the photograph associated with your default profile as the avatar in your posts.
|
||||
|
||||
|
|
@ -111,15 +112,9 @@ After that, your account is deleted.
|
|||
<a name="hashtag"></a>
|
||||
### Can I follow a hashtag?
|
||||
|
||||
No. The act of 'following' a hashtags is an interesting technology, but presents a few issues.
|
||||
|
||||
1. Posts would have to be copied to all sites on the network that are "listening" to that hashtag. This would increase the storage demands to the detriment of small sites. It would make the use of shared hosting practically impossible.
|
||||
|
||||
2. Making spam easy (tag spam is a serious issue on Twitter for instance)
|
||||
|
||||
3. It creates a natural bias towards large sites which hold more tagged content - if your network uses tagging instead of other conversation federation mechanisms such as groups/forums.
|
||||
|
||||
Instead, we offer other mechanisms for wide-area conversations while retaining a 'level playing ground' for both large and small sites, such as forums and community pages and shared tags.
|
||||
Yes. Simply add the hash tag to your saved searches.
|
||||
The posts will appear on your network page.
|
||||
For technical reasons, your answers to such posts won't appear on the "personal" tab in the network page and the whole thread isn't accessible via the API.
|
||||
|
||||
<a name="rss"></a>
|
||||
### How to create a RSS feed of the stream?
|
||||
|
|
@ -171,10 +166,15 @@ Depending on the features of the client you might encounter some glitches in usa
|
|||
### Where I can find help?
|
||||
|
||||
If you have problems with your Friendica page, you can ask the community at the [Friendica Support Group](https://forum.friendi.ca/profile/helpers).
|
||||
If you can't use your default profile you can use an account at a public site [list](https://dir.friendica.social/servers) or you can use the Librelist mailing list.
|
||||
If you want to use the mailing list, please just send a mail to friendica AT librelist DOT com.
|
||||
If you can't use your default profile you can use an account at a public site [list](https://dir.friendica.social/servers).
|
||||
|
||||
If you are a theme developer, you will find help at this forum: [Friendica Theme Developers](https://friendica.eu/profile/ftdevs).
|
||||
In case you do not want to set up another account on Friendica, you can also use one of the following channels to reach out for help:
|
||||
|
||||
* [Friendica Support Forum](https://forum.friendi.ca/~helpers)
|
||||
* [Mailing List Archive](http://mailman.friendi.ca/mailman/listinfo/support-friendi.ca) you can subscribe to the list by sending an email to ``support-request(at)friendi.ca?subject=subscribe``
|
||||
* XMPP/Jabber MUC: support(at)forum.friendi.ca
|
||||
* IRC: #friendica at irc.freenode.net
|
||||
* Matrix: #friendi.ca or #friendica at matrix.org
|
||||
|
||||
Admin
|
||||
--------
|
||||
|
|
|
|||
|
|
@ -28,7 +28,8 @@ Requirements
|
|||
* Apache with mod-rewrite enabled and "Options All" so you can use a local .htaccess file
|
||||
* PHP 5.6+ (PHP 7 is recommended for performance)
|
||||
* PHP *command line* access with register_argc_argv set to true in the php.ini file
|
||||
* Curl, GD, PDO, MySQLi, hash, xml and OpenSSL extensions
|
||||
* Curl, GD, PDO, MySQLi, hash, xml, zip and OpenSSL extensions
|
||||
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
|
||||
* some form of email server or email gateway such that PHP mail() works
|
||||
* Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
|
||||
* the ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks (Windows) (Note: other options are presented in Section 7 of this document.)
|
||||
|
|
@ -38,7 +39,7 @@ Requirements
|
|||
Installation procedure
|
||||
---
|
||||
|
||||
###Get Friendica
|
||||
### Get Friendica
|
||||
|
||||
Unpack the Friendica files into the root of your web server document area.
|
||||
If you are able to do so, we recommend using git to clone the source repository rather than to use a packaged tar or zip file.
|
||||
|
|
@ -64,7 +65,7 @@ Clone the addon repository (separately):
|
|||
|
||||
If you copy the directory tree to your webserver, make sure that you also copy .htaccess - as "dot" files are often hidden and aren't normally copied.
|
||||
|
||||
###Create a database
|
||||
### Create a database
|
||||
|
||||
Create an empty database and note the access details (hostname, username, password, database name).
|
||||
|
||||
|
|
@ -79,7 +80,7 @@ In this case find the [mysqld] section in your my.cnf file and add the line :
|
|||
Restart mysql and you should be fine.
|
||||
|
||||
|
||||
###Run the installer
|
||||
### Run the installer
|
||||
|
||||
Point your web browser to the new site and follow the instructions.
|
||||
Please note any error messages and correct these before continuing.
|
||||
|
|
@ -96,7 +97,7 @@ Registration errors should all be recoverable automatically.
|
|||
If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
|
||||
You might wish to move/rename .htconfig.php to another name and empty (called 'dropping') the database tables, so that you can start fresh.
|
||||
|
||||
###Set up the worker
|
||||
### Set up the worker
|
||||
|
||||
Set up a cron job or scheduled task to run the worker once every 5-10 minutes in order to perform background processing.
|
||||
Example:
|
||||
|
|
@ -118,7 +119,8 @@ If it is not possible to set up a cron job then please activate the "frontend wo
|
|||
|
||||
Once you have installed Friendica and created an admin account as part of the process, you can access the admin panel of your installation and do most of the server wide configuration from there
|
||||
|
||||
###Set up a backup plan
|
||||
### Set up a backup plan
|
||||
|
||||
Bad things will happen.
|
||||
Let there be a hardware failure, a corrupted database or whatever you can think of.
|
||||
So once the installation of your Friendica node is done, you should make yourself a backup plan.
|
||||
|
|
|
|||
|
|
@ -57,6 +57,21 @@ The `vier` theme for instance is mobile friendly.
|
|||
|
||||
### Registration
|
||||
|
||||
#### Register policy
|
||||
|
||||
With this drop down selector you can set the nodes registration policy.
|
||||
You can chose between the following modes:
|
||||
|
||||
* **open**: Everybody can register a new account and start using it right away.
|
||||
* **requires approval**: Everybody can register a new account, but the admin has to approve it before it can be used.
|
||||
* **closed**: No new registrations are possible.
|
||||
|
||||
##### Invitation based registry
|
||||
|
||||
Additionally to the setting in the admin panel, you can devide if registrations are only possible using an invitation code or not.
|
||||
To enable invitation based registration, you have to set the `invitation_only` setting in the [.htconfig.php](/help/htconfig) file.
|
||||
If you want to use this method, the registration policy has to be set to either *open* or *requires approval*.
|
||||
|
||||
#### Check Full Names
|
||||
|
||||
You may find a lot of spammers trying to register on your site.
|
||||
|
|
@ -111,6 +126,14 @@ Unauthorised persons will also not be able to request friendship with site membe
|
|||
Default is false.
|
||||
Available in version 2.2 or greater.
|
||||
|
||||
#### Community pages for Visitors
|
||||
|
||||
The community pages show all public postings, separated by their origin being local or the entire network.
|
||||
With this setting you can select which community pages will be shown to visitors of your Friendica node.
|
||||
Your local users will always have access to both pages.
|
||||
|
||||
**Note**: Several settings, like users hiding their contacts from the public will prevent the postings to show up on the global community page.
|
||||
|
||||
#### Allowed Friend Domains
|
||||
|
||||
Comma separated list of domains which are allowed to establish friendships with this site.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Nutzer
|
|||
* **[Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?](help/FAQ#avatars)**
|
||||
* **[Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?](help/FAQ#contacts)**
|
||||
* **[Was passiert, wenn ein Account gelöscht ist? Ist dieser richtig gelöscht?](help/FAQ#removed)**
|
||||
* **[Kann ich einem hashtag folgen?](help/FAQ#hashtag)**
|
||||
* **[Kann ich einem Hashtag folgen?](help/FAQ#hashtag)**
|
||||
* **[Wie kann ich einen RSS-Feed meiner Netzwerkseite (Stream) erstellen?](help/FAQ#rss)**
|
||||
* **[Gibt es Clients für Friendica?](help/FAQ#clients)**
|
||||
* **[Wo finde ich Hilfe?](help/FAQ#help)**
|
||||
|
|
@ -85,9 +85,9 @@ Zum Konvertieren von Videos in das lizenfreie Videoformat WebM gibt es unter Win
|
|||
### Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?
|
||||
|
||||
Ja.
|
||||
Auf Deiner ["Profile verwalten/editieren"-Seite](../profiles) wählst Du zunächst das gewünschte Profil aus.
|
||||
Anschließend siehst Du eine Seite mit allen Infos zu diesem Profil.
|
||||
Klicke nun oben auf den Link "Profilbild ändern" und lade im nächsten Fenster ein Bild von Deinem PC hoch.
|
||||
Auf Deiner ["Profile verwalten/editieren"-Seite](../profiles) wählst Du zunächst das gewünschte Profil aus.
|
||||
Anschließend siehst Du eine Seite mit allen Infos zu diesem Profil.
|
||||
Klicke nun oben auf den Link "Profilbild ändern" und lade im nächsten Fenster ein Bild von Deinem PC hoch.
|
||||
Um Deine privaten Daten zu schützen, wird in Beiträgen nur das Bild aus Deinem öffentlichen Profil angezeigt.
|
||||
|
||||
<a name="contacts"></a>
|
||||
|
|
@ -122,19 +122,11 @@ Dieses Vorgehen setzt voraus, dass Dein Profil für 24 Stunden weiterhin "teilwe
|
|||
Wir können also Dein Profil blockieren und es so erscheinen lassen, als wären alle Daten sofort gelöscht, allerdings warten wir 24 Stunden (bzw. bis alle Deine Kontakte informiert wurden), bevor wir die Daten auch physikalisch löschen.
|
||||
|
||||
<a name="hashtag"></a>
|
||||
### Kann ich einem hashtag folgen?
|
||||
### Kann ich einem Hashtag folgen?
|
||||
|
||||
Nein.
|
||||
Die Möglichkeit, einem hashtag zu folgen, ist eine interessante Technik, führt aber zu einigen Schwierigkeiten.
|
||||
|
||||
1.) Alle Beiträge, die diesen tag nutzen, müssten zu allen Seiten im Netzwerk kopiert werden. Das erhöht den Speicherbedarf und beeinträchtigt kleine Seiten. Die Nutzung von geteilten Hosting-Angeboten (Shared Hosting) wäre praktisch unmöglich.
|
||||
|
||||
2.) Die Verbreitung von Spam wäre vereinfacht (tag-Spam ist z.B. bei Twitter ein schwerwiegendes Problem)
|
||||
|
||||
3.) Der wichtigste Grund der gegen diese Technik spricht ist, dass sie eine natürliche Ausrichtung auf größere Seiten mit mehr getaggten Inhalten zur Folge hat. Dies kann z.B. aufkommen, wenn Dein Netzwerk tags anstelle von anderen Kommunikationsmitteln wie Gruppen oder Foren nutzt.
|
||||
|
||||
Stattdessen bieten wir andere Mechanismen, um globale Unterhaltungen zu erreichen, dabei aber eine angemesse Basis für kleine und große Seiten zu bieten.
|
||||
Hierzu gehören Foren, Gruppen und geteilte tags.
|
||||
Ja.
|
||||
Füge die Tags zu Deinen gespeicherten Suchen hinzu, sie werden automatisch auf der Netzwerk-Seite auftauchen.
|
||||
Bitte beachte, dass Deine Antworten auf solche Posts aus technischen Gründen nicht unter dem "Persönlich"-Reiter auf der Netzwerk-Seite und der gesamte Thread nicht per API zu sehen sind.
|
||||
|
||||
<a name="rss"></a>
|
||||
### Wie kann ich einen RSS-Feed meiner Netzwerkseite (Stream) erstellen?
|
||||
|
|
@ -188,11 +180,16 @@ Hier ist eine Liste von Clients bei denen dies möglich ist, bzw. die speziell f
|
|||
<a name="help"></a>
|
||||
### Wo finde ich Hilfe?
|
||||
|
||||
Wenn Du Probleme mit Deiner Friendica-Seite hast, dann kannst Du die Community in der [Friendica-Support-Gruppe](https://forum.friendi.ca/profile/helpers) oder im [deutschen Friendica-Support-Forum](http://toktan.org/profile/wiki) fragen oder Dir das [deutsche Wiki](http://wiki.toktan.org/doku.php) anschauen.
|
||||
Wenn Du Deinen Account nicht nutzen kannst, kannst Du entweder einen [Testaccount](https://tryfriendica.de) bzw. einen Account auf einer öffentlichen Seite ([Liste](https://dir.friendica.social/servers)) nutzen, oder Du wählst die Librelist-mailing-Liste.
|
||||
Wenn Du die Mailing-Liste nutzen willst, schicke eine Mail an friendica AT librelist PUNKT com.
|
||||
Wenn Du Probleme mit Deiner Friendica-Seite hast, dann kannst Du die Community in der [Friendica-Support-Gruppe](https://forum.friendi.ca/profile/helpers) oder im [deutschen Friendica-Support-Forum](http://toktan.org/profile/wiki) fragen oder Dir das [deutsche Wiki](http://wiki.toktan.org/doku.php) anschauen.
|
||||
Wenn Du Deinen Account nicht nutzen kannst, kannst Du entweder einen [Testaccount](https://tryfriendica.de) bzw. einen Account auf einer öffentlichen Seite ([Liste](https://dir.friendica.social/servers)) nutzen.
|
||||
|
||||
Wenn Du ein Theme-Entwickler bist, wirst Du in diesem Forum Hilfe finden: [Friendica Theme Developers](https://friendica.eu/profile/ftdevs).
|
||||
Wenn du dir keinen weiteren Friendica Account einrichten willst, kannst du auch gerne über einen der folgenden alternativen Kanäle Hilfe suchen:
|
||||
|
||||
* [Friendica Support Forum](https://forum.friendi.ca/~helpers)
|
||||
* [Mailing List Archive](http://mailman.friendi.ca/mailman/listinfo/support-friendi.ca) you can subscribe to the list by sending an email to ``support-request(at)friendi.ca?subject=subscribe``
|
||||
* XMPP/Jabber MUC: support(at)forum.friendi.ca
|
||||
* IRC: #friendica at irc.freenode.net
|
||||
* Matrix: #friendi.ca or #friendica at matrix.org.
|
||||
|
||||
Admin
|
||||
--------
|
||||
|
|
|
|||
|
|
@ -24,8 +24,9 @@ Wir planen, diese Einschränkung in einer zukünftigen Version zu beheben.
|
|||
- Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
||||
- PHP 5.6+. Je neuer, desto besser.
|
||||
- PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
||||
- Curl, GD, PDO, MySQLi, xml und OpenSSL-Erweiterung
|
||||
- Curl, GD, PDO, MySQLi, xml, zip und OpenSSL-Erweiterung
|
||||
- etwas in der Art eines Email-Servers oder eines Gateways wie PHP mail()
|
||||
- Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
|
||||
- Mysql 5.5.3+
|
||||
- die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
|
||||
- Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
|
||||
|
|
|
|||
|
|
@ -54,6 +54,20 @@ Das `vier` Theme z.B. unterstützt kleine Anzeigen und benötigt kein zusätzlic
|
|||
|
||||
### Registrierung
|
||||
|
||||
#### Registrierungsmethode
|
||||
|
||||
Diese Einstellung regelt die Art der Registrierung.
|
||||
Dabei kannst du zwischen den folgenden Optionen wählen:
|
||||
|
||||
* **Offen**: Jeder kann ein neues Nutzerkonto anlegen und es sofort benutzen.
|
||||
* **Bedarf der Zustimmung**: Jeder kann ein Nutzerkonto anlegen. Dieses muss allerdings durch den Admin freigeschaltet werden, bevor es verwendet werden kann.
|
||||
* **Geschlossen**: Es können keine weiteren Nutzerkonten angelegt werden.
|
||||
|
||||
##### Einladungen
|
||||
|
||||
Zusätzlich zu den oben genannten Möglichkeiten, kann die Registrierung eines neuen Nutzerkontos an eine Einladung durch einen bestehenden Nutzer gekoppelt werden.
|
||||
Hierzu muss in der [.htconfig.php](/help/htconfig) Datei die Option `invitation_only` aktiviert und als Registrierungsmethode entweder *Offen* oder *Bedarf der Zustimmung* gewählt werden.
|
||||
|
||||
#### Namen auf Vollständigkeit überprüfen
|
||||
|
||||
Es kann vorkommen, dass viele Spammer versuchen, sich auf deiner Seite zu registrieren.
|
||||
|
|
@ -108,6 +122,15 @@ Unautorisierte Personen haben ebenfalls nicht die Möglichkeit, Freundschaftsanf
|
|||
Die Standardeinstellung ist deaktiviert.
|
||||
Verfügbar in Version 2.2 und höher.
|
||||
|
||||
#### Für Besucher verfügbare Gemeinschaftsseiten
|
||||
|
||||
Die Gemeinschaftsseiten zeigen all öffentlichen Beiträge.
|
||||
Es gibt zwei Gemeinschaftsseiten, eine lokale auf der die Beiträge der Nutzer des Knotens gesammelt werden und eine globale auf der alle bekannten Beiträge aus dem gesamten Netzwerk erscheinen.
|
||||
Mit dieser Einstellung kann geregelt werden, welche dieser beiden Seiten Besucher aufrufen können.
|
||||
Angemeldete Nutzer des Knotens können grundsätzlich beide Seiten verwenden.
|
||||
|
||||
**Hinweis**: Einige Einstellungen, wie z.B. das Verbergen von Kontakten auf der Profilseite, können die Sichtbarkeit der Beiträge auf der Gemeinschaftsseiten beeinflussen.
|
||||
|
||||
#### Erlaubte Domains für Kontakte
|
||||
|
||||
Kommagetrennte Liste von Domains, welche eine Freundschaft mit dieser Seite eingehen dürfen.
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ Example: To set the automatic database cleanup process add this line to your .ht
|
|||
* **ignore_cache** (Boolean) - For development only. Disables the item cache.
|
||||
* **instances_social_key** - Key to the API of https://instances.social which retrieves data about mastodon servers. See https://instances.social/api/token to get an API key.
|
||||
* **ipv4_resolve** (Boolean) - Resolve IPV4 addresses only. Don't resolve to IPV6. Default value is false.
|
||||
* **invitation_only** (Boolean) - If set true registration is only possible after a current member of the node has send an invitation. Default is false.
|
||||
* **like_no_comment** (Boolean) - Don't update the "commented" value of an item when it is liked.
|
||||
* **local_block** (Boolean) - Used in conjunction with "block_public".
|
||||
* **local_search** (Boolean) - Blocks search for users who are not logged in to prevent crawlers from blocking your system.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ To change the look of friendica you have to touch the themes.
|
|||
The current default theme is [Vier](https://github.com/friendica/friendica/tree/master/view/theme/vier) but there are numerous others.
|
||||
Have a look at [friendica-themes.com](http://friendica-themes.com) for an overview of the existing themes.
|
||||
In case none of them suits your needs, there are several ways to change a theme.
|
||||
If you need help theming, there is a forum @[ftdevs@friendica.eu](https://friendica.eu/profile/ftdevs) where you can ask theme specific questions and present your themes.
|
||||
|
||||
So, how to work on the UI of friendica.
|
||||
|
||||
|
|
@ -206,7 +205,7 @@ Basically what you have to do is identify which template you have to change so i
|
|||
Adopt the CSS of the theme accordingly.
|
||||
And iterate the process until you have the theme the way you want it.
|
||||
|
||||
*Use the source Luke.* and don't hesitate to ask in @[ftdevs](https://friendica.eu/profile/ftdevs) or @[helpers](https://forum.friendi.ca/profile/helpers).
|
||||
*Use the source Luke.* and don't hesitate to ask in @[developers](https://forum.friendi.ca/profile/developers) or @[helpers](https://forum.friendi.ca/profile/helpers).
|
||||
|
||||
## Special Files
|
||||
|
||||
|
|
|
|||
|
|
@ -5931,10 +5931,12 @@ function api_saved_searches_list($type)
|
|||
$result = [];
|
||||
while ($term = $terms->fetch()) {
|
||||
$result[] = [
|
||||
'name' => $term['term'],
|
||||
'query' => $term['term'],
|
||||
'created_at' => api_date(time()),
|
||||
'id' => intval($term['id']),
|
||||
'id_str' => $term['id'],
|
||||
'id' => intval($term['id'])
|
||||
'name' => $term['term'],
|
||||
'position' => null,
|
||||
'query' => $term['term']
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ These Fields are not added below (yet). They are here to for bug search.
|
|||
return "`item`.`author-id`, `item`.`author-link`, `item`.`author-name`, `item`.`author-avatar`,
|
||||
`item`.`owner-id`, `item`.`owner-link`, `item`.`owner-name`, `item`.`owner-avatar`,
|
||||
`item`.`contact-id`, `item`.`uid`, `item`.`id`, `item`.`parent`,
|
||||
`item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`,
|
||||
`item`.`uri`, `item`.`thr-parent`, `item`.`parent-uri`, `item`.`content-warning`,
|
||||
`item`.`commented`, `item`.`created`, `item`.`edited`, `item`.`received`,
|
||||
`item`.`verb`, `item`.`object-type`, `item`.`postopts`, `item`.`plink`,
|
||||
`item`.`guid`, `item`.`wall`, `item`.`private`, `item`.`starred`,
|
||||
|
|
@ -1245,7 +1245,7 @@ function format_like($cnt, array $arr, $type, $id) {
|
|||
break;
|
||||
case 'attendmaybe':
|
||||
$phrase = L10n::t('<span %1$s>%2$d people</span> attend maybe', $spanatts, $cnt);
|
||||
$explikers = L10n::t('%s anttend maybe.', $likers);
|
||||
$explikers = L10n::t('%s attend maybe.', $likers);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1643,7 +1643,7 @@ function get_responses($conv_responses, $response_verbs, $ob, $item) {
|
|||
foreach ($response_verbs as $v) {
|
||||
$ret[$v] = [];
|
||||
$ret[$v]['count'] = defaults($conv_responses[$v], $item['uri'], '');
|
||||
$ret[$v]['list'] = defaults($conv_responses[$v], $item['uri'] . '-l', '');
|
||||
$ret[$v]['list'] = defaults($conv_responses[$v], $item['uri'] . '-l', []);
|
||||
$ret[$v]['self'] = defaults($conv_responses[$v], $item['uri'] . '-self', '0');
|
||||
if (count($ret[$v]['list']) > MAX_LIKERS) {
|
||||
$ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS);
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ use Friendica\Util\Emailer;
|
|||
* @brief Creates a notification entry and possibly sends a mail
|
||||
*
|
||||
* @param array $params Array with the elements:
|
||||
uid, item, parent, type, otype, verb, event,
|
||||
link, subject, body, to_name, to_email, source_name,
|
||||
source_link, activity, preamble, notify_flags,
|
||||
language, show_in_notification_page
|
||||
* uid, item, parent, type, otype, verb, event,
|
||||
* link, subject, body, to_name, to_email, source_name,
|
||||
* source_link, activity, preamble, notify_flags,
|
||||
* language, show_in_notification_page
|
||||
*/
|
||||
function notification($params)
|
||||
{
|
||||
|
|
@ -368,7 +368,7 @@ function notification($params)
|
|||
'[url='.$params['source_link'].']'.$params['source_name'].'[/url]'
|
||||
);
|
||||
|
||||
$body = L10n::t('Full Name: %1$s\nSite Location: %2$s\nLogin Name: %3$s ' . "\x28" . '%4$s' . "\x28",
|
||||
$body = L10n::t('Full Name: %1$s\nSite Location: %2$s\nLogin Name: %3$s ' . "\x28" . '%4$s' . "\x29",
|
||||
$params['source_name'],
|
||||
$siteurl, $params['source_mail'],
|
||||
$params['source_nick']
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ function format_event_html($ev, $simple = false) {
|
|||
);
|
||||
|
||||
if ($simple) {
|
||||
$o = "<h3>" . BBCode::convert($ev['summary']) . "</h3>";
|
||||
$o = "<h3>" . BBCode::convert($ev['summary'], false, $simple) . "</h3>";
|
||||
|
||||
$o .= "<div>" . BBCode::convert($ev['desc']) . "</div>";
|
||||
$o .= "<p>" . BBCode::convert($ev['desc'], false, $simple) . "</p>";
|
||||
|
||||
$o .= "<h4>" . L10n::t('Starts:') . "</h4><p>" . $event_start . "</p>";
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ function format_event_html($ev, $simple = false) {
|
|||
}
|
||||
|
||||
if (strlen($ev['location'])) {
|
||||
$o .= "<h4>" . L10n::t('Location:') . "</h4><p>" . $ev['location'] . "</p>";
|
||||
$o .= "<h4>" . L10n::t('Location:') . "</h4><p>" . BBCode::convert($ev['location'], false, $simple) . "</p>";
|
||||
}
|
||||
|
||||
return $o;
|
||||
|
|
@ -57,7 +57,7 @@ function format_event_html($ev, $simple = false) {
|
|||
|
||||
$o = '<div class="vevent">' . "\r\n";
|
||||
|
||||
$o .= '<div class="summary event-summary">' . BBCode::convert($ev['summary']) . '</div>' . "\r\n";
|
||||
$o .= '<div class="summary event-summary">' . BBCode::convert($ev['summary'], false, $simple) . '</div>' . "\r\n";
|
||||
|
||||
$o .= '<div class="event-start"><span class="event-label">' . L10n::t('Starts:') . '</span> <span class="dtstart" title="'
|
||||
. DateTimeFormat::utc($ev['start'], (($ev['adjust']) ? DateTimeFormat::ATOM : 'Y-m-d\TH:i:s' ))
|
||||
|
|
@ -71,16 +71,16 @@ function format_event_html($ev, $simple = false) {
|
|||
. '</span></div>' . "\r\n";
|
||||
}
|
||||
|
||||
$o .= '<div class="description event-description">' . BBCode::convert($ev['desc']) . '</div>' . "\r\n";
|
||||
$o .= '<div class="description event-description">' . BBCode::convert($ev['desc'], false, $simple) . '</div>' . "\r\n";
|
||||
|
||||
if (strlen($ev['location'])) {
|
||||
$o .= '<div class="event-location"><span class="event-label">' . L10n::t('Location:') . '</span> <span class="location">'
|
||||
. BBCode::convert($ev['location'])
|
||||
. BBCode::convert($ev['location'], false, $simple)
|
||||
. '</span></div>' . "\r\n";
|
||||
|
||||
// Include a map of the location if the [map] BBCode is used.
|
||||
if (strpos($ev['location'], "[map") !== false) {
|
||||
$map = Map::byLocation($ev['location']);
|
||||
$map = Map::byLocation($ev['location'], $simple);
|
||||
if ($map !== $ev['location']) {
|
||||
$o.= $map;
|
||||
}
|
||||
|
|
@ -241,14 +241,20 @@ function event_store($arr) {
|
|||
|
||||
$a = get_app();
|
||||
|
||||
$arr['created'] = (($arr['created']) ? $arr['created'] : DateTimeFormat::utcNow());
|
||||
$arr['edited'] = (($arr['edited']) ? $arr['edited'] : DateTimeFormat::utcNow());
|
||||
$arr['created'] = (($arr['created']) ? DateTimeFormat::utc($arr['created']) : DateTimeFormat::utcNow());
|
||||
$arr['edited'] = (($arr['edited']) ? DateTimeFormat::utc($arr['edited']) : DateTimeFormat::utcNow());
|
||||
$arr['start'] = (($arr['start']) ? DateTimeFormat::utc($arr['start']) : NULL_DATE);
|
||||
$arr['finish'] = (($arr['finish']) ? DateTimeFormat::utc($arr['finish']) : NULL_DATE);
|
||||
$arr['type'] = (($arr['type']) ? $arr['type'] : 'event' );
|
||||
$arr['cid'] = ((intval($arr['cid'])) ? intval($arr['cid']) : 0);
|
||||
$arr['uri'] = (x($arr, 'uri') ? $arr['uri'] : item_new_uri($a->get_hostname(), $arr['uid']));
|
||||
$arr['private'] = ((x($arr, 'private')) ? intval($arr['private']) : 0);
|
||||
$arr['guid'] = get_guid(32);
|
||||
|
||||
if ($arr['finish'] < NULL_DATE) {
|
||||
$arr['finish'] = NULL_DATE;
|
||||
}
|
||||
|
||||
if ($arr['cid']) {
|
||||
$c = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($arr['cid']),
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ function add_page_info_to_body($body, $texturl = false, $no_photos = false) {
|
|||
*
|
||||
* @TODO find proper type-hints
|
||||
*/
|
||||
function consume_feed($xml, $importer, &$contact, &$hub, $datedir = 0, $pass = 0) {
|
||||
function consume_feed($xml, $importer, $contact, &$hub, $datedir = 0, $pass = 0) {
|
||||
if ($contact['network'] === NETWORK_OSTATUS) {
|
||||
if ($pass < 2) {
|
||||
// Test - remove before flight
|
||||
|
|
@ -290,7 +290,7 @@ function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
|
|||
return;
|
||||
}
|
||||
|
||||
$push_url = Config::get('system','url') . '/pubsub/' . $r[0]['nickname'] . '/' . $contact['id'];
|
||||
$push_url = System::baseUrl() . '/pubsub/' . $r[0]['nickname'] . '/' . $contact['id'];
|
||||
|
||||
// Use a single verify token, even if multiple hubs
|
||||
$verify_token = ((strlen($contact['hub-verify'])) ? $contact['hub-verify'] : random_string());
|
||||
|
|
|
|||
125
include/text.php
125
include/text.php
|
|
@ -1062,7 +1062,7 @@ function linkify($s) {
|
|||
* Load poke verbs
|
||||
*
|
||||
* @return array index is present tense verb
|
||||
value is array containing past tense verb, translation of present, translation of past
|
||||
* value is array containing past tense verb, translation of present, translation of past
|
||||
* @hook poke_verbs pokes array
|
||||
*/
|
||||
function get_poke_verbs() {
|
||||
|
|
@ -1169,8 +1169,25 @@ function redir_private_images($a, &$item)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the "rendered-html" field of the provided item
|
||||
*
|
||||
* Body is preserved to avoid side-effects as we modify it just-in-time for spoilers and private image links
|
||||
*
|
||||
* @param array $item
|
||||
* @param bool $update
|
||||
*
|
||||
* @todo Remove reference, simply return "rendered-html" and "rendered-hash"
|
||||
*/
|
||||
function put_item_in_cache(&$item, $update = false)
|
||||
{
|
||||
$body = $item["body"];
|
||||
|
||||
// Add the content warning
|
||||
if (!empty($item['content-warning'])) {
|
||||
$item["body"] = $item['content-warning'] . '[spoiler]' . $item["body"] . '[/spoiler]';
|
||||
}
|
||||
|
||||
$rendered_hash = defaults($item, 'rendered-hash', '');
|
||||
|
||||
if ($rendered_hash == ''
|
||||
|
|
@ -1178,22 +1195,19 @@ function put_item_in_cache(&$item, $update = false)
|
|||
|| $rendered_hash != hash("md5", $item["body"])
|
||||
|| Config::get("system", "ignore_cache")
|
||||
) {
|
||||
// The function "redir_private_images" changes the body.
|
||||
// I'm not sure if we should store it permanently, so we save the old value.
|
||||
$body = $item["body"];
|
||||
|
||||
$a = get_app();
|
||||
redir_private_images($a, $item);
|
||||
|
||||
$item["rendered-html"] = prepare_text($item["body"]);
|
||||
$item["rendered-hash"] = hash("md5", $item["body"]);
|
||||
$item["body"] = $body;
|
||||
|
||||
if ($update && ($item["id"] > 0)) {
|
||||
dba::update('item', ['rendered-html' => $item["rendered-html"], 'rendered-hash' => $item["rendered-hash"]],
|
||||
['id' => $item["id"]], false);
|
||||
}
|
||||
}
|
||||
|
||||
$item["body"] = $body;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1281,62 +1295,55 @@ function prepare_body(&$item, $attach = false, $preview = false) {
|
|||
|
||||
$as = '';
|
||||
$vhead = false;
|
||||
$arr = explode('[/attach],', $item['attach']);
|
||||
if (count($arr)) {
|
||||
foreach ($arr as $r) {
|
||||
$matches = false;
|
||||
$icon = '';
|
||||
$cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r ,$matches, PREG_SET_ORDER);
|
||||
if ($cnt) {
|
||||
foreach ($matches as $mtch) {
|
||||
$mime = $mtch[3];
|
||||
$matches = [];
|
||||
preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\"(?: title=\"(.*?)\")?|', $item['attach'], $matches, PREG_SET_ORDER);
|
||||
foreach ($matches as $mtch) {
|
||||
$mime = $mtch[3];
|
||||
|
||||
if ((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN)) {
|
||||
$the_url = 'redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1];
|
||||
} else {
|
||||
$the_url = $mtch[1];
|
||||
}
|
||||
|
||||
if (strpos($mime, 'video') !== false) {
|
||||
if (!$vhead) {
|
||||
$vhead = true;
|
||||
$a->page['htmlhead'] .= replace_macros(get_markup_template('videos_head.tpl'), [
|
||||
'$baseurl' => System::baseUrl(),
|
||||
]);
|
||||
$a->page['end'] .= replace_macros(get_markup_template('videos_end.tpl'), [
|
||||
'$baseurl' => System::baseUrl(),
|
||||
]);
|
||||
}
|
||||
|
||||
$id = end(explode('/', $the_url));
|
||||
$as .= replace_macros(get_markup_template('video_top.tpl'), [
|
||||
'$video' => [
|
||||
'id' => $id,
|
||||
'title' => L10n::t('View Video'),
|
||||
'src' => $the_url,
|
||||
'mime' => $mime,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
$filetype = strtolower(substr($mime, 0, strpos($mime, '/')));
|
||||
if ($filetype) {
|
||||
$filesubtype = strtolower(substr($mime, strpos($mime, '/') + 1));
|
||||
$filesubtype = str_replace('.', '-', $filesubtype);
|
||||
} else {
|
||||
$filetype = 'unkn';
|
||||
$filesubtype = 'unkn';
|
||||
}
|
||||
|
||||
$title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1]));
|
||||
$title .= ' ' . $mtch[2] . ' ' . L10n::t('bytes');
|
||||
|
||||
$icon = '<div class="attachtype icon s22 type-' . $filetype . ' subtype-' . $filesubtype . '"></div>';
|
||||
$as .= '<a href="' . strip_tags($the_url) . '" title="' . $title . '" class="attachlink" target="_blank" >' . $icon . '</a>';
|
||||
}
|
||||
}
|
||||
if ((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN)) {
|
||||
$the_url = 'redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1];
|
||||
} else {
|
||||
$the_url = $mtch[1];
|
||||
}
|
||||
|
||||
if (strpos($mime, 'video') !== false) {
|
||||
if (!$vhead) {
|
||||
$vhead = true;
|
||||
$a->page['htmlhead'] .= replace_macros(get_markup_template('videos_head.tpl'), [
|
||||
'$baseurl' => System::baseUrl(),
|
||||
]);
|
||||
$a->page['end'] .= replace_macros(get_markup_template('videos_end.tpl'), [
|
||||
'$baseurl' => System::baseUrl(),
|
||||
]);
|
||||
}
|
||||
|
||||
$id = end(explode('/', $the_url));
|
||||
$as .= replace_macros(get_markup_template('video_top.tpl'), [
|
||||
'$video' => [
|
||||
'id' => $id,
|
||||
'title' => L10n::t('View Video'),
|
||||
'src' => $the_url,
|
||||
'mime' => $mime,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
$filetype = strtolower(substr($mime, 0, strpos($mime, '/')));
|
||||
if ($filetype) {
|
||||
$filesubtype = strtolower(substr($mime, strpos($mime, '/') + 1));
|
||||
$filesubtype = str_replace('.', '-', $filesubtype);
|
||||
} else {
|
||||
$filetype = 'unkn';
|
||||
$filesubtype = 'unkn';
|
||||
}
|
||||
|
||||
$title = escape_tags(trim(!empty($mtch[4]) ? $mtch[4] : $mtch[1]));
|
||||
$title .= ' ' . $mtch[2] . ' ' . L10n::t('bytes');
|
||||
|
||||
$icon = '<div class="attachtype icon s22 type-' . $filetype . ' subtype-' . $filesubtype . '"></div>';
|
||||
$as .= '<a href="' . strip_tags($the_url) . '" title="' . $title . '" class="attachlink" target="_blank" >' . $icon . '</a>';
|
||||
}
|
||||
|
||||
if ($as != '') {
|
||||
$s .= '<div class="body-attach">'.$as.'<div class="clear"></div></div>';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ if (!$install) {
|
|||
if (Config::get('system', 'force_ssl') && ($a->get_scheme() == "http")
|
||||
&& (intval(Config::get('system', 'ssl_policy')) == SSL_POLICY_FULL)
|
||||
&& (substr(System::baseUrl(), 0, 8) == "https://")
|
||||
) {
|
||||
&& ($_SERVER['REQUEST_METHOD'] == 'GET')) {
|
||||
header("HTTP/1.1 302 Moved Temporarily");
|
||||
header("Location: " . System::baseUrl() . "/" . $a->query_string);
|
||||
exit();
|
||||
|
|
|
|||
|
|
@ -1568,7 +1568,7 @@ function admin_page_users(App $a)
|
|||
if ($a->argc > 2) {
|
||||
$uid = $a->argv[3];
|
||||
$user = dba::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]);
|
||||
if (DBM::is_result($user)) {
|
||||
if (!DBM::is_result($user)) {
|
||||
notice('User not found' . EOL);
|
||||
goaway('admin/users');
|
||||
return ''; // NOTREACHED
|
||||
|
|
|
|||
|
|
@ -45,6 +45,14 @@ function contacts_init(App $a)
|
|||
}
|
||||
|
||||
if (DBM::is_result($contact)) {
|
||||
if ($contact['self']) {
|
||||
if (($a->argc == 3) && intval($a->argv[1]) && ($a->argv[2] == "posts")) {
|
||||
goaway('profile/' . $contact['nick']);
|
||||
} else {
|
||||
goaway('profile/' . $contact['nick'] . '?tab=profile');
|
||||
}
|
||||
}
|
||||
|
||||
$a->data['contact'] = $contact;
|
||||
|
||||
if (($a->data['contact']['network'] != "") && ($a->data['contact']['network'] != NETWORK_DFRN)) {
|
||||
|
|
@ -579,9 +587,10 @@ function contacts_content(App $a)
|
|||
$profile_select = ContactSelector::profileAssign($contact['profile-id'], (($contact['network'] !== NETWORK_DFRN) ? true : false));
|
||||
}
|
||||
|
||||
/// @todo Only show the following link with DFRN when the remote version supports it
|
||||
$follow = '';
|
||||
$follow_text = '';
|
||||
if (in_array($contact['network'], [NETWORK_DIASPORA, NETWORK_OSTATUS])) {
|
||||
if (in_array($contact['network'], [NETWORK_DIASPORA, NETWORK_OSTATUS, NETWORK_DFRN])) {
|
||||
if ($contact['rel'] == CONTACT_IS_FOLLOWER) {
|
||||
$follow = System::baseUrl(true) . "/follow?url=" . urlencode($contact["url"]);
|
||||
$follow_text = L10n::t("Connect/Follow");
|
||||
|
|
@ -939,6 +948,13 @@ function _contact_detail_for_template($rr)
|
|||
$sparkle = '';
|
||||
}
|
||||
|
||||
if ($rr['self']) {
|
||||
$dir_icon = 'images/larrow.gif';
|
||||
$alt_text = L10n::t('This is you');
|
||||
$url = $rr['url'];
|
||||
$sparkle = '';
|
||||
}
|
||||
|
||||
return [
|
||||
'img_hover' => L10n::t('Visit %s\'s profile [%s]', $rr['name'], $rr['url']),
|
||||
'edit_hover' => L10n::t('Edit contact'),
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use Friendica\App;
|
|||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBM;
|
||||
use Friendica\Model\User;
|
||||
|
||||
require_once 'mod/settings.php';
|
||||
|
||||
|
|
@ -28,6 +29,21 @@ function delegate_post(App $a)
|
|||
check_form_security_token_redirectOnErr('/delegate', 'delegate');
|
||||
|
||||
$parent_uid = defaults($_POST, 'parent_user', 0);
|
||||
$parent_password = defaults($_POST, 'parent_password', '');
|
||||
|
||||
if ($parent_uid != 0) {
|
||||
$user = dba::selectFirst('user', ['nickname'], ['uid' => $parent_uid]);
|
||||
if (!DBM::is_result($user)) {
|
||||
notice(L10n::t('Parent user not found.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
$success = User::authenticate($user['nickname'], trim($parent_password));
|
||||
if (!$success) {
|
||||
notice(L10n::t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dba::update('user', ['parent-uid' => $parent_uid], ['uid' => local_user()]);
|
||||
}
|
||||
|
|
@ -70,16 +86,6 @@ function delegate_content(App $a)
|
|||
goaway(System::baseUrl() . '/delegate');
|
||||
}
|
||||
|
||||
// These people can manage this account/page with full privilege
|
||||
$full_managers = [];
|
||||
$r = q("SELECT * FROM `user` WHERE `email` = '%s' AND `password` = '%s' ",
|
||||
dbesc($a->user['email']),
|
||||
dbesc($a->user['password'])
|
||||
);
|
||||
if (DBM::is_result($r)) {
|
||||
$full_managers = $r;
|
||||
}
|
||||
|
||||
// find everybody that currently has delegated management to this account/page
|
||||
$delegates = [];
|
||||
$r = q("SELECT * FROM `user` WHERE `uid` IN (SELECT `uid` FROM `manage` WHERE `mid` = %d)",
|
||||
|
|
@ -90,10 +96,6 @@ function delegate_content(App $a)
|
|||
}
|
||||
|
||||
$uids = [];
|
||||
foreach ($full_managers as $rr) {
|
||||
$uids[] = $rr['uid'];
|
||||
}
|
||||
|
||||
foreach ($delegates as $rr) {
|
||||
$uids[] = $rr['uid'];
|
||||
}
|
||||
|
|
@ -153,18 +155,21 @@ function delegate_content(App $a)
|
|||
}
|
||||
}
|
||||
|
||||
if (!is_null($parent_user)) {
|
||||
$parent_password = ['parent_password', L10n::t('Parent Password:'), '', L10n::t('Please enter the password of the parent account to legitimize your request.')];
|
||||
}
|
||||
|
||||
$o = replace_macros(get_markup_template('delegate.tpl'), [
|
||||
'$form_security_token' => get_form_security_token('delegate'),
|
||||
'$parent_header' => L10n::t('Parent User'),
|
||||
'$parent_user' => $parent_user,
|
||||
'$parent_password' => $parent_password,
|
||||
'$parent_desc' => L10n::t('Parent users have total control about this account, including the account settings. Please double check whom you give this access.'),
|
||||
'$submit' => L10n::t('Save Settings'),
|
||||
'$header' => L10n::t('Delegate Page Management'),
|
||||
'$delegates_header' => L10n::t('Delegates'),
|
||||
'$base' => System::baseUrl(),
|
||||
'$desc' => L10n::t('Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely.'),
|
||||
'$head_managers' => L10n::t('Existing Page Managers'),
|
||||
'$managers' => $full_managers,
|
||||
'$head_delegates' => L10n::t('Existing Page Delegates'),
|
||||
'$delegates' => $delegates,
|
||||
'$head_potentials' => L10n::t('Potential Delegates'),
|
||||
|
|
|
|||
|
|
@ -18,6 +18,12 @@ require_once 'include/event.php';
|
|||
|
||||
function dfrn_notify_post(App $a) {
|
||||
logger(__function__, LOGGER_TRACE);
|
||||
|
||||
if (empty($_POST)) {
|
||||
require_once 'mod/salmon.php';
|
||||
salmon_post($a);
|
||||
}
|
||||
|
||||
$dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : '');
|
||||
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
|
||||
$challenge = ((x($_POST,'challenge')) ? notags(trim($_POST['challenge'])) : '');
|
||||
|
|
|
|||
|
|
@ -12,12 +12,12 @@ use Friendica\Database\DBM;
|
|||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\Profile;
|
||||
|
||||
function directory_init(App $a) {
|
||||
function directory_init(App $a)
|
||||
{
|
||||
$a->set_pager_itemspage(60);
|
||||
|
||||
if(local_user()) {
|
||||
if (local_user()) {
|
||||
$a->page['aside'] .= Widget::findPeople();
|
||||
|
||||
$a->page['aside'] .= Widget::follow();
|
||||
} else {
|
||||
unset($_SESSION['theme']);
|
||||
|
|
@ -25,16 +25,20 @@ function directory_init(App $a) {
|
|||
}
|
||||
}
|
||||
|
||||
function directory_post(App $a) {
|
||||
if(x($_POST,'search'))
|
||||
function directory_post(App $a)
|
||||
{
|
||||
if (x($_POST, 'search')) {
|
||||
$a->data['search'] = $_POST['search'];
|
||||
}
|
||||
}
|
||||
|
||||
function directory_content(App $a) {
|
||||
function directory_content(App $a)
|
||||
{
|
||||
require_once("mod/proxy.php");
|
||||
|
||||
if((Config::get('system','block_public')) && (! local_user()) && (! remote_user()) ||
|
||||
(Config::get('system','block_local_dir')) && (! local_user()) && (! remote_user())) {
|
||||
if ((Config::get('system', 'block_public') && !local_user() && !remote_user())
|
||||
|| (Config::get('system', 'block_local_dir') && !local_user() && !remote_user())
|
||||
) {
|
||||
notice(L10n::t('Public access denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
|
@ -42,18 +46,19 @@ function directory_content(App $a) {
|
|||
$o = '';
|
||||
Nav::setSelected('directory');
|
||||
|
||||
if(x($a->data,'search'))
|
||||
if (x($a->data, 'search')) {
|
||||
$search = notags(trim($a->data['search']));
|
||||
else
|
||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||
|
||||
$gdirpath = '';
|
||||
$dirurl = Config::get('system','directory');
|
||||
if(strlen($dirurl)) {
|
||||
$gdirpath = Profile::zrl($dirurl,true);
|
||||
} else {
|
||||
$search = ((x($_GET, 'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||
}
|
||||
|
||||
if($search) {
|
||||
$gdirpath = '';
|
||||
$dirurl = Config::get('system', 'directory');
|
||||
if (strlen($dirurl)) {
|
||||
$gdirpath = Profile::zrl($dirurl, true);
|
||||
}
|
||||
|
||||
if ($search) {
|
||||
$search = dbesc($search);
|
||||
|
||||
$sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR
|
||||
|
|
@ -73,35 +78,35 @@ function directory_content(App $a) {
|
|||
(`profile`.`prv_keywords` LIKE '%$search%'))";
|
||||
}
|
||||
|
||||
$publish = ((Config::get('system','publish_all')) ? '' : " AND `publish` = 1 " );
|
||||
$publish = ((Config::get('system', 'publish_all')) ? '' : " AND `publish` = 1 " );
|
||||
|
||||
|
||||
$r = q("SELECT COUNT(*) AS `total` FROM `profile`
|
||||
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
||||
WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra ");
|
||||
if (DBM::is_result($r))
|
||||
$a->set_pager_total($r[0]['total']);
|
||||
$cnt = dba::selectFirst("SELECT COUNT(*) AS `total` FROM `profile`
|
||||
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
||||
WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra "
|
||||
);
|
||||
if (DBM::is_result($cnt)) {
|
||||
$a->set_pager_total($cnt['total']);
|
||||
}
|
||||
|
||||
$order = " ORDER BY `name` ASC ";
|
||||
|
||||
$limit = intval($a->pager['start']).",".intval($a->pager['itemspage']);
|
||||
$limit = intval($a->pager['start'])."," . intval($a->pager['itemspage']);
|
||||
|
||||
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
|
||||
$r = dba::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`,
|
||||
`contact`.`addr`, `contact`.`url` AS profile_url FROM `profile`
|
||||
LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
||||
LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid`
|
||||
WHERE `is-default` $publish AND `user`.`blocked` = 0 AND `contact`.`self` $sql_extra $order LIMIT ".$limit);
|
||||
WHERE `is-default` $publish AND `user`.`blocked` = 0 AND `contact`.`self` $sql_extra $order LIMIT ".$limit
|
||||
);
|
||||
if (DBM::is_result($r)) {
|
||||
|
||||
if (in_array('small', $a->argv)) {
|
||||
$photo = 'thumb';
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$photo = 'photo';
|
||||
}
|
||||
|
||||
foreach ($r as $rr) {
|
||||
|
||||
while ($rr = dba::fetch($r)) {
|
||||
$itemurl= '';
|
||||
|
||||
$itemurl = (($rr['addr'] != "") ? $rr['addr'] : $rr['profile_url']);
|
||||
|
|
@ -111,16 +116,19 @@ function directory_content(App $a) {
|
|||
$pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : '');
|
||||
|
||||
$details = '';
|
||||
if(strlen($rr['locality']))
|
||||
if (strlen($rr['locality'])) {
|
||||
$details .= $rr['locality'];
|
||||
if(strlen($rr['region'])) {
|
||||
if(strlen($rr['locality']))
|
||||
}
|
||||
if (strlen($rr['region'])) {
|
||||
if (strlen($rr['locality'])) {
|
||||
$details .= ', ';
|
||||
}
|
||||
$details .= $rr['region'];
|
||||
}
|
||||
if(strlen($rr['country-name'])) {
|
||||
if(strlen($details))
|
||||
if (strlen($rr['country-name'])) {
|
||||
if (strlen($details)) {
|
||||
$details .= ', ';
|
||||
}
|
||||
$details .= $rr['country-name'];
|
||||
}
|
||||
// if(strlen($rr['dob'])) {
|
||||
|
|
@ -132,20 +140,19 @@ function directory_content(App $a) {
|
|||
|
||||
$profile = $rr;
|
||||
|
||||
if((x($profile,'address') == 1)
|
||||
|| (x($profile,'locality') == 1)
|
||||
|| (x($profile,'region') == 1)
|
||||
|| (x($profile,'postal-code') == 1)
|
||||
|| (x($profile,'country-name') == 1))
|
||||
$location = L10n::t('Location:');
|
||||
if ((x($profile, 'address') == 1)
|
||||
|| (x($profile, 'locality') == 1)
|
||||
|| (x($profile, 'region') == 1)
|
||||
|| (x($profile, 'postal-code') == 1)
|
||||
|| (x($profile, 'country-name') == 1)
|
||||
) {
|
||||
$location = L10n::t('Location:');
|
||||
}
|
||||
|
||||
$gender = ((x($profile,'gender') == 1) ? L10n::t('Gender:') : False);
|
||||
|
||||
$marital = ((x($profile,'marital') == 1) ? L10n::t('Status:') : False);
|
||||
|
||||
$homepage = ((x($profile,'homepage') == 1) ? L10n::t('Homepage:') : False);
|
||||
|
||||
$about = ((x($profile,'about') == 1) ? L10n::t('About:') : False);
|
||||
$gender = ((x($profile, 'gender') == 1) ? L10n::t('Gender:') : false);
|
||||
$marital = ((x($profile, 'marital') == 1) ? L10n::t('Status:') : false);
|
||||
$homepage = ((x($profile, 'homepage') == 1) ? L10n::t('Homepage:') : false);
|
||||
$about = ((x($profile, 'about') == 1) ? L10n::t('About:') : false);
|
||||
|
||||
$location_e = $location;
|
||||
|
||||
|
|
@ -154,23 +161,23 @@ function directory_content(App $a) {
|
|||
];
|
||||
|
||||
$entry = [
|
||||
'id' => $rr['id'],
|
||||
'url' => $profile_link,
|
||||
'itemurl' => $itemurl,
|
||||
'thumb' => proxy_url($rr[$photo], false, PROXY_SIZE_THUMB),
|
||||
'img_hover' => $rr['name'],
|
||||
'name' => $rr['name'],
|
||||
'details' => $details,
|
||||
'id' => $rr['id'],
|
||||
'url' => $profile_link,
|
||||
'itemurl' => $itemurl,
|
||||
'thumb' => proxy_url($rr[$photo], false, PROXY_SIZE_THUMB),
|
||||
'img_hover' => $rr['name'],
|
||||
'name' => $rr['name'],
|
||||
'details' => $details,
|
||||
'account_type' => Contact::getAccountType($rr),
|
||||
'profile' => $profile,
|
||||
'location' => $location_e,
|
||||
'tags' => $rr['pub_keywords'],
|
||||
'gender' => $gender,
|
||||
'pdesc' => $pdesc,
|
||||
'marital' => $marital,
|
||||
'homepage' => $homepage,
|
||||
'about' => $about,
|
||||
'photo_menu' => $photo_menu,
|
||||
'profile' => $profile,
|
||||
'location' => $location_e,
|
||||
'tags' => $rr['pub_keywords'],
|
||||
'gender' => $gender,
|
||||
'pdesc' => $pdesc,
|
||||
'marital' => $marital,
|
||||
'homepage' => $homepage,
|
||||
'about' => $about,
|
||||
'photo_menu' => $photo_menu,
|
||||
|
||||
];
|
||||
|
||||
|
|
@ -187,20 +194,21 @@ function directory_content(App $a) {
|
|||
|
||||
$entries[] = $arr['entry'];
|
||||
}
|
||||
dba::close($r);
|
||||
|
||||
$tpl = get_markup_template('directory_header.tpl');
|
||||
|
||||
$o .= replace_macros($tpl, [
|
||||
'$search' => $search,
|
||||
'$search' => $search,
|
||||
'$globaldir' => L10n::t('Global Directory'),
|
||||
'$gdirpath' => $gdirpath,
|
||||
'$desc' => L10n::t('Find on this site'),
|
||||
'$contacts' => $entries,
|
||||
'$finding' => L10n::t('Results for:'),
|
||||
'$findterm' => (strlen($search) ? $search : ""),
|
||||
'$title' => L10n::t('Site Directory'),
|
||||
'$submit' => L10n::t('Find'),
|
||||
'$paginate' => paginate($a),
|
||||
'$gdirpath' => $gdirpath,
|
||||
'$desc' => L10n::t('Find on this site'),
|
||||
'$contacts' => $entries,
|
||||
'$finding' => L10n::t('Results for:'),
|
||||
'$findterm' => (strlen($search) ? $search : ""),
|
||||
'$title' => L10n::t('Site Directory'),
|
||||
'$submit' => L10n::t('Find'),
|
||||
'$paginate' => paginate($a),
|
||||
]);
|
||||
} else {
|
||||
info(L10n::t("No entries \x28some entries may be hidden\x29.") . EOL);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ use Friendica\Model\Profile;
|
|||
use Friendica\Network\Probe;
|
||||
use Friendica\Protocol\PortableContact;
|
||||
use Friendica\Util\Network;
|
||||
use Friendica\Database\DBM;
|
||||
|
||||
require_once 'mod/contacts.php';
|
||||
|
||||
|
|
@ -113,32 +114,22 @@ function dirfind_content(App $a, $prefix = "") {
|
|||
|
||||
/// @TODO These 2 SELECTs are not checked on validity with DBM::is_result()
|
||||
$count = q("SELECT count(*) AS `total` FROM `gcontact`
|
||||
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
|
||||
AND `contact`.`network` = `gcontact`.`network`
|
||||
AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
|
||||
AND NOT `contact`.`pending` AND `contact`.`rel` IN ('%s', '%s')
|
||||
WHERE (`contact`.`id` > 0 OR (NOT `gcontact`.`hide` AND `gcontact`.`network` IN ('%s', '%s', '%s') AND
|
||||
((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`)))) AND
|
||||
(`gcontact`.`url` LIKE '%s' OR `gcontact`.`name` LIKE '%s' OR `gcontact`.`location` LIKE '%s' OR
|
||||
`gcontact`.`addr` LIKE '%s' OR `gcontact`.`about` LIKE '%s' OR `gcontact`.`keywords` LIKE '%s') $extra_sql",
|
||||
intval(local_user()), dbesc(CONTACT_IS_SHARING), dbesc(CONTACT_IS_FRIEND),
|
||||
WHERE NOT `hide` AND `network` IN ('%s', '%s', '%s') AND
|
||||
((`last_contact` >= `last_failure`) OR (`updated` >= `last_failure`)) AND
|
||||
(`url` LIKE '%s' OR `name` LIKE '%s' OR `location` LIKE '%s' OR
|
||||
`addr` LIKE '%s' OR `about` LIKE '%s' OR `keywords` LIKE '%s') $extra_sql",
|
||||
dbesc(NETWORK_DFRN), dbesc($ostatus), dbesc($diaspora),
|
||||
dbesc(escape_tags($search2)), dbesc(escape_tags($search2)), dbesc(escape_tags($search2)),
|
||||
dbesc(escape_tags($search2)), dbesc(escape_tags($search2)), dbesc(escape_tags($search2)));
|
||||
|
||||
$results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`photo`, `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`
|
||||
$results = q("SELECT `nurl`
|
||||
FROM `gcontact`
|
||||
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
|
||||
AND `contact`.`network` = `gcontact`.`network`
|
||||
AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
|
||||
AND NOT `contact`.`pending` AND `contact`.`rel` IN ('%s', '%s')
|
||||
WHERE (`contact`.`id` > 0 OR (NOT `gcontact`.`hide` AND `gcontact`.`network` IN ('%s', '%s', '%s') AND
|
||||
((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`)))) AND
|
||||
(`gcontact`.`url` LIKE '%s' OR `gcontact`.`name` LIKE '%s' OR `gcontact`.`location` LIKE '%s' OR
|
||||
`gcontact`.`addr` LIKE '%s' OR `gcontact`.`about` LIKE '%s' OR `gcontact`.`keywords` LIKE '%s') $extra_sql
|
||||
GROUP BY `gcontact`.`nurl`
|
||||
ORDER BY `gcontact`.`updated` DESC LIMIT %d, %d",
|
||||
intval(local_user()), dbesc(CONTACT_IS_SHARING), dbesc(CONTACT_IS_FRIEND),
|
||||
WHERE NOT `hide` AND `network` IN ('%s', '%s', '%s') AND
|
||||
((`last_contact` >= `last_failure`) OR (`updated` >= `last_failure`)) AND
|
||||
(`url` LIKE '%s' OR `name` LIKE '%s' OR `location` LIKE '%s' OR
|
||||
`addr` LIKE '%s' OR `about` LIKE '%s' OR `keywords` LIKE '%s') $extra_sql
|
||||
GROUP BY `nurl`
|
||||
ORDER BY `updated` DESC LIMIT %d, %d",
|
||||
dbesc(NETWORK_DFRN), dbesc($ostatus), dbesc($diaspora),
|
||||
dbesc(escape_tags($search2)), dbesc(escape_tags($search2)), dbesc(escape_tags($search2)),
|
||||
dbesc(escape_tags($search2)), dbesc(escape_tags($search2)), dbesc(escape_tags($search2)),
|
||||
|
|
@ -148,14 +139,21 @@ function dirfind_content(App $a, $prefix = "") {
|
|||
$j->items_page = $perpage;
|
||||
$j->page = $a->pager['page'];
|
||||
foreach ($results AS $result) {
|
||||
if (PortableContact::alternateOStatusUrl($result["url"])) {
|
||||
if (PortableContact::alternateOStatusUrl($result["nurl"])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$result = Contact::getDetailsByURL($result["url"], local_user(), $result);
|
||||
$urlparts = parse_url($result["nurl"]);
|
||||
|
||||
// Ignore results that look strange.
|
||||
// For historic reasons the gcontact table does contain some garbage.
|
||||
if (!empty($urlparts['query']) || !empty($urlparts['fragment'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$result = Contact::getDetailsByURL($result["nurl"], local_user());
|
||||
|
||||
if ($result["name"] == "") {
|
||||
$urlparts = parse_url($result["url"]);
|
||||
$result["name"] = end(explode("/", $urlparts["path"]));
|
||||
}
|
||||
|
||||
|
|
@ -204,11 +202,10 @@ function dirfind_content(App $a, $prefix = "") {
|
|||
if ($jj->cid > 0) {
|
||||
$connlnk = "";
|
||||
$conntxt = "";
|
||||
$contact = q("SELECT * FROM `contact` WHERE `id` = %d",
|
||||
intval($jj->cid));
|
||||
if ($contact) {
|
||||
$photo_menu = Contact::photoMenu($contact[0]);
|
||||
$details = _contact_detail_for_template($contact[0]);
|
||||
$contact = dba::selectFirst('contact', [], ['id' => $jj->cid]);
|
||||
if (DBM::is_result($contact)) {
|
||||
$photo_menu = Contact::photoMenu($contact);
|
||||
$details = _contact_detail_for_template($contact);
|
||||
$alt_text = $details['alt_text'];
|
||||
} else {
|
||||
$photo_menu = [];
|
||||
|
|
|
|||
|
|
@ -212,7 +212,11 @@ function display_content(App $a, $update = false, $update_uid = 0) {
|
|||
if ($update) {
|
||||
$item_id = $_REQUEST['item_id'];
|
||||
$item = dba::selectFirst('item', ['uid', 'parent'], ['id' => $item_id]);
|
||||
$a->profile = ['uid' => intval($item['uid']), 'profile_uid' => intval($item['uid'])];
|
||||
if ($item['uid'] != 0) {
|
||||
$a->profile = ['uid' => intval($item['uid']), 'profile_uid' => intval($item['uid'])];
|
||||
} else {
|
||||
$a->profile = ['uid' => intval($update_uid), 'profile_uid' => intval($update_uid)];
|
||||
}
|
||||
$item_parent = $item['parent'];
|
||||
} else {
|
||||
$item_id = (($a->argc > 2) ? $a->argv[2] : 0);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ use Friendica\Core\System;
|
|||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\Profile;
|
||||
use Friendica\Network\Probe;
|
||||
use Friendica\Database\DBM;
|
||||
|
||||
function follow_post(App $a) {
|
||||
|
||||
|
|
@ -60,19 +61,20 @@ function follow_content(App $a) {
|
|||
|
||||
$submit = L10n::t('Submit Request');
|
||||
|
||||
// There is a current issue. It seems as if you can't start following a Friendica that is following you
|
||||
// With Diaspora this works - but Friendica is special, it seems ...
|
||||
$r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND ((`rel` != %d) OR (`network` = '%s')) AND
|
||||
// Don't try to add a pending contact
|
||||
$r = q("SELECT `pending` FROM `contact` WHERE `uid` = %d AND ((`rel` != %d) OR (`network` = '%s')) AND
|
||||
(`nurl` = '%s' OR `alias` = '%s' OR `alias` = '%s') AND
|
||||
`network` != '%s' LIMIT 1",
|
||||
intval(local_user()), dbesc(CONTACT_IS_FOLLOWER), dbesc(NETWORK_DFRN), dbesc(normalise_link($url)),
|
||||
dbesc(normalise_link($url)), dbesc($url), dbesc(NETWORK_STATUSNET));
|
||||
|
||||
if ($r) {
|
||||
notice(L10n::t('You already added this contact.').EOL);
|
||||
$submit = "";
|
||||
//goaway($_SESSION['return_url']);
|
||||
// NOTREACHED
|
||||
if ($r[0]['pending']) {
|
||||
notice(L10n::t('You already added this contact.').EOL);
|
||||
$submit = "";
|
||||
//goaway($_SESSION['return_url']);
|
||||
// NOTREACHED
|
||||
}
|
||||
}
|
||||
|
||||
$ret = Probe::uri($url);
|
||||
|
|
@ -102,7 +104,7 @@ function follow_content(App $a) {
|
|||
$ret["url"] = $ret["addr"];
|
||||
}
|
||||
|
||||
if ($ret['network'] === NETWORK_DFRN) {
|
||||
if (($ret['network'] === NETWORK_DFRN) && !DBM::is_result($r)) {
|
||||
$request = $ret["request"];
|
||||
$tpl = get_markup_template('dfrn_request.tpl');
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -397,7 +397,8 @@ function check_funcs(&$checks) {
|
|||
check_add($ck_funcs, L10n::t('PDO or MySQLi PHP module'), true, true, "");
|
||||
check_add($ck_funcs, L10n::t('mb_string PHP module'), true, true, "");
|
||||
check_add($ck_funcs, L10n::t('XML PHP module'), true, true, "");
|
||||
check_add($ck_funcs, L10n::t('iconv module'), true, true, "");
|
||||
check_add($ck_funcs, L10n::t('iconv PHP module'), true, true, "");
|
||||
check_add($ck_funcs, L10n::t('POSIX PHP module'), true, true, "");
|
||||
|
||||
if (function_exists('apache_get_modules')) {
|
||||
if (! in_array('mod_rewrite',apache_get_modules())) {
|
||||
|
|
@ -432,8 +433,12 @@ function check_funcs(&$checks) {
|
|||
$ck_funcs[4]['help'] = L10n::t('Error: mb_string PHP module required but not installed.');
|
||||
}
|
||||
if (! function_exists('iconv_strlen')) {
|
||||
$ck_funcs[6]['status'] = false;
|
||||
$ck_funcs[6]['help'] = L10n::t('Error: iconv PHP module required but not installed.');
|
||||
}
|
||||
if (! function_exists('posix_kill')) {
|
||||
$ck_funcs[7]['status'] = false;
|
||||
$ck_funcs[7]['help'] = L10n::t('Error: iconv PHP module required but not installed.');
|
||||
$ck_funcs[7]['help'] = L10n::t('Error: POSIX PHP module required but not installed.');
|
||||
}
|
||||
|
||||
$checks = array_merge($checks, $ck_funcs);
|
||||
|
|
@ -442,8 +447,8 @@ function check_funcs(&$checks) {
|
|||
try {
|
||||
$xml = new DOMDocument();
|
||||
} catch (Exception $e) {
|
||||
$ck_funcs[6]['status'] = false;
|
||||
$ck_funcs[6]['help'] = L10n::t('Error, XML PHP module required but not installed.');
|
||||
$ck_funcs[5]['status'] = false;
|
||||
$ck_funcs[5]['help'] = L10n::t('Error, XML PHP module required but not installed.');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -540,7 +545,7 @@ function load_database_rem($v, $i) {
|
|||
}
|
||||
|
||||
function load_database() {
|
||||
$errors = DBStructure::update(false, true);
|
||||
$errors = DBStructure::update(false, true, true);
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,12 +29,14 @@ function ostatus_subscribe_content(App $a) {
|
|||
if (PConfig::get($uid, "ostatus", "legacy_friends") == "") {
|
||||
|
||||
if ($_REQUEST["url"] == "") {
|
||||
PConfig::delete($uid, "ostatus", "legacy_contact");
|
||||
return $o.L10n::t("No contact provided.");
|
||||
}
|
||||
|
||||
$contact = Probe::uri($_REQUEST["url"]);
|
||||
|
||||
if (!$contact) {
|
||||
PConfig::delete($uid, "ostatus", "legacy_contact");
|
||||
return $o.L10n::t("Couldn't fetch information for contact.");
|
||||
}
|
||||
|
||||
|
|
@ -44,6 +46,7 @@ function ostatus_subscribe_content(App $a) {
|
|||
$data = Network::curl($api."statuses/friends.json?screen_name=".$contact["nick"]);
|
||||
|
||||
if (!$data["success"]) {
|
||||
PConfig::delete($uid, "ostatus", "legacy_contact");
|
||||
return $o.L10n::t("Couldn't fetch friends for contact.");
|
||||
}
|
||||
|
||||
|
|
|
|||
178
mod/pubsub.php
178
mod/pubsub.php
|
|
@ -2,162 +2,136 @@
|
|||
|
||||
use Friendica\App;
|
||||
use Friendica\Database\DBM;
|
||||
use Friendica\Protocol\OStatus;
|
||||
|
||||
function hub_return($valid,$body) {
|
||||
require_once('include/security.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
if($valid) {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 ' . 'OK');
|
||||
function hub_return($valid, $body)
|
||||
{
|
||||
if ($valid) {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
|
||||
echo $body;
|
||||
killme();
|
||||
} else {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
|
||||
}
|
||||
else {
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . 'Not Found');
|
||||
killme();
|
||||
}
|
||||
|
||||
// NOTREACHED
|
||||
killme();
|
||||
}
|
||||
|
||||
// when receiving an XML feed, always return OK
|
||||
|
||||
function hub_post_return() {
|
||||
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 ' . 'OK');
|
||||
function hub_post_return()
|
||||
{
|
||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
|
||||
killme();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function pubsub_init(App $a) {
|
||||
|
||||
function pubsub_init(App $a)
|
||||
{
|
||||
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
||||
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 );
|
||||
|
||||
if($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
$hub_mode = notags(trim(defaults($_GET, 'hub_mode', '')));
|
||||
$hub_topic = notags(trim(defaults($_GET, 'hub_topic', '')));
|
||||
$hub_challenge = notags(trim(defaults($_GET, 'hub_challenge', '')));
|
||||
$hub_lease = notags(trim(defaults($_GET, 'hub_lease_seconds', '')));
|
||||
$hub_verify = notags(trim(defaults($_GET, 'hub_verify_token', '')));
|
||||
|
||||
$hub_mode = ((x($_GET,'hub_mode')) ? notags(trim($_GET['hub_mode'])) : '');
|
||||
$hub_topic = ((x($_GET,'hub_topic')) ? notags(trim($_GET['hub_topic'])) : '');
|
||||
$hub_challenge = ((x($_GET,'hub_challenge')) ? notags(trim($_GET['hub_challenge'])) : '');
|
||||
$hub_lease = ((x($_GET,'hub_lease_seconds')) ? notags(trim($_GET['hub_lease_seconds'])) : '');
|
||||
$hub_verify = ((x($_GET,'hub_verify_token')) ? notags(trim($_GET['hub_verify_token'])) : '');
|
||||
|
||||
logger('pubsub: Subscription from ' . $_SERVER['REMOTE_ADDR']);
|
||||
logger('pubsub: data: ' . print_r($_GET,true), LOGGER_DATA);
|
||||
logger('Subscription from ' . $_SERVER['REMOTE_ADDR'] . ' Mode: ' . $hub_mode . ' Nick: ' . $nick);
|
||||
logger('Data: ' . print_r($_GET,true), LOGGER_DATA);
|
||||
|
||||
$subscribe = (($hub_mode === 'subscribe') ? 1 : 0);
|
||||
|
||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||
dbesc($nick)
|
||||
);
|
||||
if (! DBM::is_result($r)) {
|
||||
logger('pubsub: local account not found: ' . $nick);
|
||||
$owner = dba::selectFirst('user', ['uid'], ['nickname' => $nick, 'account_expired' => false, 'account_removed' => false]);
|
||||
if (!DBM::is_result($owner)) {
|
||||
logger('Local account not found: ' . $nick);
|
||||
hub_return(false, '');
|
||||
}
|
||||
|
||||
$condition = ['uid' => $owner['uid'], 'id' => $contact_id, 'blocked' => false, 'pending' => false];
|
||||
|
||||
$owner = $r[0];
|
||||
if (!empty($hub_verify)) {
|
||||
$condition['hub-verify'] = $hub_verify;
|
||||
}
|
||||
|
||||
$sql_extra = ((strlen($hub_verify)) ? sprintf(" AND `hub-verify` = '%s' ", dbesc($hub_verify)) : '');
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d
|
||||
AND `blocked` = 0 AND `pending` = 0 $sql_extra LIMIT 1",
|
||||
intval($contact_id),
|
||||
intval($owner['uid'])
|
||||
);
|
||||
if (! DBM::is_result($r)) {
|
||||
logger('pubsub: contact '.$contact_id.' not found.');
|
||||
$contact = dba::selectFirst('contact', ['id', 'poll'], $condition);
|
||||
if (!DBM::is_result($contact)) {
|
||||
logger('Contact ' . $contact_id . ' not found.');
|
||||
hub_return(false, '');
|
||||
}
|
||||
|
||||
if ($hub_topic)
|
||||
if(! link_compare($hub_topic,$r[0]['poll'])) {
|
||||
logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']);
|
||||
// should abort but let's humour them.
|
||||
}
|
||||
|
||||
$contact = $r[0];
|
||||
if (!empty($hub_topic) && !link_compare($hub_topic, $contact['poll'])) {
|
||||
logger('Hub topic ' . $hub_topic . ' != ' . $contact['poll']);
|
||||
hub_return(false, '');
|
||||
}
|
||||
|
||||
// We must initiate an unsubscribe request with a verify_token.
|
||||
// Don't allow outsiders to unsubscribe us.
|
||||
|
||||
if($hub_mode === 'unsubscribe') {
|
||||
if(! strlen($hub_verify)) {
|
||||
logger('pubsub: bogus unsubscribe');
|
||||
hub_return(false, '');
|
||||
}
|
||||
logger('pubsub: unsubscribe success');
|
||||
if (($hub_mode === 'unsubscribe') && empty($hub_verify)) {
|
||||
logger('Bogus unsubscribe');
|
||||
hub_return(false, '');
|
||||
}
|
||||
|
||||
if ($hub_mode)
|
||||
$r = q("UPDATE `contact` SET `subhub` = %d WHERE `id` = %d",
|
||||
intval($subscribe),
|
||||
intval($contact['id'])
|
||||
);
|
||||
|
||||
if (!empty($hub_mode)) {
|
||||
dba::update('contact', ['subhub' => $subscribe], ['id' => $contact['id']]);
|
||||
logger($hub_mode . ' success for contact ' . $contact_id . '.');
|
||||
}
|
||||
hub_return(true, $hub_challenge);
|
||||
}
|
||||
}
|
||||
|
||||
require_once('include/security.php');
|
||||
|
||||
function pubsub_post(App $a) {
|
||||
|
||||
function pubsub_post(App $a)
|
||||
{
|
||||
$xml = file_get_contents('php://input');
|
||||
|
||||
logger('pubsub: feed arrived from ' . $_SERVER['REMOTE_ADDR'] . ' for ' . $a->cmd );
|
||||
logger('pubsub: user-agent: ' . $_SERVER['HTTP_USER_AGENT'] );
|
||||
logger('pubsub: data: ' . $xml, LOGGER_DATA);
|
||||
|
||||
// if(! stristr($xml,'<?xml')) {
|
||||
// logger('pubsub_post: bad xml');
|
||||
// hub_post_return();
|
||||
// }
|
||||
logger('Feed arrived from ' . $_SERVER['REMOTE_ADDR'] . ' for ' . $a->cmd . ' with user-agent: ' . $_SERVER['HTTP_USER_AGENT']);
|
||||
logger('Data: ' . $xml, LOGGER_DATA);
|
||||
|
||||
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
||||
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 );
|
||||
|
||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||
dbesc($nick)
|
||||
);
|
||||
if (! DBM::is_result($r)) {
|
||||
$importer = dba::selectFirst('user', [], ['nickname' => $nick, 'account_expired' => false, 'account_removed' => false]);
|
||||
if (!DBM::is_result($importer)) {
|
||||
hub_post_return();
|
||||
}
|
||||
|
||||
$importer = $r[0];
|
||||
$condition = ['id' => $contact_id, 'uid' => $importer['uid'], 'subhub' => true, 'blocked' => false];
|
||||
$contact = dba::selectFirst('contact', [], $condition);
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `subhub` AND `id` = %d AND `uid` = %d
|
||||
AND (`rel` = %d OR `rel` = %d OR network = '%s') AND NOT `blocked` LIMIT 1",
|
||||
intval($contact_id),
|
||||
intval($importer['uid']),
|
||||
intval(CONTACT_IS_SHARING),
|
||||
intval(CONTACT_IS_FRIEND),
|
||||
dbesc(NETWORK_FEED)
|
||||
);
|
||||
if (!DBM::is_result($contact)) {
|
||||
$author = OStatus::salmonAuthor($xml, $importer);
|
||||
if (!empty($author['contact-id'])) {
|
||||
$condition = ['id' => $author['contact-id'], 'uid' => $importer['uid'], 'subhub' => true, 'blocked' => false];
|
||||
$contact = dba::selectFirst('contact', [], $condition);
|
||||
logger('No record for ' . $nick .' with contact id ' . $contact_id . ' - using '.$author['contact-id'].' instead.');
|
||||
}
|
||||
if (!DBM::is_result($contact)) {
|
||||
logger('Contact ' . $author["author-link"] . ' (' . $contact_id . ') for user ' . $nick . " wasn't found - ignored. XML: " . $xml);
|
||||
hub_post_return();
|
||||
}
|
||||
}
|
||||
|
||||
if (! DBM::is_result($r)) {
|
||||
logger('pubsub: no contact record for "'.$nick.' ('.$contact_id.')" - ignored. '.$xml);
|
||||
if (!in_array($contact['rel'], [CONTACT_IS_SHARING, CONTACT_IS_FRIEND]) && ($contact['network'] != NETWORK_FEED)) {
|
||||
logger('Contact ' . $contact['id'] . ' is not expected to share with us - ignored.');
|
||||
hub_post_return();
|
||||
}
|
||||
|
||||
$contact = $r[0];
|
||||
|
||||
// we have no way to match Diaspora guid's with atom post id's and could get duplicates.
|
||||
// we'll assume that direct delivery is robust (and this is a bad assumption, but the duplicates are messy).
|
||||
|
||||
if($r[0]['network'] === NETWORK_DIASPORA)
|
||||
// We import feeds from OStatus, Friendica and ATOM/RSS.
|
||||
/// @todo Check if Friendica posts really arrive here - otherwise we can discard some stuff
|
||||
if (!in_array($contact['network'], [NETWORK_OSTATUS, NETWORK_DFRN, NETWORK_FEED])) {
|
||||
hub_post_return();
|
||||
}
|
||||
|
||||
logger('Import item for ' . $nick . ' from ' . $contact['nick'] . ' (' . $contact['id'] . ')');
|
||||
$feedhub = '';
|
||||
consume_feed($xml, $importer, $contact, $feedhub);
|
||||
|
||||
require_once('include/items.php');
|
||||
|
||||
consume_feed($xml,$importer,$contact,$feedhub,1,1);
|
||||
|
||||
// do it a second time so that any children find their parents.
|
||||
|
||||
consume_feed($xml,$importer,$contact,$feedhub,1,2);
|
||||
// do it a second time for DFRN so that any children find their parents.
|
||||
if ($contact['network'] === NETWORK_DFRN) {
|
||||
consume_feed($xml, $importer, $contact, $feedhub);
|
||||
}
|
||||
|
||||
hub_post_return();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -208,8 +208,7 @@ function settings_post(App $a)
|
|||
return;
|
||||
}
|
||||
|
||||
if (($a->argc > 1) && ($a->argv[1] == 'connectors'))
|
||||
{
|
||||
if (($a->argc > 1) && ($a->argv[1] == 'connectors')) {
|
||||
check_form_security_token_redirectOnErr('/settings/connectors', 'settings_connectors');
|
||||
|
||||
if (x($_POST, 'general-submit')) {
|
||||
|
|
@ -1116,7 +1115,7 @@ function settings_content(App $a)
|
|||
|
||||
if (strlen(Config::get('system', 'directory'))) {
|
||||
$profile_in_net_dir = replace_macros($opt_tpl, [
|
||||
'$field' => ['profile_in_netdirectory', L10n::t('Publish your default profile in the global social directory?'), $profile['net-publish'], L10n::t('Your profile will be publishedin this node\'s <a href="%s">local directory</a>. Your profile details may be publicly visible depending on the system settings.', System::baseUrl().'/directory'), [L10n::t('No'), L10n::t('Yes')]]
|
||||
'$field' => ['profile_in_netdirectory', L10n::t('Publish your default profile in the global social directory?'), $profile['net-publish'], L10n::t('Your profile will be published in this node\'s <a href="%s">local directory</a>. Your profile details may be publicly visible depending on the system settings.', System::baseUrl().'/directory'), [L10n::t('No'), L10n::t('Yes')]]
|
||||
]);
|
||||
} else {
|
||||
$profile_in_net_dir = '';
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ function unfollow_post(App $a)
|
|||
if (!DBM::is_result($contact)) {
|
||||
notice(L10n::t("Contact wasn't found or can't be unfollowed."));
|
||||
} else {
|
||||
if (in_array($contact['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA])) {
|
||||
if (in_array($contact['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_DFRN])) {
|
||||
$r = q("SELECT `contact`.*, `user`.* FROM `contact` INNER JOIN `user` ON `contact`.`uid` = `user`.`uid`
|
||||
WHERE `user`.`uid` = %d AND `contact`.`self` LIMIT 1",
|
||||
intval($uid)
|
||||
|
|
@ -75,7 +75,7 @@ function unfollow_content(App $a)
|
|||
// NOTREACHED
|
||||
}
|
||||
|
||||
if (!in_array($contact['network'], [NETWORK_DIASPORA, NETWORK_OSTATUS])) {
|
||||
if (!in_array($contact['network'], [NETWORK_DIASPORA, NETWORK_OSTATUS, NETWORK_DFRN])) {
|
||||
notice(L10n::t("Unfollowing is currently not supported by your network.").EOL);
|
||||
$submit = "";
|
||||
// NOTREACHED
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
namespace Friendica\Content\Text;
|
||||
|
||||
use DOMDocument;
|
||||
use DomXPath;
|
||||
use DOMXPath;
|
||||
use Exception;
|
||||
use Friendica\BaseObject;
|
||||
use Friendica\Content\OEmbed;
|
||||
|
|
@ -680,7 +680,7 @@ class BBCode extends BaseObject
|
|||
|
||||
$return = '';
|
||||
if ($simplehtml == 7) {
|
||||
$return = self::convertUrlForMastodon($data["url"]);
|
||||
$return = self::convertUrlForOStatus($data["url"]);
|
||||
} elseif (($simplehtml != 4) && ($simplehtml != 0)) {
|
||||
$return = sprintf('<a href="%s" target="_blank">%s</a><br>', $data["url"], $data["title"]);
|
||||
} else {
|
||||
|
|
@ -708,9 +708,10 @@ class BBCode extends BaseObject
|
|||
}
|
||||
|
||||
if ($data["description"] != "" && $data["description"] != $data["title"]) {
|
||||
$return .= sprintf('<blockquote>%s</blockquote>', trim(self::convert($data["description"])));
|
||||
// Sanitize the HTML by converting it to BBCode
|
||||
$bbcode = HTML::toBBCode($data["description"]);
|
||||
$return .= sprintf('<blockquote>%s</blockquote>', trim(self::convert($bbcode)));
|
||||
}
|
||||
|
||||
if ($data["type"] == "link") {
|
||||
$return .= sprintf('<sup><a href="%s">%s</a></sup>', $data['url'], parse_url($data['url'], PHP_URL_HOST));
|
||||
}
|
||||
|
|
@ -757,7 +758,7 @@ class BBCode extends BaseObject
|
|||
if (($data["url"] != "") && ($data["title"] != "")) {
|
||||
$text .= "\n[url=" . $data["url"] . "]" . $data["title"] . "[/url]";
|
||||
} elseif (($data["url"] != "")) {
|
||||
$text .= "\n" . $data["url"];
|
||||
$text .= "\n[url]" . $data["url"] . "[/url]";
|
||||
}
|
||||
|
||||
return $text . "\n" . $data["after"];
|
||||
|
|
@ -770,7 +771,7 @@ class BBCode extends BaseObject
|
|||
* @param array $match Array with the matching values
|
||||
* @return string reformatted link including HTML codes
|
||||
*/
|
||||
private static function convertUrlForMastodonCallback($match)
|
||||
private static function convertUrlForOStatusCallback($match)
|
||||
{
|
||||
$url = $match[1];
|
||||
|
||||
|
|
@ -783,34 +784,27 @@ class BBCode extends BaseObject
|
|||
return $match[0];
|
||||
}
|
||||
|
||||
return self::convertUrlForMastodon($url);
|
||||
return self::convertUrlForOStatus($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Converts [url] BBCodes in a format that looks fine on Mastodon and GNU Social.
|
||||
* @brief Converts [url] BBCodes in a format that looks fine on OStatus systems.
|
||||
* @param string $url URL that is about to be reformatted
|
||||
* @return string reformatted link including HTML codes
|
||||
*/
|
||||
private static function convertUrlForMastodon($url)
|
||||
private static function convertUrlForOStatus($url)
|
||||
{
|
||||
$parts = parse_url($url);
|
||||
$scheme = $parts['scheme'] . '://';
|
||||
$styled_url = str_replace($scheme, '', $url);
|
||||
|
||||
$html = '<a href="%s" class="attachment" rel="nofollow noopener" target="_blank">' .
|
||||
'<span class="invisible">%s</span>';
|
||||
|
||||
if (strlen($styled_url) > 30) {
|
||||
$html .= '<span class="ellipsis">%s</span>' .
|
||||
'<span class="invisible">%s</span></a>';
|
||||
|
||||
$ellipsis = substr($styled_url, 0, 30);
|
||||
$rest = substr($styled_url, 30);
|
||||
return sprintf($html, $url, $scheme, $ellipsis, $rest);
|
||||
} else {
|
||||
$html .= '%s</a>';
|
||||
return sprintf($html, $url, $scheme, $styled_url);
|
||||
$styled_url = substr($styled_url, 0, 30) . "…";
|
||||
}
|
||||
|
||||
$html = '<a href="%s" target="_blank">%s</a>';
|
||||
|
||||
return sprintf($html, $url, $styled_url);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1105,13 +1099,13 @@ class BBCode extends BaseObject
|
|||
}
|
||||
|
||||
if (stripos(normalise_link($link), 'http://twitter.com/') === 0) {
|
||||
$text .= '<br /><a href="' . $link . '">' . $link . '</a>';
|
||||
} else {
|
||||
$text .= $headline . '<blockquote>' . trim($share[3]) . "</blockquote><br />";
|
||||
|
||||
if ($link != "") {
|
||||
$text .= '<br /><a href="' . $link . '">[l]</a>';
|
||||
}
|
||||
} else {
|
||||
$text .= '<br /><a href="' . $link . '">' . $link . '</a>';
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
@ -1207,7 +1201,7 @@ class BBCode extends BaseObject
|
|||
|
||||
$doc = new DOMDocument();
|
||||
@$doc->loadHTML($body);
|
||||
$xpath = new DomXPath($doc);
|
||||
$xpath = new DOMXPath($doc);
|
||||
$list = $xpath->query("//meta[@name]");
|
||||
foreach ($list as $node) {
|
||||
$attr = [];
|
||||
|
|
@ -1439,8 +1433,8 @@ class BBCode extends BaseObject
|
|||
$autolink_regex = "/([^\]\='".'"'."]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism";
|
||||
$text = preg_replace($autolink_regex, '$1[url]$2[/url]', $text);
|
||||
if ($simple_html == 7) {
|
||||
$text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForMastodonCallback', $text);
|
||||
$text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForMastodonCallback', $text);
|
||||
$text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text);
|
||||
$text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text);
|
||||
}
|
||||
} else {
|
||||
$text = preg_replace("(\[url\]([$URLSearchString]*)\[\/url\])ism", " $1 ", $text);
|
||||
|
|
@ -1540,10 +1534,8 @@ class BBCode extends BaseObject
|
|||
if (strpos($text, '[/map]') !== false) {
|
||||
$text = preg_replace_callback(
|
||||
"/\[map\](.*?)\[\/map\]/ism",
|
||||
function ($match) {
|
||||
// the extra space in the following line is intentional
|
||||
// Whyyy? - @MrPetovan
|
||||
return str_replace($match[0], '<div class="map" >' . Map::byLocation($match[1]) . '</div>', $match[0]);
|
||||
function ($match) use ($simple_html) {
|
||||
return str_replace($match[0], '<p class="map">' . Map::byLocation($match[1], $simple_html) . '</p>', $match[0]);
|
||||
},
|
||||
$text
|
||||
);
|
||||
|
|
@ -1551,16 +1543,14 @@ class BBCode extends BaseObject
|
|||
if (strpos($text, '[map=') !== false) {
|
||||
$text = preg_replace_callback(
|
||||
"/\[map=(.*?)\]/ism",
|
||||
function ($match) {
|
||||
// the extra space in the following line is intentional
|
||||
// Whyyy? - @MrPetovan
|
||||
return str_replace($match[0], '<div class="map" >' . Map::byCoordinates(str_replace('/', ' ', $match[1])) . '</div>', $match[0]);
|
||||
function ($match) use ($simple_html) {
|
||||
return str_replace($match[0], '<p class="map">' . Map::byCoordinates(str_replace('/', ' ', $match[1]), $simple_html) . '</p>', $match[0]);
|
||||
},
|
||||
$text
|
||||
);
|
||||
}
|
||||
if (strpos($text, '[map]') !== false) {
|
||||
$text = preg_replace("/\[map\]/", '<div class="map"></div>', $text);
|
||||
$text = preg_replace("/\[map\]/", '<p class="map"></p>', $text);
|
||||
}
|
||||
|
||||
// Check for headers
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ class NotificationsManager extends BaseObject
|
|||
public function setSeen($note, $seen = true)
|
||||
{
|
||||
return q(
|
||||
"UPDATE `notify` SET `seen` = %d WHERE ( `link` = '%s' OR ( `parent` != 0 AND `parent` = %d AND `otype` = '%s' )) AND `uid` = %d",
|
||||
"UPDATE `notify` SET `seen` = %d WHERE (`link` = '%s' OR (`parent` != 0 AND `parent` = %d AND `otype` = '%s')) AND `uid` = %d",
|
||||
intval($seen),
|
||||
dbesc($note['link']),
|
||||
intval($note['parent']),
|
||||
|
|
@ -384,16 +384,18 @@ class NotificationsManager extends BaseObject
|
|||
private function networkTotal($seen = 0)
|
||||
{
|
||||
$sql_seen = "";
|
||||
$index_hint = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||
$sql_seen = " AND `item`.`unseen` ";
|
||||
$index_hint = "USE INDEX (`uid_unseen_contactid`)";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT COUNT(*) AS `total`
|
||||
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND
|
||||
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0
|
||||
FROM `item` $index_hint STRAIGHT_JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` AND `pitem`.`parent` != 0 AND
|
||||
NOT `item`.`deleted` AND `item`.`uid` = %d AND NOT `item`.`wall`
|
||||
$sql_seen",
|
||||
intval(local_user())
|
||||
);
|
||||
|
|
@ -423,18 +425,20 @@ class NotificationsManager extends BaseObject
|
|||
$total = $this->networkTotal($seen);
|
||||
$notifs = [];
|
||||
$sql_seen = "";
|
||||
$index_hint = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||
$sql_seen = " AND `item`.`unseen` ";
|
||||
$index_hint = "USE INDEX (`uid_unseen_contactid`)";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
||||
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
|
||||
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
|
||||
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND
|
||||
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0
|
||||
FROM `item` $index_hint STRAIGHT_JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` AND `pitem`.`parent` != 0 AND
|
||||
NOT `item`.`deleted` AND `item`.`uid` = %d AND NOT `item`.`wall`
|
||||
$sql_seen
|
||||
ORDER BY `item`.`created` DESC LIMIT %d, %d ",
|
||||
intval(local_user()),
|
||||
|
|
@ -466,7 +470,7 @@ class NotificationsManager extends BaseObject
|
|||
$sql_seen = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `seen` = 0 ";
|
||||
$sql_seen = " AND NOT `seen` ";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
|
|
@ -501,7 +505,7 @@ class NotificationsManager extends BaseObject
|
|||
$sql_seen = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `seen` = 0 ";
|
||||
$sql_seen = " AND NOT `seen` ";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
|
|
@ -536,7 +540,7 @@ class NotificationsManager extends BaseObject
|
|||
$myurl = str_replace(['www.', '.'], ['', '\\.'], $myurl);
|
||||
$diasp_url = str_replace('/profile/', '/u/', $myurl);
|
||||
$sql_extra = sprintf(
|
||||
" AND ( `item`.`author-link` regexp '%s' OR `item`.`tag` regexp '%s' OR `item`.`tag` regexp '%s' ) ",
|
||||
" AND (`item`.`author-link` REGEXP '%s' OR `item`.`tag` REGEXP '%s' OR `item`.`tag` REGEXP '%s') ",
|
||||
dbesc($myurl . '$'),
|
||||
dbesc($myurl . '\\]'),
|
||||
dbesc($diasp_url . '\\]')
|
||||
|
|
@ -555,19 +559,21 @@ class NotificationsManager extends BaseObject
|
|||
private function personalTotal($seen = 0)
|
||||
{
|
||||
$sql_seen = "";
|
||||
$index_hint = "";
|
||||
$sql_extra = $this->personalSqlExtra();
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||
$sql_seen = " AND `item`.`unseen` ";
|
||||
$index_hint = "USE INDEX (`uid_unseen_contactid`)";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT COUNT(*) AS `total`
|
||||
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` = 1
|
||||
FROM `item` $index_hint
|
||||
WHERE `item`.`visible`
|
||||
$sql_extra
|
||||
$sql_seen
|
||||
AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ",
|
||||
AND NOT `item`.`deleted` AND `item`.`uid` = %d AND NOT `item`.`wall`",
|
||||
intval(local_user())
|
||||
);
|
||||
if (DBM::is_result($r)) {
|
||||
|
|
@ -597,20 +603,22 @@ class NotificationsManager extends BaseObject
|
|||
$sql_extra = $this->personalSqlExtra();
|
||||
$notifs = [];
|
||||
$sql_seen = "";
|
||||
$index_hint = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||
$sql_seen = " AND `item`.`unseen` ";
|
||||
$index_hint = "USE INDEX (`uid_unseen_contactid`)";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
||||
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
|
||||
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
|
||||
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` = 1
|
||||
FROM `item` $index_hint STRAIGHT_JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible`
|
||||
$sql_extra
|
||||
$sql_seen
|
||||
AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0
|
||||
AND NOT `item`.`deleted` AND `item`.`uid` = %d AND NOT `item`.`wall`
|
||||
ORDER BY `item`.`created` DESC LIMIT %d, %d ",
|
||||
intval(local_user()),
|
||||
intval($start),
|
||||
|
|
@ -639,13 +647,15 @@ class NotificationsManager extends BaseObject
|
|||
private function homeTotal($seen = 0)
|
||||
{
|
||||
$sql_seen = "";
|
||||
$index_hint = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||
$sql_seen = " AND `item`.`unseen` ";
|
||||
$index_hint = "USE INDEX (`uid_unseen_contactid`)";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT COUNT(*) AS `total` FROM `item`
|
||||
"SELECT COUNT(*) AS `total` FROM `item` $index_hint
|
||||
WHERE `item`.`visible` = 1 AND
|
||||
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1
|
||||
$sql_seen",
|
||||
|
|
@ -677,18 +687,20 @@ class NotificationsManager extends BaseObject
|
|||
$total = $this->homeTotal($seen);
|
||||
$notifs = [];
|
||||
$sql_seen = "";
|
||||
$index_hint = "";
|
||||
|
||||
if ($seen === 0) {
|
||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||
$sql_seen = " AND `item`.`unseen` ";
|
||||
$index_hint = "USE INDEX (`uid_unseen_contactid`)";
|
||||
}
|
||||
|
||||
$r = q(
|
||||
"SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
||||
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
|
||||
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
|
||||
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` = 1 AND
|
||||
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1
|
||||
FROM `item` $index_hint STRAIGHT_JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||
WHERE `item`.`visible` AND
|
||||
NOT `item`.`deleted` AND `item`.`uid` = %d AND `item`.`wall`
|
||||
$sql_seen
|
||||
ORDER BY `item`.`created` DESC LIMIT %d, %d ",
|
||||
intval(local_user()),
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ class Worker
|
|||
$mypid = getmypid();
|
||||
|
||||
// Quit when in maintenance
|
||||
if (Config::get('system', 'maintenance', true)) {
|
||||
if (Config::get('system', 'maintenance', false, true)) {
|
||||
logger("Maintenance mode - quit process ".$mypid, LOGGER_DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -199,12 +199,13 @@ class DBStructure
|
|||
*
|
||||
* @param bool $verbose
|
||||
* @param bool $action Whether to actually apply the update
|
||||
* @param bool $install Is this the initial update during the installation?
|
||||
* @param array $tables An array of the database tables
|
||||
* @param array $definition An array of the definition tables
|
||||
* @return string Empty string if the update is successful, error messages otherwise
|
||||
*/
|
||||
public static function update($verbose, $action, array $tables = null, array $definition = null) {
|
||||
if ($action) {
|
||||
public static function update($verbose, $action, $install = false, array $tables = null, array $definition = null) {
|
||||
if ($action && !$install) {
|
||||
Config::set('system', 'maintenance', 1);
|
||||
Config::set('system', 'maintenance_reason', L10n::t(': Database update', DBM::date().' '.date('e')));
|
||||
}
|
||||
|
|
@ -455,7 +456,9 @@ class DBStructure
|
|||
}
|
||||
|
||||
if ($action) {
|
||||
Config::set('system', 'maintenance_reason', L10n::t('%s: updating %s table.', DBM::date().' '.date('e'), $name));
|
||||
if (!$install) {
|
||||
Config::set('system', 'maintenance_reason', L10n::t('%s: updating %s table.', DBM::date().' '.date('e'), $name));
|
||||
}
|
||||
|
||||
// Ensure index conversion to unique removes duplicates
|
||||
if ($is_unique && ($temp_name != $name)) {
|
||||
|
|
@ -505,15 +508,15 @@ class DBStructure
|
|||
}
|
||||
}
|
||||
|
||||
if ($action) {
|
||||
if ($action && !$install) {
|
||||
Config::set('system', 'maintenance', 0);
|
||||
Config::set('system', 'maintenance_reason', '');
|
||||
}
|
||||
|
||||
if ($errors) {
|
||||
Config::set('system', 'dbupdate', DB_UPDATE_FAILED);
|
||||
} else {
|
||||
Config::set('system', 'dbupdate', DB_UPDATE_SUCCESSFUL);
|
||||
if ($errors) {
|
||||
Config::set('system', 'dbupdate', DB_UPDATE_FAILED);
|
||||
} else {
|
||||
Config::set('system', 'dbupdate', DB_UPDATE_SUCCESSFUL);
|
||||
}
|
||||
}
|
||||
|
||||
return $errors;
|
||||
|
|
@ -1143,6 +1146,7 @@ class DBStructure
|
|||
"author-link" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
||||
"author-avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
||||
"title" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
||||
"content-warning" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
||||
"body" => ["type" => "mediumtext", "comment" => ""],
|
||||
"app" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
|
||||
"verb" => ["type" => "varchar(100)", "not null" => "1", "default" => "", "comment" => ""],
|
||||
|
|
|
|||
|
|
@ -173,20 +173,18 @@ class Contact extends BaseObject
|
|||
*/
|
||||
public static function terminateFriendship(array $user, array $contact)
|
||||
{
|
||||
if ($contact['network'] === NETWORK_OSTATUS) {
|
||||
if (in_array($contact['network'], [NETWORK_OSTATUS, NETWORK_DFRN])) {
|
||||
// create an unfollow slap
|
||||
$item = [];
|
||||
$item['verb'] = NAMESPACE_OSTATUS . "/unfollow";
|
||||
$item['follow'] = $contact["url"];
|
||||
$slap = OStatus::salmon($item, $user);
|
||||
|
||||
if ((x($contact, 'notify')) && (strlen($contact['notify']))) {
|
||||
if (!empty($contact['notify'])) {
|
||||
Salmon::slapper($user, $contact['notify'], $slap);
|
||||
}
|
||||
} elseif ($contact['network'] === NETWORK_DIASPORA) {
|
||||
} elseif ($contact['network'] == NETWORK_DIASPORA) {
|
||||
Diaspora::sendUnshare($user, $contact);
|
||||
} elseif ($contact['network'] === NETWORK_DFRN) {
|
||||
DFRN::deliver($user, $contact, 'placeholder', 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -516,7 +514,7 @@ class Contact extends BaseObject
|
|||
}
|
||||
|
||||
$sparkle = false;
|
||||
if ($contact['network'] === NETWORK_DFRN) {
|
||||
if (($contact['network'] === NETWORK_DFRN) && !$contact['self']) {
|
||||
$sparkle = true;
|
||||
$profile_link = System::baseUrl() . '/redir/' . $contact['id'];
|
||||
} else {
|
||||
|
|
@ -533,18 +531,21 @@ class Contact extends BaseObject
|
|||
$profile_link = $profile_link . '?url=profile';
|
||||
}
|
||||
|
||||
if (in_array($contact['network'], [NETWORK_DFRN, NETWORK_DIASPORA])) {
|
||||
if (in_array($contact['network'], [NETWORK_DFRN, NETWORK_DIASPORA]) && !$contact['self']) {
|
||||
$pm_url = System::baseUrl() . '/message/new/' . $contact['id'];
|
||||
}
|
||||
|
||||
if ($contact['network'] == NETWORK_DFRN) {
|
||||
if (($contact['network'] == NETWORK_DFRN) && !$contact['self']) {
|
||||
$poke_link = System::baseUrl() . '/poke/?f=&c=' . $contact['id'];
|
||||
}
|
||||
|
||||
$contact_url = System::baseUrl() . '/contacts/' . $contact['id'];
|
||||
|
||||
$posts_link = System::baseUrl() . '/contacts/' . $contact['id'] . '/posts';
|
||||
$contact_drop_link = System::baseUrl() . '/contacts/' . $contact['id'] . '/drop?confirm=1';
|
||||
|
||||
if (!$contact['self']) {
|
||||
$contact_drop_link = System::baseUrl() . '/contacts/' . $contact['id'] . '/drop?confirm=1';
|
||||
}
|
||||
|
||||
/**
|
||||
* Menu array:
|
||||
|
|
@ -1168,7 +1169,26 @@ class Contact extends BaseObject
|
|||
return result;
|
||||
}
|
||||
|
||||
if ($ret['network'] === NETWORK_DFRN) {
|
||||
// check if we already have a contact
|
||||
// the poll url is more reliable than the profile url, as we may have
|
||||
// indirect links or webfinger links
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `poll` IN ('%s', '%s') AND `network` = '%s' AND NOT `pending` LIMIT 1",
|
||||
intval($uid),
|
||||
dbesc($ret['poll']),
|
||||
dbesc(normalise_link($ret['poll'])),
|
||||
dbesc($ret['network'])
|
||||
);
|
||||
|
||||
if (!DBM::is_result($r)) {
|
||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` = '%s' AND NOT `pending` LIMIT 1",
|
||||
intval($uid),
|
||||
dbesc(normalise_link($url)),
|
||||
dbesc($ret['network'])
|
||||
);
|
||||
}
|
||||
|
||||
if (($ret['network'] === NETWORK_DFRN) && !DBM::is_result($r)) {
|
||||
if ($interactive) {
|
||||
if (strlen($a->path)) {
|
||||
$myaddr = bin2hex(System::baseUrl() . '/profile/' . $a->user['nickname']);
|
||||
|
|
@ -1180,7 +1200,7 @@ class Contact extends BaseObject
|
|||
|
||||
// NOTREACHED
|
||||
}
|
||||
} elseif (Config::get('system', 'dfrn_only')) {
|
||||
} elseif (Config::get('system', 'dfrn_only') && ($ret['network'] != NETWORK_DFRN)) {
|
||||
$result['message'] = L10n::t('This site is not configured to allow communications with other networks.') . EOL;
|
||||
$result['message'] != L10n::t('No compatible communication protocols or feeds were discovered.') . EOL;
|
||||
return $result;
|
||||
|
|
@ -1230,25 +1250,6 @@ class Contact extends BaseObject
|
|||
$writeable = 1;
|
||||
}
|
||||
|
||||
// check if we already have a contact
|
||||
// the poll url is more reliable than the profile url, as we may have
|
||||
// indirect links or webfinger links
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `poll` IN ('%s', '%s') AND `network` = '%s' LIMIT 1",
|
||||
intval($uid),
|
||||
dbesc($ret['poll']),
|
||||
dbesc(normalise_link($ret['poll'])),
|
||||
dbesc($ret['network'])
|
||||
);
|
||||
|
||||
if (!DBM::is_result($r)) {
|
||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` = '%s' LIMIT 1",
|
||||
intval($uid),
|
||||
dbesc(normalise_link($url)),
|
||||
dbesc($ret['network'])
|
||||
);
|
||||
}
|
||||
|
||||
if (DBM::is_result($r)) {
|
||||
// update contact
|
||||
$new_relation = (($r[0]['rel'] == CONTACT_IS_FOLLOWER) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING);
|
||||
|
|
@ -1309,16 +1310,16 @@ class Contact extends BaseObject
|
|||
);
|
||||
|
||||
if (DBM::is_result($r)) {
|
||||
if (($contact['network'] == NETWORK_OSTATUS) && (strlen($contact['notify']))) {
|
||||
if (in_array($contact['network'], [NETWORK_OSTATUS, NETWORK_DFRN])) {
|
||||
// create a follow slap
|
||||
$item = [];
|
||||
$item['verb'] = ACTIVITY_FOLLOW;
|
||||
$item['follow'] = $contact["url"];
|
||||
$slap = OStatus::salmon($item, $r[0]);
|
||||
Salmon::slapper($r[0], $contact['notify'], $slap);
|
||||
}
|
||||
|
||||
if ($contact['network'] == NETWORK_DIASPORA) {
|
||||
if (!empty($contact['notify'])) {
|
||||
Salmon::slapper($r[0], $contact['notify'], $slap);
|
||||
}
|
||||
} elseif ($contact['network'] == NETWORK_DIASPORA) {
|
||||
$ret = Diaspora::sendShare($a->user, $contact);
|
||||
logger('share returns: ' . $ret);
|
||||
}
|
||||
|
|
@ -1377,7 +1378,7 @@ class Contact extends BaseObject
|
|||
}
|
||||
|
||||
if (is_array($contact)) {
|
||||
if (($contact['network'] == NETWORK_OSTATUS && $contact['rel'] == CONTACT_IS_SHARING)
|
||||
if (($contact['rel'] == CONTACT_IS_SHARING)
|
||||
|| ($sharing && $contact['rel'] == CONTACT_IS_FOLLOWER)) {
|
||||
dba::update('contact', ['rel' => CONTACT_IS_FRIEND, 'writable' => true],
|
||||
['id' => $contact['id'], 'uid' => $importer['uid']]);
|
||||
|
|
|
|||
|
|
@ -36,56 +36,53 @@ class GContact
|
|||
*/
|
||||
public static function searchByName($search, $mode = '')
|
||||
{
|
||||
if ($search) {
|
||||
// check supported networks
|
||||
if (Config::get('system', 'diaspora_enabled')) {
|
||||
$diaspora = NETWORK_DIASPORA;
|
||||
} else {
|
||||
$diaspora = NETWORK_DFRN;
|
||||
}
|
||||
|
||||
if (!Config::get('system', 'ostatus_disabled')) {
|
||||
$ostatus = NETWORK_OSTATUS;
|
||||
} else {
|
||||
$ostatus = NETWORK_DFRN;
|
||||
}
|
||||
|
||||
// check if we search only communities or every contact
|
||||
if ($mode === "community") {
|
||||
$extra_sql = " AND `community`";
|
||||
} else {
|
||||
$extra_sql = "";
|
||||
}
|
||||
|
||||
$search .= "%";
|
||||
|
||||
$results = q(
|
||||
"SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`,
|
||||
`gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`, `gcontact`.`community`
|
||||
FROM `gcontact`
|
||||
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
|
||||
AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
|
||||
AND NOT `contact`.`pending` AND `contact`.`rel` IN ('%s', '%s')
|
||||
WHERE (`contact`.`id` > 0 OR (NOT `gcontact`.`hide` AND `gcontact`.`network` IN ('%s', '%s', '%s') AND
|
||||
((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR
|
||||
(`gcontact`.`updated` >= `gcontact`.`last_failure`)))) AND
|
||||
(`gcontact`.`addr` LIKE '%s' OR `gcontact`.`name` LIKE '%s' OR `gcontact`.`nick` LIKE '%s') $extra_sql
|
||||
GROUP BY `gcontact`.`nurl`
|
||||
ORDER BY `gcontact`.`nurl` DESC
|
||||
LIMIT 1000",
|
||||
intval(local_user()),
|
||||
dbesc(CONTACT_IS_SHARING),
|
||||
dbesc(CONTACT_IS_FRIEND),
|
||||
dbesc(NETWORK_DFRN),
|
||||
dbesc($ostatus),
|
||||
dbesc($diaspora),
|
||||
dbesc(escape_tags($search)),
|
||||
dbesc(escape_tags($search)),
|
||||
dbesc(escape_tags($search))
|
||||
);
|
||||
|
||||
return $results;
|
||||
if (empty($search)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// check supported networks
|
||||
if (Config::get('system', 'diaspora_enabled')) {
|
||||
$diaspora = NETWORK_DIASPORA;
|
||||
} else {
|
||||
$diaspora = NETWORK_DFRN;
|
||||
}
|
||||
|
||||
if (!Config::get('system', 'ostatus_disabled')) {
|
||||
$ostatus = NETWORK_OSTATUS;
|
||||
} else {
|
||||
$ostatus = NETWORK_DFRN;
|
||||
}
|
||||
|
||||
// check if we search only communities or every contact
|
||||
if ($mode === "community") {
|
||||
$extra_sql = " AND `community`";
|
||||
} else {
|
||||
$extra_sql = "";
|
||||
}
|
||||
|
||||
$search .= "%";
|
||||
|
||||
$results = dba::p("SELECT `nurl` FROM `gcontact`
|
||||
WHERE NOT `hide` AND `network` IN (?, ?, ?) AND
|
||||
((`last_contact` >= `last_failure`) OR (`updated` >= `last_failure`)) AND
|
||||
(`addr` LIKE ? OR `name` LIKE ? OR `nick` LIKE ?) $extra_sql
|
||||
GROUP BY `nurl` ORDER BY `nurl` DESC LIMIT 1000",
|
||||
NETWORK_DFRN, $ostatus, $diaspora, $search, $search, $search
|
||||
);
|
||||
|
||||
$gcontacts = [];
|
||||
while ($result = dba::fetch($results)) {
|
||||
$urlparts = parse_url($result["nurl"]);
|
||||
|
||||
// Ignore results that look strange.
|
||||
// For historic reasons the gcontact table does contain some garbage.
|
||||
if (!empty($urlparts['query']) || !empty($urlparts['fragment'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$gcontacts[] = Contact::getDetailsByURL($result["nurl"], local_user());
|
||||
}
|
||||
return $gcontacts;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ use Friendica\Object\Image;
|
|||
use Friendica\Protocol\Diaspora;
|
||||
use Friendica\Protocol\OStatus;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
use Friendica\Util\XML;
|
||||
use dba;
|
||||
use Text_LanguageDetect;
|
||||
|
||||
|
|
@ -355,6 +356,10 @@ class Item extends BaseObject
|
|||
}
|
||||
}
|
||||
|
||||
if (!empty($item['thr-parent'])) {
|
||||
$item['parent-uri'] = $item['thr-parent'];
|
||||
}
|
||||
|
||||
if (x($item, 'gravity')) {
|
||||
$item['gravity'] = intval($item['gravity']);
|
||||
} elseif ($item['parent-uri'] === $item['uri']) {
|
||||
|
|
@ -897,7 +902,11 @@ class Item extends BaseObject
|
|||
$item['uid'] = 0;
|
||||
$item['origin'] = 0;
|
||||
$item['wall'] = 0;
|
||||
$item['contact-id'] = Contact::getIdForURL($item['author-link']);
|
||||
if ($item['uri'] == $item['parent-uri']) {
|
||||
$item['contact-id'] = Contact::getIdForURL($item['owner-link']);
|
||||
} else {
|
||||
$item['contact-id'] = Contact::getIdForURL($item['author-link']);
|
||||
}
|
||||
|
||||
if (in_array($item['type'], ["net-comment", "wall-comment"])) {
|
||||
$item['type'] = 'remote-comment';
|
||||
|
|
@ -1264,21 +1273,23 @@ class Item extends BaseObject
|
|||
}
|
||||
|
||||
// now change this copy of the post to a forum head message and deliver to all the tgroup members
|
||||
$self = dba::selectFirst('contact', ['name', 'url', 'thumb'], ['uid' => $uid, 'self' => true]);
|
||||
$self = dba::selectFirst('contact', ['id', 'name', 'url', 'thumb'], ['uid' => $uid, 'self' => true]);
|
||||
if (!DBM::is_result($self)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$owner_id = Contact::getIdForURL($self['url']);
|
||||
|
||||
// also reset all the privacy bits to the forum default permissions
|
||||
|
||||
$private = ($user['allow_cid'] || $user['allow_gid'] || $user['deny_cid'] || $user['deny_gid']) ? 1 : 0;
|
||||
|
||||
$forum_mode = ($prvgroup ? 2 : 1);
|
||||
|
||||
$fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode,
|
||||
'owner-name' => $self['name'], 'owner-link' => $self['url'], 'owner-avatar' => $self['thumb'],
|
||||
'private' => $private, 'allow_cid' => $user['allow_cid'], 'allow_gid' => $user['allow_gid'],
|
||||
'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
|
||||
$fields = ['wall' => true, 'origin' => true, 'forum_mode' => $forum_mode, 'contact-id' => $self['id'],
|
||||
'owner-id' => $owner_id, 'owner-name' => $self['name'], 'owner-link' => $self['url'],
|
||||
'owner-avatar' => $self['thumb'], 'private' => $private, 'allow_cid' => $user['allow_cid'],
|
||||
'allow_gid' => $user['allow_gid'], 'deny_cid' => $user['deny_cid'], 'deny_gid' => $user['deny_gid']];
|
||||
dba::update('item', $fields, ['id' => $item_id]);
|
||||
|
||||
self::updateThread($item_id);
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ class User
|
|||
throw new Exception(L10n::t('Not a valid email address.'));
|
||||
}
|
||||
|
||||
if (dba::exists('user', ['email' => $email])) {
|
||||
if (Config::get('system', 'block_extended_register', false) && dba::exists('user', ['email' => $email])) {
|
||||
throw new Exception(L10n::t('Cannot use that email.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2079,8 +2079,8 @@ class DFRN
|
|||
return false;
|
||||
}
|
||||
|
||||
$fields = ['title' => $item["title"], 'body' => $item["body"],
|
||||
'tag' => $item["tag"], 'changed' => DateTimeFormat::utcNow(),
|
||||
$fields = ['title' => defaults($item, 'title', ''), 'body' => defaults($item, 'body', ''),
|
||||
'tag' => defaults($item, 'tag', ''), 'changed' => DateTimeFormat::utcNow(),
|
||||
'edited' => DateTimeFormat::utc($item["edited"])];
|
||||
|
||||
$condition = ["`uri` = ? AND `uid` IN (0, ?)", $item["uri"], $importer["importer_uid"]];
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ use Friendica\Util\Crypto;
|
|||
use Friendica\Util\DateTimeFormat;
|
||||
use Friendica\Util\Network;
|
||||
use Friendica\Util\XML;
|
||||
use Friendica\Util\Map;
|
||||
use dba;
|
||||
use SimpleXMLElement;
|
||||
|
||||
|
|
@ -222,11 +223,20 @@ class Diaspora
|
|||
|
||||
$signable_data = $msg.".".base64url_encode($type).".".base64url_encode($encoding).".".base64url_encode($alg);
|
||||
|
||||
if ($handle == '') {
|
||||
logger('No author could be decoded. Discarding. Message: ' . $envelope);
|
||||
return false;
|
||||
}
|
||||
|
||||
$key = self::key($handle);
|
||||
if ($key == '') {
|
||||
logger("Couldn't get a key for handle " . $handle . ". Discarding.");
|
||||
return false;
|
||||
}
|
||||
|
||||
$verify = Crypto::rsaVerify($signable_data, $sig, $key);
|
||||
if (!$verify) {
|
||||
logger('Message did not verify. Discarding.');
|
||||
logger('Message from ' . $handle . ' did not verify. Discarding.');
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -322,7 +332,16 @@ class Diaspora
|
|||
// Get the senders' public key
|
||||
$key_id = $base->sig[0]->attributes()->key_id[0];
|
||||
$author_addr = base64_decode($key_id);
|
||||
if ($author_addr == '') {
|
||||
logger('No author could be decoded. Discarding. Message: ' . $xml);
|
||||
System::httpExit(400);
|
||||
}
|
||||
|
||||
$key = self::key($author_addr);
|
||||
if ($key == '') {
|
||||
logger("Couldn't get a key for handle " . $author_addr . ". Discarding.");
|
||||
System::httpExit(400);
|
||||
}
|
||||
|
||||
$verify = Crypto::rsaVerify($signed_data, $signature, $key);
|
||||
if (!$verify) {
|
||||
|
|
@ -2212,7 +2231,10 @@ class Diaspora
|
|||
}
|
||||
|
||||
logger('Received participation for ID: '.$item['id'].' - Contact: '.$contact_id.' - Server: '.$server, LOGGER_DEBUG);
|
||||
dba::insert('participation', ['iid' => $item['id'], 'cid' => $contact_id, 'fid' => $person['id'], 'server' => $server]);
|
||||
|
||||
if (!dba::exists('participation', ['iid' => $item['id'], 'server' => $server])) {
|
||||
dba::insert('participation', ['iid' => $item['id'], 'cid' => $contact_id, 'fid' => $person['id'], 'server' => $server]);
|
||||
}
|
||||
|
||||
// Send all existing comments and likes to the requesting server
|
||||
$comments = dba::p("SELECT `item`.`id`, `item`.`verb`, `contact`.`self`
|
||||
|
|
@ -3197,13 +3219,14 @@ class Diaspora
|
|||
}
|
||||
|
||||
$logid = random_string(4);
|
||||
$dest_url = ($public_batch ? $contact["batch"] : $contact["notify"]);
|
||||
|
||||
// Fetch the fcontact entry when there is missing data
|
||||
// Will possibly happen when data is transmitted to a DFRN contact
|
||||
if (empty($dest_url) && !empty($contact['addr'])) {
|
||||
// We always try to use the data from the fcontact table.
|
||||
// This is important for transmitting data to Friendica servers.
|
||||
if (!empty($contact['addr'])) {
|
||||
$fcontact = self::personByHandle($contact['addr']);
|
||||
$dest_url = ($public_batch ? $fcontact["batch"] : $fcontact["notify"]);
|
||||
} else {
|
||||
$dest_url = ($public_batch ? $contact["batch"] : $contact["notify"]);
|
||||
}
|
||||
|
||||
if (!$dest_url) {
|
||||
|
|
@ -3597,10 +3620,18 @@ class Diaspora
|
|||
$eventdata['description'] = html_entity_decode(BBCode::toMarkdown($event['desc']));
|
||||
}
|
||||
if ($event['location']) {
|
||||
$event['location'] = preg_replace("/\[map\](.*?)\[\/map\]/ism", '$1', $event['location']);
|
||||
$coord = Map::getCoordinates($event['location']);
|
||||
|
||||
$location = [];
|
||||
$location["address"] = html_entity_decode(BBCode::toMarkdown($event['location']));
|
||||
$location["lat"] = 0;
|
||||
$location["lng"] = 0;
|
||||
if (!empty($coord['lat']) && !empty($coord['lon'])) {
|
||||
$location["lat"] = $coord['lat'];
|
||||
$location["lng"] = $coord['lon'];
|
||||
} else {
|
||||
$location["lat"] = 0;
|
||||
$location["lng"] = 0;
|
||||
}
|
||||
$eventdata['location'] = $location;
|
||||
}
|
||||
|
||||
|
|
@ -3694,7 +3725,13 @@ class Diaspora
|
|||
if (count($event)) {
|
||||
$message['event'] = $event;
|
||||
|
||||
/// @todo Once Diaspora supports it, we will remove the body
|
||||
if (!empty($event['location']['address']) &&
|
||||
!empty($event['location']['lat']) &&
|
||||
!empty($event['location']['lng'])) {
|
||||
$message['location'] = $event['location'];
|
||||
}
|
||||
|
||||
/// @todo Once Diaspora supports it, we will remove the body and the location hack above
|
||||
// $message['text'] = '';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,9 +86,9 @@ class Feed {
|
|||
if ($xpath->query('/atom:feed')->length > 0) {
|
||||
$alternate = $xpath->query("atom:link[@rel='alternate']")->item(0)->attributes;
|
||||
if (is_object($alternate)) {
|
||||
foreach ($alternate AS $attributes) {
|
||||
if ($attributes->name == "href") {
|
||||
$author["author-link"] = $attributes->textContent;
|
||||
foreach ($alternate AS $attribute) {
|
||||
if ($attribute->name == "href") {
|
||||
$author["author-link"] = $attribute->textContent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -99,9 +99,9 @@ class Feed {
|
|||
if ($author["author-link"] == "") {
|
||||
$self = $xpath->query("atom:link[@rel='self']")->item(0)->attributes;
|
||||
if (is_object($self)) {
|
||||
foreach ($self AS $attributes) {
|
||||
if ($attributes->name == "href") {
|
||||
$author["author-link"] = $attributes->textContent;
|
||||
foreach ($self AS $attribute) {
|
||||
if ($attribute->name == "href") {
|
||||
$author["author-link"] = $attribute->textContent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -141,9 +141,9 @@ class Feed {
|
|||
}
|
||||
$avatar = $xpath->evaluate("atom:author/atom:link[@rel='avatar']")->item(0)->attributes;
|
||||
if (is_object($avatar)) {
|
||||
foreach ($avatar AS $attributes) {
|
||||
if ($attributes->name == "href") {
|
||||
$author["author-avatar"] = $attributes->textContent;
|
||||
foreach ($avatar AS $attribute) {
|
||||
if ($attribute->name == "href") {
|
||||
$author["author-avatar"] = $attribute->textContent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -208,13 +208,10 @@ class Feed {
|
|||
}
|
||||
|
||||
$items = [];
|
||||
// Importing older entries first
|
||||
for($i = $entries->length - 1; $i >= 0;--$i) {
|
||||
$entry = $entries->item($i);
|
||||
|
||||
$entrylist = [];
|
||||
|
||||
foreach ($entries AS $entry) {
|
||||
$entrylist[] = $entry;
|
||||
}
|
||||
foreach (array_reverse($entrylist) AS $entry) {
|
||||
$item = array_merge($header, $author);
|
||||
|
||||
$alternate = $xpath->query("atom:link[@rel='alternate']", $entry)->item(0)->attributes;
|
||||
|
|
@ -222,9 +219,9 @@ class Feed {
|
|||
$alternate = $xpath->query("atom:link", $entry)->item(0)->attributes;
|
||||
}
|
||||
if (is_object($alternate)) {
|
||||
foreach ($alternate AS $attributes) {
|
||||
if ($attributes->name == "href") {
|
||||
$item["plink"] = $attributes->textContent;
|
||||
foreach ($alternate AS $attribute) {
|
||||
if ($attribute->name == "href") {
|
||||
$item["plink"] = $attribute->textContent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -310,20 +307,20 @@ class Feed {
|
|||
|
||||
$attachments = [];
|
||||
|
||||
$enclosures = $xpath->query("enclosure", $entry);
|
||||
$enclosures = $xpath->query("enclosure|atom:link[@rel='enclosure']", $entry);
|
||||
foreach ($enclosures AS $enclosure) {
|
||||
$href = "";
|
||||
$length = "";
|
||||
$type = "";
|
||||
$title = "";
|
||||
|
||||
foreach ($enclosure->attributes AS $attributes) {
|
||||
if ($attributes->name == "url") {
|
||||
$href = $attributes->textContent;
|
||||
} elseif ($attributes->name == "length") {
|
||||
$length = $attributes->textContent;
|
||||
} elseif ($attributes->name == "type") {
|
||||
$type = $attributes->textContent;
|
||||
foreach ($enclosure->attributes AS $attribute) {
|
||||
if (in_array($attribute->name, ["url", "href"])) {
|
||||
$href = $attribute->textContent;
|
||||
} elseif ($attribute->name == "length") {
|
||||
$length = $attribute->textContent;
|
||||
} elseif ($attribute->name == "type") {
|
||||
$type = $attribute->textContent;
|
||||
}
|
||||
}
|
||||
if (strlen($item["attach"])) {
|
||||
|
|
|
|||
|
|
@ -72,8 +72,9 @@ class OStatus
|
|||
|
||||
$contact = null;
|
||||
if ($aliaslink != '') {
|
||||
$condition = ["`uid` = ? AND `alias` = ? AND `network` != ?",
|
||||
$importer["uid"], $aliaslink, NETWORK_STATUSNET];
|
||||
$condition = ["`uid` = ? AND `alias` = ? AND `network` != ? AND `rel` IN (?, ?)",
|
||||
$importer["uid"], $aliaslink, NETWORK_STATUSNET,
|
||||
CONTACT_IS_SHARING, CONTACT_IS_FRIEND];
|
||||
$contact = dba::selectFirst('contact', [], $condition);
|
||||
}
|
||||
|
||||
|
|
@ -82,14 +83,16 @@ class OStatus
|
|||
$aliaslink = $author["author-link"];
|
||||
}
|
||||
|
||||
$condition = ["`uid` = ? AND `nurl` IN (?, ?) AND `network` != ?", $importer["uid"],
|
||||
normalise_link($author["author-link"]), normalise_link($aliaslink), NETWORK_STATUSNET];
|
||||
$condition = ["`uid` = ? AND `nurl` IN (?, ?) AND `network` != ? AND `rel` IN (?, ?)",
|
||||
$importer["uid"], normalise_link($author["author-link"]), normalise_link($aliaslink),
|
||||
NETWORK_STATUSNET, CONTACT_IS_SHARING, CONTACT_IS_FRIEND];
|
||||
$contact = dba::selectFirst('contact', [], $condition);
|
||||
}
|
||||
|
||||
if (!DBM::is_result($contact) && ($addr != '')) {
|
||||
$condition = ["`uid` = ? AND `addr` = ? AND `network` != ?",
|
||||
$importer["uid"], $addr, NETWORK_STATUSNET];
|
||||
$condition = ["`uid` = ? AND `addr` = ? AND `network` != ? AND `rel` IN (?, ?)",
|
||||
$importer["uid"], $addr, NETWORK_STATUSNET,
|
||||
CONTACT_IS_SHARING, CONTACT_IS_FRIEND];
|
||||
$contact = dba::selectFirst('contact', [], $condition);
|
||||
}
|
||||
|
||||
|
|
@ -243,13 +246,12 @@ class OStatus
|
|||
$xpath->registerNamespace('ostatus', NAMESPACE_OSTATUS);
|
||||
$xpath->registerNamespace('statusnet', NAMESPACE_STATUSNET);
|
||||
|
||||
$entries = $xpath->query('/atom:entry');
|
||||
$contact = ["id" => 0];
|
||||
|
||||
foreach ($entries as $entry) {
|
||||
// fetch the author
|
||||
$author = self::fetchAuthor($xpath, $entry, $importer, $contact, true);
|
||||
return $author;
|
||||
}
|
||||
// Fetch the first author
|
||||
$authordata = $xpath->query('//author')->item(0);
|
||||
$author = self::fetchAuthor($xpath, $authordata, $importer, $contact, true);
|
||||
return $author;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -658,8 +660,9 @@ class OStatus
|
|||
// Mastodon Content Warning
|
||||
if (($item["verb"] == ACTIVITY_POST) && $xpath->evaluate('boolean(atom:summary)', $entry)) {
|
||||
$clear_text = $xpath->query('atom:summary/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
$item["body"] = HTML::toBBCode($clear_text) . '[spoiler]' . $item["body"] . '[/spoiler]';
|
||||
if (!empty($clear_text)) {
|
||||
$item['content-warning'] = HTML::toBBCode($clear_text);
|
||||
}
|
||||
}
|
||||
|
||||
if (($self != '') && empty($item['protocol'])) {
|
||||
|
|
@ -670,9 +673,11 @@ class OStatus
|
|||
self::fetchConversation($item['conversation-href'], $item['conversation-uri']);
|
||||
}
|
||||
|
||||
if (isset($item["parent-uri"]) && ($related != '')) {
|
||||
if (isset($item["parent-uri"])) {
|
||||
if (!dba::exists('item', ['uid' => $importer["uid"], 'uri' => $item['parent-uri']])) {
|
||||
self::fetchRelated($related, $item["parent-uri"], $importer);
|
||||
if ($related != '') {
|
||||
self::fetchRelated($related, $item["parent-uri"], $importer);
|
||||
}
|
||||
} else {
|
||||
logger('Reply with URI '.$item["uri"].' already existed for user '.$importer["uid"].'.', LOGGER_DEBUG);
|
||||
}
|
||||
|
|
@ -1283,6 +1288,13 @@ class OStatus
|
|||
"rel" => "self", "type" => "application/atom+xml"];
|
||||
XML::addElement($doc, $root, "link", "", $attributes);
|
||||
|
||||
if ($owner['account-type'] == ACCOUNT_TYPE_COMMUNITY) {
|
||||
$condition = ['uid' => $owner['uid'], 'self' => false, 'pending' => false,
|
||||
'archive' => false, 'hidden' => false, 'blocked' => false];
|
||||
$members = dba::count('contact', $condition);
|
||||
XML::addElement($doc, $root, "statusnet:group_info", "", ["member_count" => $members]);
|
||||
}
|
||||
|
||||
return $root;
|
||||
}
|
||||
|
||||
|
|
@ -1374,16 +1386,22 @@ class OStatus
|
|||
*
|
||||
* @return object author element
|
||||
*/
|
||||
private static function addAuthor($doc, $owner)
|
||||
private static function addAuthor($doc, $owner, $show_profile = true)
|
||||
{
|
||||
$profile = dba::selectFirst('profile', ['homepage', 'publish'], ['uid' => $owner['uid'], 'is-default' => true]);
|
||||
$author = $doc->createElement("author");
|
||||
XML::addElement($doc, $author, "id", $owner["url"]);
|
||||
XML::addElement($doc, $author, "activity:object-type", ACTIVITY_OBJ_PERSON);
|
||||
if ($owner['account-type'] == ACCOUNT_TYPE_COMMUNITY) {
|
||||
XML::addElement($doc, $author, "activity:object-type", ACTIVITY_OBJ_GROUP);
|
||||
} else {
|
||||
XML::addElement($doc, $author, "activity:object-type", ACTIVITY_OBJ_PERSON);
|
||||
}
|
||||
XML::addElement($doc, $author, "uri", $owner["url"]);
|
||||
XML::addElement($doc, $author, "name", $owner["nick"]);
|
||||
XML::addElement($doc, $author, "email", $owner["addr"]);
|
||||
XML::addElement($doc, $author, "summary", BBCode::convert($owner["about"], false, 7));
|
||||
if ($show_profile) {
|
||||
XML::addElement($doc, $author, "summary", BBCode::convert($owner["about"], false, 7));
|
||||
}
|
||||
|
||||
$attributes = ["rel" => "alternate", "type" => "text/html", "href" => $owner["url"]];
|
||||
XML::addElement($doc, $author, "link", "", $attributes);
|
||||
|
|
@ -1408,15 +1426,17 @@ class OStatus
|
|||
|
||||
XML::addElement($doc, $author, "poco:preferredUsername", $owner["nick"]);
|
||||
XML::addElement($doc, $author, "poco:displayName", $owner["name"]);
|
||||
XML::addElement($doc, $author, "poco:note", BBCode::convert($owner["about"], false, 7));
|
||||
if ($show_profile) {
|
||||
XML::addElement($doc, $author, "poco:note", BBCode::convert($owner["about"], false, 7));
|
||||
|
||||
if (trim($owner["location"]) != "") {
|
||||
$element = $doc->createElement("poco:address");
|
||||
XML::addElement($doc, $element, "poco:formatted", $owner["location"]);
|
||||
$author->appendChild($element);
|
||||
if (trim($owner["location"]) != "") {
|
||||
$element = $doc->createElement("poco:address");
|
||||
XML::addElement($doc, $element, "poco:formatted", $owner["location"]);
|
||||
$author->appendChild($element);
|
||||
}
|
||||
}
|
||||
|
||||
if (DBM::is_result($profile)) {
|
||||
if (DBM::is_result($profile) && !$show_profile) {
|
||||
if (trim($profile["homepage"]) != "") {
|
||||
$urls = $doc->createElement("poco:urls");
|
||||
XML::addElement($doc, $urls, "poco:type", "homepage");
|
||||
|
|
@ -1427,11 +1447,12 @@ class OStatus
|
|||
|
||||
XML::addElement($doc, $author, "followers", "", ["url" => System::baseUrl()."/viewcontacts/".$owner["nick"]]);
|
||||
XML::addElement($doc, $author, "statusnet:profile_info", "", ["local_id" => $owner["uid"]]);
|
||||
|
||||
if ($profile["publish"]) {
|
||||
XML::addElement($doc, $author, "mastodon:scope", "public");
|
||||
}
|
||||
}
|
||||
|
||||
if ($profile["publish"]) {
|
||||
XML::addElement($doc, $author, "mastodon:scope", "public");
|
||||
}
|
||||
return $author;
|
||||
}
|
||||
|
||||
|
|
@ -1593,7 +1614,7 @@ class OStatus
|
|||
logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG);
|
||||
}
|
||||
|
||||
$title = self::entryHeader($doc, $entry, $owner, $toplevel);
|
||||
$title = self::entryHeader($doc, $entry, $owner, $item, $toplevel);
|
||||
|
||||
$r = q(
|
||||
"SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' AND NOT `private` AND `network` IN ('%s', '%s', '%s') LIMIT 1",
|
||||
|
|
@ -1622,7 +1643,7 @@ class OStatus
|
|||
|
||||
self::entryContent($doc, $as_object, $repeated_item, $owner, "", "", false);
|
||||
|
||||
$author = self::addAuthor($doc, $contact);
|
||||
$author = self::addAuthor($doc, $contact, false);
|
||||
$as_object->appendChild($author);
|
||||
|
||||
$as_object2 = $doc->createElement("activity:object");
|
||||
|
|
@ -1664,7 +1685,7 @@ class OStatus
|
|||
logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG);
|
||||
}
|
||||
|
||||
$title = self::entryHeader($doc, $entry, $owner, $toplevel);
|
||||
$title = self::entryHeader($doc, $entry, $owner, $item, $toplevel);
|
||||
|
||||
$verb = NAMESPACE_ACTIVITY_SCHEMA."favorite";
|
||||
self::entryContent($doc, $entry, $item, $owner, "Favorite", $verb, false);
|
||||
|
|
@ -1787,7 +1808,7 @@ class OStatus
|
|||
|
||||
$item["body"] = sprintf($message, $owner["nick"], $contact["nick"]);
|
||||
|
||||
self::entryHeader($doc, $entry, $owner, $toplevel);
|
||||
self::entryHeader($doc, $entry, $owner, $item, $toplevel);
|
||||
|
||||
self::entryContent($doc, $entry, $item, $owner, $title);
|
||||
|
||||
|
|
@ -1815,7 +1836,7 @@ class OStatus
|
|||
logger("OStatus entry is from author ".$owner["url"]." - not from ".$item["author-link"].". Quitting.", LOGGER_DEBUG);
|
||||
}
|
||||
|
||||
$title = self::entryHeader($doc, $entry, $owner, $toplevel);
|
||||
$title = self::entryHeader($doc, $entry, $owner, $item, $toplevel);
|
||||
|
||||
XML::addElement($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
|
||||
|
||||
|
|
@ -1836,12 +1857,18 @@ class OStatus
|
|||
*
|
||||
* @return string The title for the element
|
||||
*/
|
||||
private static function entryHeader($doc, &$entry, $owner, $toplevel)
|
||||
private static function entryHeader($doc, &$entry, $owner, $item, $toplevel)
|
||||
{
|
||||
/// @todo Check if this title stuff is really needed (I guess not)
|
||||
if (!$toplevel) {
|
||||
$entry = $doc->createElement("entry");
|
||||
$title = sprintf("New note by %s", $owner["nick"]);
|
||||
|
||||
if ($owner['account-type'] == ACCOUNT_TYPE_COMMUNITY) {
|
||||
$contact = self::contactEntry($item['author-link'], $owner);
|
||||
$author = self::addAuthor($doc, $contact, false);
|
||||
$entry->appendChild($author);
|
||||
}
|
||||
} else {
|
||||
$entry = $doc->createElementNS(NAMESPACE_ATOM1, "entry");
|
||||
|
||||
|
|
@ -1996,12 +2023,10 @@ class OStatus
|
|||
$mentioned = $newmentions;
|
||||
|
||||
foreach ($mentioned as $mention) {
|
||||
$r = q(
|
||||
"SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'",
|
||||
intval($owner["uid"]),
|
||||
dbesc(normalise_link($mention))
|
||||
);
|
||||
if ($r[0]["forum"] || $r[0]["prv"]) {
|
||||
$condition = ['uid' => $owner['uid'], 'nurl' => normalise_link($mention)];
|
||||
$contact = dba::selectFirst('contact', ['forum', 'prv', 'self', 'contact-type'], $condition);
|
||||
if ($contact["forum"] || $contact["prv"] || ($owner['contact-type'] == ACCOUNT_TYPE_COMMUNITY) ||
|
||||
($contact['self'] && ($owner['account-type'] == ACCOUNT_TYPE_COMMUNITY))) {
|
||||
XML::addElement($doc, $entry, "link", "",
|
||||
[
|
||||
"rel" => "mentioned",
|
||||
|
|
@ -2018,6 +2043,12 @@ class OStatus
|
|||
}
|
||||
}
|
||||
|
||||
if ($owner['account-type'] == ACCOUNT_TYPE_COMMUNITY) {
|
||||
XML::addElement($doc, $entry, "link", "", ["rel" => "mentioned",
|
||||
"ostatus:object-type" => "http://activitystrea.ms/schema/1.0/group",
|
||||
"href" => $owner['url']]);
|
||||
}
|
||||
|
||||
if (!$item["private"]) {
|
||||
XML::addElement($doc, $entry, "link", "", ["rel" => "ostatus:attention",
|
||||
"href" => "http://activityschema.org/collection/public"]);
|
||||
|
|
@ -2094,7 +2125,7 @@ class OStatus
|
|||
}
|
||||
|
||||
$owner = dba::fetch_first(
|
||||
"SELECT `contact`.*, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
|
||||
"SELECT `contact`.*, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`, `user`.`account-type`
|
||||
FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
||||
WHERE `contact`.`self` AND `user`.`nickname` = ? LIMIT 1",
|
||||
$owner_nick
|
||||
|
|
@ -2119,22 +2150,23 @@ class OStatus
|
|||
$sql_extra .= sprintf(" AND `item`.`object-type` = '%s' ", dbesc(ACTIVITY_OBJ_COMMENT));
|
||||
}
|
||||
|
||||
if ($owner['account-type'] != ACCOUNT_TYPE_COMMUNITY) {
|
||||
$sql_extra .= sprintf(" AND `item`.`contact-id` = %d AND `item`.`author-id` = %d ", intval($owner["id"]), intval($authorid));
|
||||
}
|
||||
|
||||
$items = q(
|
||||
"SELECT `item`.*, `item`.`id` AS `item_id` FROM `item` USE INDEX (`uid_contactid_created`)
|
||||
STRAIGHT_JOIN `thread` ON `thread`.`iid` = `item`.`parent`
|
||||
WHERE `item`.`uid` = %d
|
||||
AND `item`.`contact-id` = %d
|
||||
AND `item`.`author-id` = %d
|
||||
AND `item`.`created` > '%s'
|
||||
AND NOT `item`.`deleted`
|
||||
AND NOT `item`.`private`
|
||||
AND `item`.`visible`
|
||||
AND `item`.`wall`
|
||||
AND `thread`.`network` IN ('%s', '%s')
|
||||
$sql_extra
|
||||
ORDER BY `item`.`created` DESC LIMIT %d",
|
||||
intval($owner["uid"]),
|
||||
intval($owner["id"]),
|
||||
intval($authorid),
|
||||
dbesc($check_date),
|
||||
dbesc(NETWORK_OSTATUS),
|
||||
dbesc(NETWORK_DFRN),
|
||||
|
|
|
|||
|
|
@ -945,6 +945,15 @@ class PortableContact
|
|||
$register_policy = $gserver["register_policy"];
|
||||
$registered_users = $gserver["registered-users"];
|
||||
|
||||
// See discussion under https://forum.friendi.ca/display/0b6b25a8135aabc37a5a0f5684081633
|
||||
// It can happen that a zero date is in the database, but storing it again is forbidden.
|
||||
if ($last_contact < NULL_DATE) {
|
||||
$last_contact = NULL_DATE;
|
||||
}
|
||||
if ($last_failure < NULL_DATE) {
|
||||
$last_failure = NULL_DATE;
|
||||
}
|
||||
|
||||
if (!$force && !self::updateNeeded($gserver["created"], "", $last_failure, $last_contact)) {
|
||||
logger("Use cached data for server ".$server_url, LOGGER_DEBUG);
|
||||
return ($last_contact >= $last_failure);
|
||||
|
|
@ -1302,7 +1311,7 @@ class PortableContact
|
|||
if (isset($data->version)) {
|
||||
$network = NETWORK_DFRN;
|
||||
|
||||
$noscrape = $data->no_scrape_url;
|
||||
$noscrape = defaults($data->no_scrape_url, '');
|
||||
$version = $data->version;
|
||||
$site_name = $data->site_name;
|
||||
$info = $data->info;
|
||||
|
|
|
|||
|
|
@ -10,17 +10,23 @@ use Friendica\Core\Addon;
|
|||
* Leaflet Map related functions
|
||||
*/
|
||||
class Map {
|
||||
public static function byCoordinates($coord) {
|
||||
public static function byCoordinates($coord, $html_mode = 0) {
|
||||
$coord = trim($coord);
|
||||
$coord = str_replace([',','/',' '],[' ',' ',' '],$coord);
|
||||
$arr = ['lat' => trim(substr($coord,0,strpos($coord,' '))), 'lon' => trim(substr($coord,strpos($coord,' ')+1)), 'html' => ''];
|
||||
$arr = ['lat' => trim(substr($coord,0,strpos($coord,' '))), 'lon' => trim(substr($coord,strpos($coord,' ')+1)), 'mode' => $html_mode, 'html' => ''];
|
||||
Addon::callHooks('generate_map',$arr);
|
||||
return ($arr['html']) ? $arr['html'] : $coord;
|
||||
}
|
||||
|
||||
public static function byLocation($location) {
|
||||
$arr = ['location' => $location, 'html' => ''];
|
||||
public static function byLocation($location, $html_mode = 0) {
|
||||
$arr = ['location' => $location, 'mode' => $html_mode, 'html' => ''];
|
||||
Addon::callHooks('generate_named_map',$arr);
|
||||
return ($arr['html']) ? $arr['html'] : $location;
|
||||
}
|
||||
|
||||
public static function getCoordinates($location) {
|
||||
$arr = ['location' => $location, 'lat' => false, 'lon' => false];
|
||||
Addon::callHooks('Map::getCoordinates', $arr);
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ class Network
|
|||
|
||||
$newurl = $curl_info['redirect_url'];
|
||||
|
||||
if (($new_location_info['path'] == '') && ( $new_location_info['host'] != '')) {
|
||||
if (($new_location_info['path'] == '') && ($new_location_info['host'] != '')) {
|
||||
$newurl = $new_location_info['scheme'] . '://' . $new_location_info['host'] . $old_location_info['path'];
|
||||
}
|
||||
|
||||
|
|
@ -229,6 +229,11 @@ class Network
|
|||
if (strpos($newurl, '/') === 0) {
|
||||
$newurl = $old_location_info["scheme"]."://".$old_location_info["host"].$newurl;
|
||||
}
|
||||
$old_location_query = @parse_url($url, PHP_URL_QUERY);
|
||||
|
||||
if ($old_location_query != '') {
|
||||
$newurl .= '?' . $old_location_query;
|
||||
}
|
||||
|
||||
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
||||
$redirects++;
|
||||
|
|
|
|||
|
|
@ -582,11 +582,12 @@ class OnePoll
|
|||
|
||||
logger("Consume feed of contact ".$contact['id']);
|
||||
|
||||
consume_feed($xml, $importer, $contact, $hub, 1, 1);
|
||||
consume_feed($xml, $importer, $contact, $hub);
|
||||
|
||||
// do it twice. Ensures that children of parents which may be later in the stream aren't tossed
|
||||
|
||||
consume_feed($xml, $importer, $contact, $hub, 1, 2);
|
||||
// do it a second time for DFRN so that any children find their parents.
|
||||
if ($contact['network'] === NETWORK_DFRN) {
|
||||
consume_feed($xml, $importer, $contact, $hub);
|
||||
}
|
||||
|
||||
$hubmode = 'subscribe';
|
||||
if ($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly']) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ Andrej Stieben
|
|||
André Alves
|
||||
André Lohan
|
||||
Andy H3
|
||||
Andy Hee
|
||||
AndyHee
|
||||
Anthronaut
|
||||
Arian - Cazare Muncitori
|
||||
|
|
@ -75,6 +76,7 @@ Frederico Gonçalves Guimarães
|
|||
Gerhard Seeber
|
||||
gerhard6380
|
||||
Gert Cauwenberg
|
||||
GLComo
|
||||
greeneyedred
|
||||
Gregory Smith
|
||||
Haakon Meland Eriksen
|
||||
|
|
@ -91,7 +93,6 @@ Jak
|
|||
Jakob
|
||||
Jens Tautenhahn
|
||||
jensp
|
||||
Jeroen S
|
||||
jeroenpraat
|
||||
Johannes Schwab
|
||||
John Brazil
|
||||
|
|
@ -169,6 +170,7 @@ Silke Meyer
|
|||
Simon L'nu
|
||||
Simó Albert i Beltran
|
||||
soko1
|
||||
St John Karp
|
||||
Stanislav N.
|
||||
StefOfficiel
|
||||
Sveinn í Felli
|
||||
|
|
@ -206,4 +208,5 @@ Zered
|
|||
zotlabs
|
||||
zottel
|
||||
Zvi ben Yaakov (a.k.a rdc)
|
||||
Михаил
|
||||
Михаил
|
||||
朱陈锬
|
||||
3972
util/messages.po
3972
util/messages.po
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-03-02 12:02+0100\n"
|
||||
"POT-Creation-Date: 2018-03-05 16:37+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
@ -18,11 +18,6 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
|
||||
#: include/dba.php:59
|
||||
#, php-format
|
||||
msgid "Cannot locate DNS info for database server '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: include/security.php:81
|
||||
msgid "Welcome "
|
||||
msgstr ""
|
||||
|
|
@ -41,98 +36,6 @@ msgid ""
|
|||
"form has been opened for too long (>3 hours) before submitting it."
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:355
|
||||
msgid "Post to Email"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:360
|
||||
msgid "Hide your profile details from unknown viewers?"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:360
|
||||
#, php-format
|
||||
msgid "Connectors disabled, since \"%s\" is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:366
|
||||
msgid "Visible to everybody"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:367 view/theme/vier/config.php:115
|
||||
msgid "show"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:368 view/theme/vier/config.php:115
|
||||
msgid "don't show"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:374 mod/editpost.php:136
|
||||
msgid "CC: email addresses"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:375 mod/editpost.php:143
|
||||
msgid "Example: bob@example.com, mary@example.com"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:377 mod/events.php:536 mod/photos.php:1098
|
||||
#: mod/photos.php:1441
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:378
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: include/api.php:1181
|
||||
#, php-format
|
||||
msgid "Daily posting limit of %d post reached. The post was rejected."
|
||||
msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: include/api.php:1205
|
||||
#, php-format
|
||||
msgid "Weekly posting limit of %d post reached. The post was rejected."
|
||||
msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: include/api.php:1229
|
||||
#, php-format
|
||||
msgid "Monthly posting limit of %d post reached. The post was rejected."
|
||||
msgstr ""
|
||||
|
||||
#: include/api.php:4382 mod/photos.php:88 mod/photos.php:194 mod/photos.php:722
|
||||
#: mod/photos.php:1149 mod/photos.php:1166 mod/photos.php:1684
|
||||
#: mod/profile_photo.php:84 mod/profile_photo.php:92 mod/profile_photo.php:100
|
||||
#: mod/profile_photo.php:223 mod/profile_photo.php:317
|
||||
#: mod/profile_photo.php:327 src/Model/User.php:526 src/Model/User.php:534
|
||||
#: src/Model/User.php:542
|
||||
msgid "Profile Photos"
|
||||
msgstr ""
|
||||
|
||||
#: include/bb2diaspora.php:238 include/event.php:26 include/event.php:914
|
||||
#: mod/localtime.php:19
|
||||
msgid "l F d, Y \\@ g:i A"
|
||||
msgstr ""
|
||||
|
||||
#: include/bb2diaspora.php:245 include/event.php:45 include/event.php:62
|
||||
#: include/event.php:471 include/event.php:992
|
||||
msgid "Starts:"
|
||||
msgstr ""
|
||||
|
||||
#: include/bb2diaspora.php:251 include/event.php:48 include/event.php:68
|
||||
#: include/event.php:472 include/event.php:996
|
||||
msgid "Finishes:"
|
||||
msgstr ""
|
||||
|
||||
#: include/bb2diaspora.php:258 include/event.php:52 include/event.php:77
|
||||
#: include/event.php:473 include/event.php:1010 mod/directory.php:140
|
||||
#: mod/notifications.php:247 mod/contacts.php:651 mod/events.php:521
|
||||
#: src/Model/Profile.php:417
|
||||
msgid "Location:"
|
||||
msgstr ""
|
||||
|
||||
#: include/enotify.php:33
|
||||
msgid "Friendica Notification"
|
||||
msgstr ""
|
||||
|
|
@ -424,6 +327,28 @@ msgstr ""
|
|||
msgid "Please visit %s to approve or reject the request."
|
||||
msgstr ""
|
||||
|
||||
#: include/event.php:26 include/event.php:914 include/bb2diaspora.php:238
|
||||
#: mod/localtime.php:19
|
||||
msgid "l F d, Y \\@ g:i A"
|
||||
msgstr ""
|
||||
|
||||
#: include/event.php:45 include/event.php:62 include/event.php:471
|
||||
#: include/event.php:992 include/bb2diaspora.php:245
|
||||
msgid "Starts:"
|
||||
msgstr ""
|
||||
|
||||
#: include/event.php:48 include/event.php:68 include/event.php:472
|
||||
#: include/event.php:996 include/bb2diaspora.php:251
|
||||
msgid "Finishes:"
|
||||
msgstr ""
|
||||
|
||||
#: include/event.php:52 include/event.php:77 include/event.php:473
|
||||
#: include/event.php:1010 include/bb2diaspora.php:258 mod/notifications.php:247
|
||||
#: mod/contacts.php:651 mod/directory.php:149 mod/events.php:521
|
||||
#: src/Model/Profile.php:417
|
||||
msgid "Location:"
|
||||
msgstr ""
|
||||
|
||||
#: include/event.php:420
|
||||
msgid "all-day"
|
||||
msgstr ""
|
||||
|
|
@ -648,9 +573,9 @@ msgstr ""
|
|||
msgid "Hide map"
|
||||
msgstr ""
|
||||
|
||||
#: include/items.php:342 mod/notice.php:22 mod/display.php:70
|
||||
#: mod/display.php:247 mod/display.php:349 mod/viewsrc.php:21 mod/admin.php:269
|
||||
#: mod/admin.php:1762 mod/admin.php:2010
|
||||
#: include/items.php:342 mod/notice.php:22 mod/viewsrc.php:21 mod/admin.php:269
|
||||
#: mod/admin.php:1762 mod/admin.php:2010 mod/display.php:70 mod/display.php:247
|
||||
#: mod/display.php:349
|
||||
msgid "Item not found."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -661,41 +586,41 @@ msgstr ""
|
|||
#: include/items.php:384 mod/api.php:110 mod/suggest.php:38
|
||||
#: mod/profiles.php:649 mod/profiles.php:652 mod/profiles.php:674
|
||||
#: mod/contacts.php:464 mod/dfrn_request.php:653 mod/follow.php:148
|
||||
#: mod/message.php:138 mod/settings.php:1109 mod/settings.php:1115
|
||||
#: mod/settings.php:1122 mod/settings.php:1126 mod/settings.php:1130
|
||||
#: mod/settings.php:1134 mod/settings.php:1138 mod/settings.php:1142
|
||||
#: mod/settings.php:1162 mod/settings.php:1163 mod/settings.php:1164
|
||||
#: mod/settings.php:1165 mod/settings.php:1166 mod/register.php:237
|
||||
#: mod/register.php:237 mod/message.php:138 mod/settings.php:1109
|
||||
#: mod/settings.php:1115 mod/settings.php:1122 mod/settings.php:1126
|
||||
#: mod/settings.php:1130 mod/settings.php:1134 mod/settings.php:1138
|
||||
#: mod/settings.php:1142 mod/settings.php:1162 mod/settings.php:1163
|
||||
#: mod/settings.php:1164 mod/settings.php:1165 mod/settings.php:1166
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: include/items.php:387 include/conversation.php:1373 mod/fbrowser.php:103
|
||||
#: mod/fbrowser.php:134 mod/suggest.php:41 mod/unfollow.php:117
|
||||
#: mod/contacts.php:467 mod/dfrn_request.php:663 mod/editpost.php:151
|
||||
#: mod/follow.php:159 mod/message.php:141 mod/photos.php:248 mod/photos.php:324
|
||||
#: mod/settings.php:680 mod/settings.php:706 mod/tagrm.php:19 mod/tagrm.php:99
|
||||
#: mod/videos.php:148
|
||||
#: mod/contacts.php:467 mod/dfrn_request.php:663 mod/follow.php:159
|
||||
#: mod/tagrm.php:19 mod/tagrm.php:99 mod/editpost.php:151 mod/message.php:141
|
||||
#: mod/photos.php:248 mod/photos.php:324 mod/settings.php:680
|
||||
#: mod/settings.php:706 mod/videos.php:148
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: include/items.php:401 mod/allfriends.php:21 mod/api.php:35 mod/api.php:40
|
||||
#: mod/attach.php:38 mod/common.php:26 mod/crepair.php:98 mod/group.php:26
|
||||
#: mod/nogroup.php:28 mod/repair_ostatus.php:13 mod/suggest.php:60
|
||||
#: mod/unfollow.php:15 mod/unfollow.php:57 mod/unfollow.php:90
|
||||
#: mod/uimport.php:28 mod/dirfind.php:24 mod/notifications.php:73
|
||||
#: mod/ostatus_subscribe.php:16 mod/cal.php:304 mod/dfrn_confirm.php:68
|
||||
#: mod/fsuggest.php:81 mod/invite.php:20 mod/invite.php:106 mod/manage.php:131
|
||||
#: mod/profiles.php:181 mod/profiles.php:619 mod/wall_attach.php:74
|
||||
#: mod/wall_attach.php:77 mod/contacts.php:378 mod/delegate.php:24
|
||||
#: mod/delegate.php:38 mod/editpost.php:20 mod/events.php:195 mod/follow.php:16
|
||||
#: mod/follow.php:53 mod/follow.php:116 mod/message.php:59 mod/message.php:104
|
||||
#: mod/notes.php:30 mod/photos.php:174 mod/photos.php:1051 mod/poke.php:150
|
||||
#: mod/profile_photo.php:29 mod/profile_photo.php:188 mod/profile_photo.php:199
|
||||
#: mod/profile_photo.php:212 mod/regmod.php:108 mod/settings.php:41
|
||||
#: mod/settings.php:140 mod/settings.php:669 mod/viewcontacts.php:57
|
||||
#: mod/attach.php:38 mod/common.php:26 mod/crepair.php:98 mod/nogroup.php:28
|
||||
#: mod/repair_ostatus.php:13 mod/suggest.php:60 mod/unfollow.php:15
|
||||
#: mod/unfollow.php:57 mod/unfollow.php:90 mod/uimport.php:28
|
||||
#: mod/dirfind.php:24 mod/notifications.php:73 mod/ostatus_subscribe.php:16
|
||||
#: mod/cal.php:304 mod/dfrn_confirm.php:68 mod/invite.php:20 mod/invite.php:106
|
||||
#: mod/manage.php:131 mod/profiles.php:181 mod/profiles.php:619
|
||||
#: mod/wall_attach.php:74 mod/wall_attach.php:77 mod/contacts.php:378
|
||||
#: mod/delegate.php:24 mod/delegate.php:38 mod/follow.php:16 mod/follow.php:53
|
||||
#: mod/follow.php:116 mod/poke.php:150 mod/profile_photo.php:29
|
||||
#: mod/profile_photo.php:188 mod/profile_photo.php:199
|
||||
#: mod/profile_photo.php:212 mod/regmod.php:108 mod/viewcontacts.php:57
|
||||
#: mod/wall_upload.php:103 mod/wall_upload.php:106 mod/wallmessage.php:16
|
||||
#: mod/wallmessage.php:40 mod/wallmessage.php:79 mod/wallmessage.php:103
|
||||
#: mod/item.php:160 mod/network.php:32 mod/register.php:53 index.php:413
|
||||
#: mod/item.php:160 mod/register.php:53 mod/editpost.php:20 mod/events.php:195
|
||||
#: mod/fsuggest.php:81 mod/group.php:26 mod/message.php:59 mod/message.php:104
|
||||
#: mod/network.php:32 mod/notes.php:30 mod/photos.php:174 mod/photos.php:1051
|
||||
#: mod/settings.php:41 mod/settings.php:140 mod/settings.php:669 index.php:413
|
||||
msgid "Permission denied."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -756,7 +681,7 @@ msgstr[1] ""
|
|||
msgid "View Contacts"
|
||||
msgstr ""
|
||||
|
||||
#: include/text.php:1010 mod/editpost.php:112 mod/filer.php:35 mod/notes.php:68
|
||||
#: include/text.php:1010 mod/filer.php:35 mod/editpost.php:112 mod/notes.php:68
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -894,6 +819,76 @@ msgstr ""
|
|||
msgid "Item filed"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:355
|
||||
msgid "Post to Email"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:360
|
||||
msgid "Hide your profile details from unknown viewers?"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:360
|
||||
#, php-format
|
||||
msgid "Connectors disabled, since \"%s\" is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:366
|
||||
msgid "Visible to everybody"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:367 view/theme/vier/config.php:115
|
||||
msgid "show"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:368 view/theme/vier/config.php:115
|
||||
msgid "don't show"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:374 mod/editpost.php:136
|
||||
msgid "CC: email addresses"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:375 mod/editpost.php:143
|
||||
msgid "Example: bob@example.com, mary@example.com"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:377 mod/events.php:536 mod/photos.php:1098
|
||||
#: mod/photos.php:1441
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: include/acl_selectors.php:378
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: include/api.php:1181
|
||||
#, php-format
|
||||
msgid "Daily posting limit of %d post reached. The post was rejected."
|
||||
msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: include/api.php:1205
|
||||
#, php-format
|
||||
msgid "Weekly posting limit of %d post reached. The post was rejected."
|
||||
msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: include/api.php:1229
|
||||
#, php-format
|
||||
msgid "Monthly posting limit of %d post reached. The post was rejected."
|
||||
msgstr ""
|
||||
|
||||
#: include/api.php:4382 mod/profile_photo.php:84 mod/profile_photo.php:92
|
||||
#: mod/profile_photo.php:100 mod/profile_photo.php:223
|
||||
#: mod/profile_photo.php:317 mod/profile_photo.php:327 mod/photos.php:88
|
||||
#: mod/photos.php:194 mod/photos.php:722 mod/photos.php:1149
|
||||
#: mod/photos.php:1166 mod/photos.php:1684 src/Model/User.php:526
|
||||
#: src/Model/User.php:534 src/Model/User.php:542
|
||||
msgid "Profile Photos"
|
||||
msgstr ""
|
||||
|
||||
#: include/conversation.php:149 include/conversation.php:159
|
||||
#: include/conversation.php:287 include/conversation.php:296
|
||||
#: mod/subthread.php:97 mod/tagger.php:72 src/Model/Item.php:1783
|
||||
|
|
@ -980,7 +975,7 @@ msgid "Select"
|
|||
msgstr ""
|
||||
|
||||
#: include/conversation.php:747 mod/contacts.php:821 mod/contacts.php:1019
|
||||
#: mod/photos.php:1570 mod/settings.php:742 mod/admin.php:1706
|
||||
#: mod/admin.php:1706 mod/photos.php:1570 mod/settings.php:742
|
||||
#: src/Object/Post.php:178
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
|
@ -1008,8 +1003,8 @@ msgid "View in context"
|
|||
msgstr ""
|
||||
|
||||
#: include/conversation.php:816 include/conversation.php:1355
|
||||
#: mod/editpost.php:127 mod/message.php:264 mod/message.php:433
|
||||
#: mod/photos.php:1473 mod/wallmessage.php:145 src/Object/Post.php:394
|
||||
#: mod/wallmessage.php:145 mod/editpost.php:127 mod/message.php:264
|
||||
#: mod/message.php:433 mod/photos.php:1473 src/Object/Post.php:394
|
||||
msgid "Please wait"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1030,8 +1025,8 @@ msgid "View Status"
|
|||
msgstr ""
|
||||
|
||||
#: include/conversation.php:1063 include/conversation.php:1079
|
||||
#: mod/allfriends.php:73 mod/directory.php:153 mod/suggest.php:82
|
||||
#: mod/dirfind.php:220 mod/match.php:89 src/Model/Contact.php:497
|
||||
#: mod/allfriends.php:73 mod/suggest.php:82 mod/dirfind.php:220
|
||||
#: mod/match.php:89 mod/directory.php:160 src/Model/Contact.php:497
|
||||
#: src/Model/Contact.php:510 src/Model/Contact.php:555
|
||||
msgid "View Profile"
|
||||
msgstr ""
|
||||
|
|
@ -1143,7 +1138,7 @@ msgstr ""
|
|||
|
||||
#: include/conversation.php:1250
|
||||
#, php-format
|
||||
msgid "%s anttend maybe."
|
||||
msgid "%s attend maybe."
|
||||
msgstr ""
|
||||
|
||||
#: include/conversation.php:1280 include/conversation.php:1296
|
||||
|
|
@ -1151,8 +1146,8 @@ msgid "Visible to <strong>everybody</strong>"
|
|||
msgstr ""
|
||||
|
||||
#: include/conversation.php:1281 include/conversation.php:1297
|
||||
#: mod/message.php:200 mod/message.php:207 mod/message.php:343
|
||||
#: mod/message.php:350 mod/wallmessage.php:120 mod/wallmessage.php:127
|
||||
#: mod/wallmessage.php:120 mod/wallmessage.php:127 mod/message.php:200
|
||||
#: mod/message.php:207 mod/message.php:343 mod/message.php:350
|
||||
msgid "Please enter a link URL:"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1184,8 +1179,8 @@ msgstr ""
|
|||
msgid "Share"
|
||||
msgstr ""
|
||||
|
||||
#: include/conversation.php:1337 mod/editpost.php:113 mod/message.php:262
|
||||
#: mod/message.php:430 mod/wallmessage.php:143
|
||||
#: include/conversation.php:1337 mod/wallmessage.php:143 mod/editpost.php:113
|
||||
#: mod/message.php:262 mod/message.php:430
|
||||
msgid "Upload photo"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1201,8 +1196,8 @@ msgstr ""
|
|||
msgid "attach file"
|
||||
msgstr ""
|
||||
|
||||
#: include/conversation.php:1341 mod/editpost.php:117 mod/message.php:263
|
||||
#: mod/message.php:431 mod/wallmessage.php:144
|
||||
#: include/conversation.php:1341 mod/wallmessage.php:144 mod/editpost.php:117
|
||||
#: mod/message.php:263 mod/message.php:431
|
||||
msgid "Insert web link"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1316,6 +1311,11 @@ msgid_plural "Undecided"
|
|||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: include/dba.php:59
|
||||
#, php-format
|
||||
msgid "Cannot locate DNS info for database server '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: mod/allfriends.php:51
|
||||
msgid "No friends to display."
|
||||
msgstr ""
|
||||
|
|
@ -1345,11 +1345,11 @@ msgstr ""
|
|||
|
||||
#: mod/api.php:111 mod/profiles.php:649 mod/profiles.php:653
|
||||
#: mod/profiles.php:674 mod/dfrn_request.php:653 mod/follow.php:148
|
||||
#: mod/settings.php:1109 mod/settings.php:1115 mod/settings.php:1122
|
||||
#: mod/settings.php:1126 mod/settings.php:1130 mod/settings.php:1134
|
||||
#: mod/settings.php:1138 mod/settings.php:1142 mod/settings.php:1162
|
||||
#: mod/settings.php:1163 mod/settings.php:1164 mod/settings.php:1165
|
||||
#: mod/settings.php:1166 mod/register.php:238
|
||||
#: mod/register.php:238 mod/settings.php:1109 mod/settings.php:1115
|
||||
#: mod/settings.php:1122 mod/settings.php:1126 mod/settings.php:1130
|
||||
#: mod/settings.php:1134 mod/settings.php:1138 mod/settings.php:1142
|
||||
#: mod/settings.php:1162 mod/settings.php:1163 mod/settings.php:1164
|
||||
#: mod/settings.php:1165 mod/settings.php:1166
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1373,14 +1373,6 @@ msgstr ""
|
|||
msgid "Item was not found."
|
||||
msgstr ""
|
||||
|
||||
#: mod/bookmarklet.php:21 src/Content/Nav.php:114 src/Module/Login.php:312
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: mod/bookmarklet.php:49
|
||||
msgid "The post was created"
|
||||
msgstr ""
|
||||
|
||||
#: mod/common.php:91
|
||||
msgid "No contacts in common."
|
||||
msgstr ""
|
||||
|
|
@ -1445,12 +1437,12 @@ msgstr ""
|
|||
msgid "Refetch contact data"
|
||||
msgstr ""
|
||||
|
||||
#: mod/crepair.php:148 mod/fsuggest.php:116 mod/invite.php:150
|
||||
#: mod/manage.php:184 mod/profiles.php:685 mod/contacts.php:601
|
||||
#: mod/events.php:533 mod/install.php:251 mod/install.php:290
|
||||
#: mod/localtime.php:56 mod/message.php:265 mod/message.php:432
|
||||
#: mod/crepair.php:148 mod/invite.php:150 mod/manage.php:184
|
||||
#: mod/profiles.php:685 mod/contacts.php:601 mod/install.php:251
|
||||
#: mod/install.php:290 mod/localtime.php:56 mod/poke.php:199 mod/events.php:533
|
||||
#: mod/fsuggest.php:116 mod/message.php:265 mod/message.php:432
|
||||
#: mod/photos.php:1080 mod/photos.php:1160 mod/photos.php:1445
|
||||
#: mod/photos.php:1491 mod/photos.php:1530 mod/photos.php:1603 mod/poke.php:199
|
||||
#: mod/photos.php:1491 mod/photos.php:1530 mod/photos.php:1603
|
||||
#: view/theme/duepuntozero/config.php:71 view/theme/frio/config.php:113
|
||||
#: view/theme/quattro/config.php:73 view/theme/vier/config.php:119
|
||||
#: src/Object/Post.php:788
|
||||
|
|
@ -1471,9 +1463,9 @@ msgid ""
|
|||
"entries from this contact."
|
||||
msgstr ""
|
||||
|
||||
#: mod/crepair.php:158 mod/settings.php:681 mod/settings.php:707
|
||||
#: mod/admin.php:439 mod/admin.php:1689 mod/admin.php:1701 mod/admin.php:1714
|
||||
#: mod/admin.php:1730
|
||||
#: mod/crepair.php:158 mod/admin.php:439 mod/admin.php:1689 mod/admin.php:1701
|
||||
#: mod/admin.php:1714 mod/admin.php:1730 mod/settings.php:681
|
||||
#: mod/settings.php:707
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -1509,55 +1501,6 @@ msgstr ""
|
|||
msgid "New photo from this URL"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:38 mod/community.php:25 mod/dfrn_request.php:607
|
||||
#: mod/display.php:201 mod/photos.php:932 mod/probe.php:13 mod/search.php:98
|
||||
#: mod/search.php:104 mod/videos.php:200 mod/viewcontacts.php:45
|
||||
#: mod/webfinger.php:16
|
||||
msgid "Public access denied."
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:142 mod/notifications.php:253 src/Model/Profile.php:420
|
||||
#: src/Model/Profile.php:745
|
||||
msgid "Gender:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:144 src/Model/Profile.php:421 src/Model/Profile.php:769
|
||||
msgid "Status:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:146 src/Model/Profile.php:422 src/Model/Profile.php:786
|
||||
msgid "Homepage:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:148 mod/notifications.php:249 mod/contacts.php:655
|
||||
#: src/Model/Profile.php:423 src/Model/Profile.php:806
|
||||
msgid "About:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:195 view/theme/vier/theme.php:201
|
||||
msgid "Global Directory"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:197
|
||||
msgid "Find on this site"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:199
|
||||
msgid "Results for:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:201
|
||||
msgid "Site Directory"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:202 mod/contacts.php:811 src/Content/Widget.php:63
|
||||
msgid "Find"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:206
|
||||
msgid "No entries (some entries may be hidden)."
|
||||
msgstr ""
|
||||
|
||||
#: mod/fbrowser.php:34 view/theme/frio/theme.php:261 src/Content/Nav.php:102
|
||||
#: src/Model/Profile.php:904
|
||||
msgid "Photos"
|
||||
|
|
@ -1583,82 +1526,6 @@ msgstr ""
|
|||
msgid "Not Found"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:36
|
||||
msgid "Group created."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:42
|
||||
msgid "Could not create group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:56 mod/group.php:158
|
||||
msgid "Group not found."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:70
|
||||
msgid "Group name changed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:83 mod/profperm.php:28 index.php:412
|
||||
msgid "Permission denied"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:97
|
||||
msgid "Save Group"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:102
|
||||
msgid "Create a group of contacts/friends."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:103 mod/group.php:200 src/Model/Group.php:409
|
||||
msgid "Group Name: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:127
|
||||
msgid "Group removed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:129
|
||||
msgid "Unable to remove group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:193
|
||||
msgid "Delete Group"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:199
|
||||
msgid "Group Editor"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:204
|
||||
msgid "Edit Group Name"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:214
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:216 mod/contacts.php:710
|
||||
msgid "All Contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:217 mod/network.php:639
|
||||
msgid "Group is empty"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:230
|
||||
msgid "Remove Contact"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:254
|
||||
msgid "Add Contact"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:266 mod/profperm.php:115
|
||||
msgid "Click on a contact to add or remove."
|
||||
msgstr ""
|
||||
|
||||
#: mod/hcard.php:18
|
||||
msgid "No profile"
|
||||
msgstr ""
|
||||
|
|
@ -1723,8 +1590,8 @@ msgid ""
|
|||
"join."
|
||||
msgstr ""
|
||||
|
||||
#: mod/newmember.php:19 mod/settings.php:122 mod/admin.php:1814
|
||||
#: mod/admin.php:2083 view/theme/frio/theme.php:269 src/Content/Nav.php:206
|
||||
#: mod/newmember.php:19 mod/admin.php:1814 mod/admin.php:2083
|
||||
#: mod/settings.php:122 view/theme/frio/theme.php:269 src/Content/Nav.php:206
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -2208,11 +2075,21 @@ msgstr ""
|
|||
msgid "Subscriber"
|
||||
msgstr ""
|
||||
|
||||
#: mod/notifications.php:249 mod/contacts.php:655 mod/directory.php:155
|
||||
#: src/Model/Profile.php:423 src/Model/Profile.php:806
|
||||
msgid "About:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/notifications.php:251 mod/contacts.php:657 mod/follow.php:172
|
||||
#: src/Model/Profile.php:794
|
||||
msgid "Tags:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/notifications.php:253 mod/directory.php:152 src/Model/Profile.php:420
|
||||
#: src/Model/Profile.php:745
|
||||
msgid "Gender:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/notifications.php:261 mod/contacts.php:63 src/Model/Profile.php:518
|
||||
msgid "Network:"
|
||||
msgstr ""
|
||||
|
|
@ -2297,7 +2174,7 @@ msgstr ""
|
|||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: mod/cal.php:277 mod/events.php:396 mod/install.php:209
|
||||
#: mod/cal.php:277 mod/install.php:209 mod/events.php:396
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -2405,19 +2282,6 @@ msgstr ""
|
|||
msgid "%1$s has joined %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/fsuggest.php:71
|
||||
msgid "Friend suggestion sent."
|
||||
msgstr ""
|
||||
|
||||
#: mod/fsuggest.php:102
|
||||
msgid "Suggest Friends"
|
||||
msgstr ""
|
||||
|
||||
#: mod/fsuggest.php:104
|
||||
#, php-format
|
||||
msgid "Suggest a friend for %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/invite.php:33
|
||||
msgid "Total invitation limit exceeded."
|
||||
msgstr ""
|
||||
|
|
@ -2501,8 +2365,8 @@ msgstr ""
|
|||
msgid "Enter email addresses, one per line:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/invite.php:144 mod/message.php:259 mod/message.php:426
|
||||
#: mod/wallmessage.php:141
|
||||
#: mod/invite.php:144 mod/wallmessage.php:141 mod/message.php:259
|
||||
#: mod/message.php:426
|
||||
msgid "Your message:"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -2920,84 +2784,6 @@ msgstr ""
|
|||
msgid "File upload failed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:23
|
||||
msgid "Source (bbcode) text:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:30
|
||||
msgid "Source (Diaspora) text to convert to BBcode:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:38
|
||||
msgid "Source input: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:42
|
||||
msgid "bbcode (raw HTML(: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:45
|
||||
msgid "bbcode: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:49 mod/babel.php:65
|
||||
msgid "bbcode => html2bbcode: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:53
|
||||
msgid "bb2diaspora: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:57
|
||||
msgid "bb2diaspora => Markdown: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:61
|
||||
msgid "bb2diaspora => diaspora2bb: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:71
|
||||
msgid "Source input (Diaspora format): "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:75
|
||||
msgid "diaspora2bb: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:44
|
||||
msgid "Community option not available."
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:61
|
||||
msgid "Not available."
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:74
|
||||
msgid "Local Community"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:77
|
||||
msgid "Posts from local users on this server"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:85
|
||||
msgid "Global Community"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:88
|
||||
msgid "Posts from users of the whole federated network"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:134 mod/search.php:228
|
||||
msgid "No results."
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:178
|
||||
msgid ""
|
||||
"This community stream shows all public posts received by this node. They may "
|
||||
"not reflect the opinions of this node’s users."
|
||||
msgstr ""
|
||||
|
||||
#: mod/contacts.php:149
|
||||
#, php-format
|
||||
msgid "%d contact edited."
|
||||
|
|
@ -3261,6 +3047,10 @@ msgstr ""
|
|||
msgid "Suggest potential friends"
|
||||
msgstr ""
|
||||
|
||||
#: mod/contacts.php:710 mod/group.php:216
|
||||
msgid "All Contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/contacts.php:713
|
||||
msgid "Show all contacts"
|
||||
msgstr ""
|
||||
|
|
@ -3314,6 +3104,10 @@ msgstr ""
|
|||
msgid "Results for: %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/contacts.php:811 mod/directory.php:210 src/Content/Widget.php:63
|
||||
msgid "Find"
|
||||
msgstr ""
|
||||
|
||||
#: mod/contacts.php:817 mod/settings.php:169 mod/settings.php:705
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
|
@ -3342,7 +3136,7 @@ msgstr ""
|
|||
msgid "View all common friends"
|
||||
msgstr ""
|
||||
|
||||
#: mod/contacts.php:886 mod/events.php:535 mod/admin.php:1269
|
||||
#: mod/contacts.php:886 mod/admin.php:1269 mod/events.php:535
|
||||
#: src/Model/Profile.php:865
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
|
@ -3393,10 +3187,10 @@ msgid ""
|
|||
"settings. Please double check whom you give this access."
|
||||
msgstr ""
|
||||
|
||||
#: mod/delegate.php:161 mod/settings.php:679 mod/settings.php:788
|
||||
#: mod/settings.php:874 mod/settings.php:963 mod/settings.php:1198
|
||||
#: mod/admin.php:1264 mod/admin.php:1873 mod/admin.php:2126 mod/admin.php:2200
|
||||
#: mod/admin.php:2347
|
||||
#: mod/delegate.php:161 mod/admin.php:1264 mod/admin.php:1873
|
||||
#: mod/admin.php:2126 mod/admin.php:2200 mod/admin.php:2347
|
||||
#: mod/settings.php:679 mod/settings.php:788 mod/settings.php:874
|
||||
#: mod/settings.php:963 mod/settings.php:1198
|
||||
msgid "Save Settings"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -3546,6 +3340,13 @@ msgstr ""
|
|||
msgid "Please confirm your introduction/connection request to %s."
|
||||
msgstr ""
|
||||
|
||||
#: mod/dfrn_request.php:607 mod/probe.php:13 mod/search.php:98
|
||||
#: mod/search.php:104 mod/viewcontacts.php:45 mod/webfinger.php:16
|
||||
#: mod/community.php:25 mod/directory.php:42 mod/display.php:201
|
||||
#: mod/photos.php:932 mod/videos.php:200
|
||||
msgid "Public access denied."
|
||||
msgstr ""
|
||||
|
||||
#: mod/dfrn_request.php:642
|
||||
msgid ""
|
||||
"Please enter your 'Identity Address' from one of the following supported "
|
||||
|
|
@ -3601,74 +3402,6 @@ msgid ""
|
|||
"bar."
|
||||
msgstr ""
|
||||
|
||||
#: mod/editpost.php:27 mod/editpost.php:37
|
||||
msgid "Item not found"
|
||||
msgstr ""
|
||||
|
||||
#: mod/editpost.php:44
|
||||
msgid "Edit post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:103 mod/events.php:105
|
||||
msgid "Event can not end before it has started."
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:112 mod/events.php:114
|
||||
msgid "Event title and start time are required."
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:394
|
||||
msgid "Create New Event"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:509
|
||||
msgid "Event details"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:510
|
||||
msgid "Starting date and Title are required."
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:511 mod/events.php:512
|
||||
msgid "Event Starts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:513 mod/events.php:529
|
||||
msgid "Finish date/time is not known or not relevant"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:515 mod/events.php:516
|
||||
msgid "Event Finishes:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:517 mod/events.php:530
|
||||
msgid "Adjust for viewer timezone"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:519
|
||||
msgid "Description:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:523 mod/events.php:525
|
||||
msgid "Title:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:526 mod/events.php:527
|
||||
msgid "Share this event"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:534 src/Model/Profile.php:864
|
||||
msgid "Basic"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:556
|
||||
msgid "Failed to remove event"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:558
|
||||
msgid "Event removed"
|
||||
msgstr ""
|
||||
|
||||
#: mod/filer.php:34
|
||||
msgid "- select -"
|
||||
msgstr ""
|
||||
|
|
@ -4204,337 +3937,10 @@ msgstr ""
|
|||
msgid "Your password has been changed at %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:30 src/Content/Nav.php:198
|
||||
msgid "New Message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:73 mod/wallmessage.php:57
|
||||
msgid "No recipient selected."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:77
|
||||
msgid "Unable to locate contact information."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:80 mod/wallmessage.php:63
|
||||
msgid "Message could not be sent."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:83 mod/wallmessage.php:66
|
||||
msgid "Message collection failure."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:86 mod/wallmessage.php:69
|
||||
msgid "Message sent."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:112 view/theme/frio/theme.php:268 src/Content/Nav.php:195
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:136
|
||||
msgid "Do you really want to delete this message?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:156
|
||||
msgid "Message deleted."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:185
|
||||
msgid "Conversation removed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:250 mod/wallmessage.php:132
|
||||
msgid "Send Private Message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:251 mod/message.php:421 mod/wallmessage.php:134
|
||||
msgid "To:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:255 mod/message.php:423 mod/wallmessage.php:135
|
||||
msgid "Subject:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:291
|
||||
msgid "No messages."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:330
|
||||
msgid "Message not available."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:397
|
||||
msgid "Delete message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:399 mod/message.php:500
|
||||
msgid "D, d M Y - g:i A"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:414 mod/message.php:497
|
||||
msgid "Delete conversation"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:416
|
||||
msgid ""
|
||||
"No secure communications available. You <strong>may</strong> be able to "
|
||||
"respond from the sender's profile page."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:420
|
||||
msgid "Send Reply"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:471
|
||||
#, php-format
|
||||
msgid "Unknown sender - %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:473
|
||||
#, php-format
|
||||
msgid "You and %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:475
|
||||
#, php-format
|
||||
msgid "%s and You"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:503
|
||||
#, php-format
|
||||
msgid "%d message"
|
||||
msgid_plural "%d messages"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: mod/notes.php:53 src/Model/Profile.php:946
|
||||
msgid "Personal Notes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/notify.php:77
|
||||
msgid "No more system notifications."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:108 src/Model/Profile.php:907
|
||||
msgid "Photo Albums"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:109 mod/photos.php:1713
|
||||
msgid "Recent Photos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:112 mod/photos.php:1210 mod/photos.php:1715
|
||||
msgid "Upload New Photos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:126 mod/settings.php:49
|
||||
msgid "everybody"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:184
|
||||
msgid "Contact information unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:204
|
||||
msgid "Album not found."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:234 mod/photos.php:245 mod/photos.php:1161
|
||||
msgid "Delete Album"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:243
|
||||
msgid "Do you really want to delete this photo album and all its photos?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:310 mod/photos.php:321 mod/photos.php:1446
|
||||
msgid "Delete Photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:319
|
||||
msgid "Do you really want to delete this photo?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:667
|
||||
msgid "a photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:667
|
||||
#, php-format
|
||||
msgid "%1$s was tagged in %2$s by %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:763 mod/photos.php:766 mod/photos.php:795
|
||||
#: mod/profile_photo.php:165 mod/wall_upload.php:186
|
||||
#, php-format
|
||||
msgid "Image exceeds size limit of %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:769
|
||||
msgid "Image upload didn't complete, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:772
|
||||
msgid "Image file is missing"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:777
|
||||
msgid ""
|
||||
"Server can't accept new file upload at this time, please contact your "
|
||||
"administrator"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:803
|
||||
msgid "Image file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:818 mod/profile_photo.php:174 mod/wall_upload.php:200
|
||||
msgid "Unable to process image."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:847 mod/profile_photo.php:322 mod/wall_upload.php:239
|
||||
msgid "Image upload failed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:940
|
||||
msgid "No photos selected"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1036 mod/videos.php:310
|
||||
msgid "Access to this item is restricted."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1090
|
||||
msgid "Upload Photos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1094 mod/photos.php:1156
|
||||
msgid "New album name: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1095
|
||||
msgid "or existing album name: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1096
|
||||
msgid "Do not show a status post for this upload"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1106 mod/photos.php:1449 mod/settings.php:1233
|
||||
msgid "Show to Groups"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1107 mod/photos.php:1450 mod/settings.php:1234
|
||||
msgid "Show to Contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1167
|
||||
msgid "Edit Album"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1172
|
||||
msgid "Show Newest First"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1174
|
||||
msgid "Show Oldest First"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1195 mod/photos.php:1698
|
||||
msgid "View Photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1236
|
||||
msgid "Permission denied. Access to this item may be restricted."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1238
|
||||
msgid "Photo not available"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1301
|
||||
msgid "View photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1301
|
||||
msgid "Edit photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1302
|
||||
msgid "Use as profile photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1308 src/Object/Post.php:148
|
||||
msgid "Private Message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1327
|
||||
msgid "View Full Size"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1414
|
||||
msgid "Tags: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1417
|
||||
msgid "[Remove any tag]"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1432
|
||||
msgid "New album name"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1433
|
||||
msgid "Caption"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1434
|
||||
msgid "Add a Tag"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1434
|
||||
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1435
|
||||
msgid "Do not rotate"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1436
|
||||
msgid "Rotate CW (right)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1437
|
||||
msgid "Rotate CCW (left)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1471 src/Object/Post.php:295
|
||||
msgid "I like this (toggle)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1472 src/Object/Post.php:296
|
||||
msgid "I don't like this (toggle)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1488 mod/photos.php:1527 mod/photos.php:1600
|
||||
#: src/Object/Post.php:785
|
||||
msgid "This is you"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1490 mod/photos.php:1529 mod/photos.php:1602
|
||||
#: src/Object/Post.php:391 src/Object/Post.php:787
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1634
|
||||
msgid "Map"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1704 mod/videos.php:388
|
||||
msgid "View Album"
|
||||
msgstr ""
|
||||
|
||||
#: mod/ping.php:292
|
||||
msgid "{0} wants to be your friend"
|
||||
msgstr ""
|
||||
|
|
@ -4591,6 +3997,16 @@ msgstr ""
|
|||
msgid "Unable to process image"
|
||||
msgstr ""
|
||||
|
||||
#: mod/profile_photo.php:165 mod/wall_upload.php:186 mod/photos.php:763
|
||||
#: mod/photos.php:766 mod/photos.php:795
|
||||
#, php-format
|
||||
msgid "Image exceeds size limit of %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/profile_photo.php:174 mod/wall_upload.php:200 mod/photos.php:818
|
||||
msgid "Unable to process image."
|
||||
msgstr ""
|
||||
|
||||
#: mod/profile_photo.php:262
|
||||
msgid "Upload File:"
|
||||
msgstr ""
|
||||
|
|
@ -4627,6 +4043,14 @@ msgstr ""
|
|||
msgid "Image uploaded successfully."
|
||||
msgstr ""
|
||||
|
||||
#: mod/profile_photo.php:322 mod/wall_upload.php:239 mod/photos.php:847
|
||||
msgid "Image upload failed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/profperm.php:28 mod/group.php:83 index.php:412
|
||||
msgid "Permission denied"
|
||||
msgstr ""
|
||||
|
||||
#: mod/profperm.php:34 mod/profperm.php:65
|
||||
msgid "Invalid profile identifier."
|
||||
msgstr ""
|
||||
|
|
@ -4635,6 +4059,10 @@ msgstr ""
|
|||
msgid "Profile Visibility Editor"
|
||||
msgstr ""
|
||||
|
||||
#: mod/profperm.php:115 mod/group.php:266
|
||||
msgid "Click on a contact to add or remove."
|
||||
msgstr ""
|
||||
|
||||
#: mod/profperm.php:124
|
||||
msgid "Visible To"
|
||||
msgstr ""
|
||||
|
|
@ -4690,877 +4118,15 @@ msgstr ""
|
|||
msgid "Only one search per minute is permitted for not logged in users."
|
||||
msgstr ""
|
||||
|
||||
#: mod/search.php:228 mod/community.php:134
|
||||
msgid "No results."
|
||||
msgstr ""
|
||||
|
||||
#: mod/search.php:234
|
||||
#, php-format
|
||||
msgid "Items tagged with: %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:54 mod/admin.php:1689
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:63 mod/admin.php:184
|
||||
msgid "Additional features"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:71
|
||||
msgid "Display"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:78 mod/settings.php:845
|
||||
msgid "Social Networks"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:85 mod/admin.php:182 mod/admin.php:1812 mod/admin.php:1872
|
||||
msgid "Addons"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:92 src/Content/Nav.php:204
|
||||
msgid "Delegations"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:99
|
||||
msgid "Connected apps"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:106 mod/uexport.php:52
|
||||
msgid "Export personal data"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:113
|
||||
msgid "Remove account"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:167
|
||||
msgid "Missing some important data!"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:278
|
||||
msgid "Failed to connect with email account using the settings provided."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:283
|
||||
msgid "Email settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:299
|
||||
msgid "Features updated"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:371
|
||||
msgid "Relocate message has been send to your contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:383 src/Model/User.php:312
|
||||
msgid "Passwords do not match. Password unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:388
|
||||
msgid "Empty passwords are not allowed. Password unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:394
|
||||
msgid "Wrong password."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:401
|
||||
msgid "Password changed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:403
|
||||
msgid "Password update failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:493
|
||||
msgid " Please use a shorter name."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:496
|
||||
msgid " Name too short."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:504
|
||||
msgid "Wrong Password"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:509
|
||||
msgid "Invalid email."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:516
|
||||
msgid "Cannot change to that email."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:569
|
||||
msgid "Private forum has no privacy permissions. Using default privacy group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:572
|
||||
msgid "Private forum has no privacy permissions and no default privacy group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:612
|
||||
msgid "Settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:678 mod/settings.php:704 mod/settings.php:740
|
||||
msgid "Add application"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:682 mod/settings.php:708
|
||||
msgid "Consumer Key"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:683 mod/settings.php:709
|
||||
msgid "Consumer Secret"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:684 mod/settings.php:710
|
||||
msgid "Redirect"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:685 mod/settings.php:711
|
||||
msgid "Icon url"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:696
|
||||
msgid "You can't edit this application."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:739
|
||||
msgid "Connected Apps"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:741 src/Object/Post.php:154 src/Object/Post.php:156
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:743
|
||||
msgid "Client key starts with"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:744
|
||||
msgid "No name"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:745
|
||||
msgid "Remove authorization"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:756
|
||||
msgid "No Addon settings configured"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:765
|
||||
msgid "Addon Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:779 mod/admin.php:2336 mod/admin.php:2337
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:779 mod/admin.php:2336 mod/admin.php:2337
|
||||
msgid "On"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:786
|
||||
msgid "Additional Features"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 src/Content/ContactSelector.php:83
|
||||
msgid "Diaspora"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 mod/settings.php:809
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 mod/settings.php:809
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 mod/settings.php:809
|
||||
#, php-format
|
||||
msgid "Built-in support for %s connectivity is %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:809
|
||||
msgid "GNU Social (OStatus)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:840
|
||||
msgid "Email access is disabled on this site."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:850
|
||||
msgid "General Social Media Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:851
|
||||
msgid "Disable intelligent shortening"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:851
|
||||
msgid ""
|
||||
"Normally the system tries to find the best link to add to shortened posts. "
|
||||
"If this option is enabled then every shortened post will always point to the "
|
||||
"original friendica post."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:852
|
||||
msgid "Automatically follow any GNU Social (OStatus) followers/mentioners"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:852
|
||||
msgid ""
|
||||
"If you receive a message from an unknown OStatus user, this option decides "
|
||||
"what to do. If it is checked, a new contact will be created for every "
|
||||
"unknown user."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:853
|
||||
msgid "Default group for OStatus contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:854
|
||||
msgid "Your legacy GNU Social account"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:854
|
||||
msgid ""
|
||||
"If you enter your old GNU Social/Statusnet account name here (in the format "
|
||||
"user@domain.tld), your contacts will be added automatically. The field will "
|
||||
"be emptied when done."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:857
|
||||
msgid "Repair OStatus subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:861
|
||||
msgid "Email/Mailbox Setup"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:862
|
||||
msgid ""
|
||||
"If you wish to communicate with email contacts using this service "
|
||||
"(optional), please specify how to connect to your mailbox."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:863
|
||||
msgid "Last successful email check:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:865
|
||||
msgid "IMAP server name:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:866
|
||||
msgid "IMAP port:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:867
|
||||
msgid "Security:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:867 mod/settings.php:872
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:868
|
||||
msgid "Email login name:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:869
|
||||
msgid "Email password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:870
|
||||
msgid "Reply-to address:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:871
|
||||
msgid "Send public posts to all email contacts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:872
|
||||
msgid "Action after import:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:872 src/Content/Nav.php:191
|
||||
msgid "Mark as seen"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:872
|
||||
msgid "Move to folder"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:873
|
||||
msgid "Move to folder:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:907 mod/admin.php:1154
|
||||
msgid "No special theme for mobile devices"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:916
|
||||
#, php-format
|
||||
msgid "%s - (Unsupported)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:918
|
||||
#, php-format
|
||||
msgid "%s - (Experimental)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:961
|
||||
msgid "Display Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:967 mod/settings.php:991
|
||||
msgid "Display Theme:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:968
|
||||
msgid "Mobile Theme:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:969
|
||||
msgid "Suppress warning of insecure networks"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:969
|
||||
msgid ""
|
||||
"Should the system suppress the warning that the current group contains "
|
||||
"members of networks that can't receive non public postings."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:970
|
||||
msgid "Update browser every xx seconds"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:970
|
||||
msgid "Minimum of 10 seconds. Enter -1 to disable it."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:971
|
||||
msgid "Number of items to display per page:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:971 mod/settings.php:972
|
||||
msgid "Maximum of 100 items"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:972
|
||||
msgid "Number of items to display per page when viewed from mobile device:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:973
|
||||
msgid "Don't show emoticons"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:974
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:975
|
||||
msgid "Beginning of week:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:976
|
||||
msgid "Don't show notices"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:977
|
||||
msgid "Infinite scroll"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:978
|
||||
msgid "Automatic updates only at the top of the network page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:978
|
||||
msgid ""
|
||||
"When disabled, the network page is updated all the time, which could be "
|
||||
"confusing while reading."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:979
|
||||
msgid "Bandwith Saver Mode"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:979
|
||||
msgid ""
|
||||
"When enabled, embedded content is not displayed on automatic updates, they "
|
||||
"only show on page reload."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:980
|
||||
msgid "Smart Threading"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:980
|
||||
msgid ""
|
||||
"When enabled, suppress extraneous thread indentation while keeping it where "
|
||||
"it matters. Only works if threading is available and enabled."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:982
|
||||
msgid "General Theme Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:983
|
||||
msgid "Custom Theme Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:984
|
||||
msgid "Content Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:985 view/theme/duepuntozero/config.php:73
|
||||
#: view/theme/frio/config.php:115 view/theme/quattro/config.php:75
|
||||
#: view/theme/vier/config.php:121
|
||||
msgid "Theme settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1006
|
||||
msgid "Unable to find your profile. Please contact your admin."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1048
|
||||
msgid "Account Types"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1049
|
||||
msgid "Personal Page Subtypes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1050
|
||||
msgid "Community Forum Subtypes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1057
|
||||
msgid "Personal Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1058
|
||||
msgid "Account for a personal profile."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1061
|
||||
msgid "Organisation Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1062
|
||||
msgid ""
|
||||
"Account for an organisation that automatically approves contact requests as "
|
||||
"\"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1065
|
||||
msgid "News Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1066
|
||||
msgid ""
|
||||
"Account for a news reflector that automatically approves contact requests as "
|
||||
"\"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1069
|
||||
msgid "Community Forum"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1070
|
||||
msgid "Account for community discussions."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1073
|
||||
msgid "Normal Account Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1074
|
||||
msgid ""
|
||||
"Account for a regular personal profile that requires manual approval of "
|
||||
"\"Friends\" and \"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1077
|
||||
msgid "Soapbox Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1078
|
||||
msgid ""
|
||||
"Account for a public profile that automatically approves contact requests as "
|
||||
"\"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1081
|
||||
msgid "Public Forum"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1082
|
||||
msgid "Automatically approves all contact requests."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1085
|
||||
msgid "Automatic Friend Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1086
|
||||
msgid ""
|
||||
"Account for a popular profile that automatically approves contact requests "
|
||||
"as \"Friends\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1089
|
||||
msgid "Private Forum [Experimental]"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1090
|
||||
msgid "Requires manual approval of contact requests."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1101
|
||||
msgid "OpenID:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1101
|
||||
msgid "(Optional) Allow this OpenID to login to this account."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1109
|
||||
msgid "Publish your default profile in your local site directory?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1109
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Your profile will be published in the global friendica directories (e.g. <a "
|
||||
"href=\"%s\">%s</a>). Your profile will be visible in public."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1115
|
||||
msgid "Publish your default profile in the global social directory?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1115
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Your profile will be publishedin this node's <a href=\"%s\">local directory</"
|
||||
"a>. Your profile details may be publicly visible depending on the system "
|
||||
"settings."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1122
|
||||
msgid "Hide your contact/friend list from viewers of your default profile?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1122
|
||||
msgid ""
|
||||
"Your contact list won't be shown in your default profile page. You can "
|
||||
"decide to show your contact list separately for each additional profile you "
|
||||
"create"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1126
|
||||
msgid "Hide your profile details from anonymous viewers?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1126
|
||||
msgid ""
|
||||
"Anonymous visitors will only see your profile picture, your display name and "
|
||||
"the nickname you are using on your profile page. Disables posting public "
|
||||
"messages to Diaspora and other networks."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1130
|
||||
msgid "Allow friends to post to your profile page?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1130
|
||||
msgid ""
|
||||
"Your contacts may write posts on your profile wall. These posts will be "
|
||||
"distributed to your contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1134
|
||||
msgid "Allow friends to tag your posts?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1134
|
||||
msgid "Your contacts can add additional tags to your posts."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1138
|
||||
msgid "Allow us to suggest you as a potential friend to new members?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1138
|
||||
msgid "If you like, Friendica may suggest new members to add you as a contact."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1142
|
||||
msgid "Permit unknown people to send you private mail?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1142
|
||||
msgid ""
|
||||
"Friendica network users may send you private messages even if they are not "
|
||||
"in your contact list."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1146
|
||||
msgid "Profile is <strong>not published</strong>."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1152
|
||||
#, php-format
|
||||
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1159
|
||||
msgid "Automatically expire posts after this many days:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1159
|
||||
msgid "If empty, posts will not expire. Expired posts will be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1160
|
||||
msgid "Advanced expiration settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1161
|
||||
msgid "Advanced Expiration"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1162
|
||||
msgid "Expire posts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1163
|
||||
msgid "Expire personal notes:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1164
|
||||
msgid "Expire starred posts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1165
|
||||
msgid "Expire photos:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1166
|
||||
msgid "Only expire posts by others:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1196
|
||||
msgid "Account Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1204
|
||||
msgid "Password Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1205 mod/register.php:273
|
||||
msgid "New Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1206 mod/register.php:274
|
||||
msgid "Confirm:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1206
|
||||
msgid "Leave password fields blank unless changing"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1207
|
||||
msgid "Current Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1207 mod/settings.php:1208
|
||||
msgid "Your current password to confirm the changes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1208
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1212
|
||||
msgid "Basic Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1213 src/Model/Profile.php:738
|
||||
msgid "Full Name:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1214
|
||||
msgid "Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1215
|
||||
msgid "Your Timezone:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1216
|
||||
msgid "Your Language:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1216
|
||||
msgid ""
|
||||
"Set the language we use to show you friendica interface and to send you "
|
||||
"emails"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1217
|
||||
msgid "Default Post Location:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1218
|
||||
msgid "Use Browser Location:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1221
|
||||
msgid "Security and Privacy Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1223
|
||||
msgid "Maximum Friend Requests/Day:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1223 mod/settings.php:1252
|
||||
msgid "(to prevent spam abuse)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1224
|
||||
msgid "Default Post Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1225
|
||||
msgid "(click to open/close)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1235
|
||||
msgid "Default Private Post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1236
|
||||
msgid "Default Public Post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1240
|
||||
msgid "Default Permissions for New Posts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1252
|
||||
msgid "Maximum private messages per day from unknown people:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1255
|
||||
msgid "Notification Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1256
|
||||
msgid "By default post a status message when:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1257
|
||||
msgid "accepting a friend request"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1258
|
||||
msgid "joining a forum/community"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1259
|
||||
msgid "making an <em>interesting</em> profile change"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1260
|
||||
msgid "Send a notification email when:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1261
|
||||
msgid "You receive an introduction"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1262
|
||||
msgid "Your introductions are confirmed"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1263
|
||||
msgid "Someone writes on your profile wall"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1264
|
||||
msgid "Someone writes a followup comment"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1265
|
||||
msgid "You receive a private message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1266
|
||||
msgid "You receive a friend suggestion"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1267
|
||||
msgid "You are tagged in a post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1268
|
||||
msgid "You are poked/prodded/etc. in a post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1270
|
||||
msgid "Activate desktop notifications"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1270
|
||||
msgid "Show desktop popup on new notifications"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1272
|
||||
msgid "Text-only notification emails"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1274
|
||||
msgid "Send text only notification emails, without the html part"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1276
|
||||
msgid "Show detailled notifications"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1278
|
||||
msgid ""
|
||||
"Per default the notificiation are condensed to a single notification per "
|
||||
"item. When enabled, every notification is displayed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1280
|
||||
msgid "Advanced Account/Page Type Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1281
|
||||
msgid "Change the behaviour of this account for special situations"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1284
|
||||
msgid "Relocate"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1285
|
||||
msgid ""
|
||||
"If you have moved this profile from another server, and some of your "
|
||||
"contacts don't receive your updates, try pushing this button."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1286
|
||||
msgid "Resend relocate message to contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/subthread.php:113
|
||||
#, php-format
|
||||
msgid "%1$s is following %2$s's %3$s"
|
||||
|
|
@ -5599,24 +4165,8 @@ msgid ""
|
|||
"of your account (photos are not exported)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:140
|
||||
msgid "Do you really want to delete this video?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:145
|
||||
msgid "Delete Video"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:208
|
||||
msgid "No videos selected"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:397
|
||||
msgid "Recent Videos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:399
|
||||
msgid "Upload New Videos"
|
||||
#: mod/uexport.php:52 mod/settings.php:106
|
||||
msgid "Export personal data"
|
||||
msgstr ""
|
||||
|
||||
#: mod/viewcontacts.php:87
|
||||
|
|
@ -5637,14 +4187,34 @@ msgstr ""
|
|||
msgid "Number of daily wall messages for %s exceeded. Message failed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:57 mod/message.php:73
|
||||
msgid "No recipient selected."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:60
|
||||
msgid "Unable to check your home location."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:63 mod/message.php:80
|
||||
msgid "Message could not be sent."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:66 mod/message.php:83
|
||||
msgid "Message collection failure."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:69 mod/message.php:86
|
||||
msgid "Message sent."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:86 mod/wallmessage.php:95
|
||||
msgid "No recipient."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:132 mod/message.php:250
|
||||
msgid "Send Private Message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:133
|
||||
#, php-format
|
||||
msgid ""
|
||||
|
|
@ -5652,6 +4222,149 @@ msgid ""
|
|||
"your site allow private mail from unknown senders."
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:134 mod/message.php:251 mod/message.php:421
|
||||
msgid "To:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/wallmessage.php:135 mod/message.php:255 mod/message.php:423
|
||||
msgid "Subject:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:114
|
||||
msgid "Unable to locate original post."
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:274
|
||||
msgid "Empty post discarded."
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:799
|
||||
#, php-format
|
||||
msgid ""
|
||||
"This message was sent to you by %s, a member of the Friendica social network."
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:801
|
||||
#, php-format
|
||||
msgid "You may visit them online at %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:802
|
||||
msgid ""
|
||||
"Please contact the sender by replying to this post if you do not wish to "
|
||||
"receive these messages."
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:806
|
||||
#, php-format
|
||||
msgid "%s posted an update."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:99
|
||||
msgid ""
|
||||
"Registration successful. Please check your email for further instructions."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:103
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Failed to send email message. Here your accout details:<br> login: %s<br> "
|
||||
"password: %s<br><br>You can change your password after login."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:110
|
||||
msgid "Registration successful."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:115
|
||||
msgid "Your registration can not be processed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:162
|
||||
msgid "Your registration is pending approval by the site owner."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:220
|
||||
msgid ""
|
||||
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
|
||||
"and clicking 'Register'."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:221
|
||||
msgid ""
|
||||
"If you are not familiar with OpenID, please leave that field blank and fill "
|
||||
"in the rest of the items."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:222
|
||||
msgid "Your OpenID (optional): "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:234
|
||||
msgid "Include your profile in member directory?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:259
|
||||
msgid "Note for the admin"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:259
|
||||
msgid "Leave a message for the admin, why you want to join this node"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:260
|
||||
msgid "Membership on this site is by invitation only."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:261
|
||||
msgid "Your invitation code: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:264 mod/admin.php:1266
|
||||
msgid "Registration"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:270
|
||||
msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:271
|
||||
msgid ""
|
||||
"Your Email Address: (Initial information will be send there, so this has to "
|
||||
"be an existing address.)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:273 mod/settings.php:1205
|
||||
msgid "New Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:273
|
||||
msgid "Leave empty for an auto generated password."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:274 mod/settings.php:1206
|
||||
msgid "Confirm:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:275
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Choose a profile nickname. This must begin with a text character. Your "
|
||||
"profile address on this site will then be '<strong>nickname@%s</strong>'."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:276
|
||||
msgid "Choose a nickname: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:279 src/Content/Nav.php:128 src/Module/Login.php:283
|
||||
msgid "Register"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:286
|
||||
msgid "Import your profile to this friendica instance"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:106
|
||||
msgid "Theme settings updated."
|
||||
msgstr ""
|
||||
|
|
@ -5680,10 +4393,18 @@ msgstr ""
|
|||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:182 mod/admin.php:1812 mod/admin.php:1872 mod/settings.php:85
|
||||
msgid "Addons"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:183 mod/admin.php:2081 mod/admin.php:2125
|
||||
msgid "Themes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:184 mod/settings.php:63
|
||||
msgid "Additional features"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:185
|
||||
msgid "Database"
|
||||
msgstr ""
|
||||
|
|
@ -6072,6 +4793,10 @@ msgstr ""
|
|||
msgid "Site settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:1154 mod/settings.php:907
|
||||
msgid "No special theme for mobile devices"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:1183
|
||||
msgid "No community page"
|
||||
msgstr ""
|
||||
|
|
@ -6156,10 +4881,6 @@ msgstr ""
|
|||
msgid "Republish users to directory"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:1266 mod/register.php:264
|
||||
msgid "Registration"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:1267
|
||||
msgid "File upload"
|
||||
msgstr ""
|
||||
|
|
@ -7011,6 +5732,10 @@ msgstr ""
|
|||
msgid "Last item"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:1689 mod/settings.php:54
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:1697
|
||||
msgid "Add User"
|
||||
msgstr ""
|
||||
|
|
@ -7211,6 +5936,14 @@ msgid ""
|
|||
"%1$s is readable."
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:2336 mod/admin.php:2337 mod/settings.php:779
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:2336 mod/admin.php:2337 mod/settings.php:779
|
||||
msgid "On"
|
||||
msgstr ""
|
||||
|
||||
#: mod/admin.php:2337
|
||||
#, php-format
|
||||
msgid "Lock feature %s"
|
||||
|
|
@ -7220,36 +5953,337 @@ msgstr ""
|
|||
msgid "Manage Additional Features"
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:114
|
||||
msgid "Unable to locate original post."
|
||||
#: mod/babel.php:23
|
||||
msgid "Source (bbcode) text:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:274
|
||||
msgid "Empty post discarded."
|
||||
#: mod/babel.php:30
|
||||
msgid "Source (Diaspora) text to convert to BBcode:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:799
|
||||
#, php-format
|
||||
#: mod/babel.php:38
|
||||
msgid "Source input: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:42
|
||||
msgid "bbcode (raw HTML(: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:45
|
||||
msgid "bbcode: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:49 mod/babel.php:65
|
||||
msgid "bbcode => html2bbcode: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:53
|
||||
msgid "bb2diaspora: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:57
|
||||
msgid "bb2diaspora => Markdown: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:61
|
||||
msgid "bb2diaspora => diaspora2bb: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:71
|
||||
msgid "Source input (Diaspora format): "
|
||||
msgstr ""
|
||||
|
||||
#: mod/babel.php:75
|
||||
msgid "diaspora2bb: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/bookmarklet.php:21 src/Content/Nav.php:114 src/Module/Login.php:312
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: mod/bookmarklet.php:49
|
||||
msgid "The post was created"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:44
|
||||
msgid "Community option not available."
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:61
|
||||
msgid "Not available."
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:74
|
||||
msgid "Local Community"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:77
|
||||
msgid "Posts from local users on this server"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:85
|
||||
msgid "Global Community"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:88
|
||||
msgid "Posts from users of the whole federated network"
|
||||
msgstr ""
|
||||
|
||||
#: mod/community.php:178
|
||||
msgid ""
|
||||
"This message was sent to you by %s, a member of the Friendica social network."
|
||||
"This community stream shows all public posts received by this node. They may "
|
||||
"not reflect the opinions of this node’s users."
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:801
|
||||
#: mod/directory.php:153 src/Model/Profile.php:421 src/Model/Profile.php:769
|
||||
msgid "Status:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:154 src/Model/Profile.php:422 src/Model/Profile.php:786
|
||||
msgid "Homepage:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:203 view/theme/vier/theme.php:201
|
||||
msgid "Global Directory"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:205
|
||||
msgid "Find on this site"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:207
|
||||
msgid "Results for:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:209
|
||||
msgid "Site Directory"
|
||||
msgstr ""
|
||||
|
||||
#: mod/directory.php:214
|
||||
msgid "No entries (some entries may be hidden)."
|
||||
msgstr ""
|
||||
|
||||
#: mod/editpost.php:27 mod/editpost.php:37
|
||||
msgid "Item not found"
|
||||
msgstr ""
|
||||
|
||||
#: mod/editpost.php:44
|
||||
msgid "Edit post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:103 mod/events.php:105
|
||||
msgid "Event can not end before it has started."
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:112 mod/events.php:114
|
||||
msgid "Event title and start time are required."
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:394
|
||||
msgid "Create New Event"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:509
|
||||
msgid "Event details"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:510
|
||||
msgid "Starting date and Title are required."
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:511 mod/events.php:512
|
||||
msgid "Event Starts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:513 mod/events.php:529
|
||||
msgid "Finish date/time is not known or not relevant"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:515 mod/events.php:516
|
||||
msgid "Event Finishes:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:517 mod/events.php:530
|
||||
msgid "Adjust for viewer timezone"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:519
|
||||
msgid "Description:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:523 mod/events.php:525
|
||||
msgid "Title:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:526 mod/events.php:527
|
||||
msgid "Share this event"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:534 src/Model/Profile.php:864
|
||||
msgid "Basic"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:556
|
||||
msgid "Failed to remove event"
|
||||
msgstr ""
|
||||
|
||||
#: mod/events.php:558
|
||||
msgid "Event removed"
|
||||
msgstr ""
|
||||
|
||||
#: mod/fsuggest.php:71
|
||||
msgid "Friend suggestion sent."
|
||||
msgstr ""
|
||||
|
||||
#: mod/fsuggest.php:102
|
||||
msgid "Suggest Friends"
|
||||
msgstr ""
|
||||
|
||||
#: mod/fsuggest.php:104
|
||||
#, php-format
|
||||
msgid "You may visit them online at %s"
|
||||
msgid "Suggest a friend for %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:802
|
||||
#: mod/group.php:36
|
||||
msgid "Group created."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:42
|
||||
msgid "Could not create group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:56 mod/group.php:158
|
||||
msgid "Group not found."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:70
|
||||
msgid "Group name changed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:97
|
||||
msgid "Save Group"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:102
|
||||
msgid "Create a group of contacts/friends."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:103 mod/group.php:200 src/Model/Group.php:409
|
||||
msgid "Group Name: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:127
|
||||
msgid "Group removed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:129
|
||||
msgid "Unable to remove group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:193
|
||||
msgid "Delete Group"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:199
|
||||
msgid "Group Editor"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:204
|
||||
msgid "Edit Group Name"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:214
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:217 mod/network.php:639
|
||||
msgid "Group is empty"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:230
|
||||
msgid "Remove Contact"
|
||||
msgstr ""
|
||||
|
||||
#: mod/group.php:254
|
||||
msgid "Add Contact"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:30 src/Content/Nav.php:198
|
||||
msgid "New Message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:77
|
||||
msgid "Unable to locate contact information."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:112 view/theme/frio/theme.php:268 src/Content/Nav.php:195
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:136
|
||||
msgid "Do you really want to delete this message?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:156
|
||||
msgid "Message deleted."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:185
|
||||
msgid "Conversation removed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:291
|
||||
msgid "No messages."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:330
|
||||
msgid "Message not available."
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:397
|
||||
msgid "Delete message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:399 mod/message.php:500
|
||||
msgid "D, d M Y - g:i A"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:414 mod/message.php:497
|
||||
msgid "Delete conversation"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:416
|
||||
msgid ""
|
||||
"Please contact the sender by replying to this post if you do not wish to "
|
||||
"receive these messages."
|
||||
"No secure communications available. You <strong>may</strong> be able to "
|
||||
"respond from the sender's profile page."
|
||||
msgstr ""
|
||||
|
||||
#: mod/item.php:806
|
||||
#, php-format
|
||||
msgid "%s posted an update."
|
||||
#: mod/message.php:420
|
||||
msgid "Send Reply"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:471
|
||||
#, php-format
|
||||
msgid "Unknown sender - %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:473
|
||||
#, php-format
|
||||
msgid "You and %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:475
|
||||
#, php-format
|
||||
msgid "%s and You"
|
||||
msgstr ""
|
||||
|
||||
#: mod/message.php:503
|
||||
#, php-format
|
||||
msgid "%d message"
|
||||
msgid_plural "%d messages"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: mod/network.php:202 src/Model/Group.php:401
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
|
@ -7330,6 +6364,215 @@ msgstr ""
|
|||
msgid "Favourite Posts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/notes.php:53 src/Model/Profile.php:946
|
||||
msgid "Personal Notes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:108 src/Model/Profile.php:907
|
||||
msgid "Photo Albums"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:109 mod/photos.php:1713
|
||||
msgid "Recent Photos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:112 mod/photos.php:1210 mod/photos.php:1715
|
||||
msgid "Upload New Photos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:126 mod/settings.php:49
|
||||
msgid "everybody"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:184
|
||||
msgid "Contact information unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:204
|
||||
msgid "Album not found."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:234 mod/photos.php:245 mod/photos.php:1161
|
||||
msgid "Delete Album"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:243
|
||||
msgid "Do you really want to delete this photo album and all its photos?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:310 mod/photos.php:321 mod/photos.php:1446
|
||||
msgid "Delete Photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:319
|
||||
msgid "Do you really want to delete this photo?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:667
|
||||
msgid "a photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:667
|
||||
#, php-format
|
||||
msgid "%1$s was tagged in %2$s by %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:769
|
||||
msgid "Image upload didn't complete, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:772
|
||||
msgid "Image file is missing"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:777
|
||||
msgid ""
|
||||
"Server can't accept new file upload at this time, please contact your "
|
||||
"administrator"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:803
|
||||
msgid "Image file is empty."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:940
|
||||
msgid "No photos selected"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1036 mod/videos.php:310
|
||||
msgid "Access to this item is restricted."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1090
|
||||
msgid "Upload Photos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1094 mod/photos.php:1156
|
||||
msgid "New album name: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1095
|
||||
msgid "or existing album name: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1096
|
||||
msgid "Do not show a status post for this upload"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1106 mod/photos.php:1449 mod/settings.php:1233
|
||||
msgid "Show to Groups"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1107 mod/photos.php:1450 mod/settings.php:1234
|
||||
msgid "Show to Contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1167
|
||||
msgid "Edit Album"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1172
|
||||
msgid "Show Newest First"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1174
|
||||
msgid "Show Oldest First"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1195 mod/photos.php:1698
|
||||
msgid "View Photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1236
|
||||
msgid "Permission denied. Access to this item may be restricted."
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1238
|
||||
msgid "Photo not available"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1301
|
||||
msgid "View photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1301
|
||||
msgid "Edit photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1302
|
||||
msgid "Use as profile photo"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1308 src/Object/Post.php:148
|
||||
msgid "Private Message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1327
|
||||
msgid "View Full Size"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1414
|
||||
msgid "Tags: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1417
|
||||
msgid "[Remove any tag]"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1432
|
||||
msgid "New album name"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1433
|
||||
msgid "Caption"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1434
|
||||
msgid "Add a Tag"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1434
|
||||
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1435
|
||||
msgid "Do not rotate"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1436
|
||||
msgid "Rotate CW (right)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1437
|
||||
msgid "Rotate CCW (left)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1471 src/Object/Post.php:295
|
||||
msgid "I like this (toggle)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1472 src/Object/Post.php:296
|
||||
msgid "I don't like this (toggle)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1488 mod/photos.php:1527 mod/photos.php:1600
|
||||
#: src/Object/Post.php:785
|
||||
msgid "This is you"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1490 mod/photos.php:1529 mod/photos.php:1602
|
||||
#: src/Object/Post.php:391 src/Object/Post.php:787
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1634
|
||||
msgid "Map"
|
||||
msgstr ""
|
||||
|
||||
#: mod/photos.php:1704 mod/videos.php:388
|
||||
msgid "View Album"
|
||||
msgstr ""
|
||||
|
||||
#: mod/profile.php:36 src/Model/Profile.php:118
|
||||
msgid "Requested profile is not available."
|
||||
msgstr ""
|
||||
|
|
@ -7353,97 +6596,854 @@ msgstr ""
|
|||
msgid "Tips for New Members"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:99
|
||||
msgid ""
|
||||
"Registration successful. Please check your email for further instructions."
|
||||
#: mod/settings.php:71
|
||||
msgid "Display"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:103
|
||||
#: mod/settings.php:78 mod/settings.php:845
|
||||
msgid "Social Networks"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:92 src/Content/Nav.php:204
|
||||
msgid "Delegations"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:99
|
||||
msgid "Connected apps"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:113
|
||||
msgid "Remove account"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:167
|
||||
msgid "Missing some important data!"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:278
|
||||
msgid "Failed to connect with email account using the settings provided."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:283
|
||||
msgid "Email settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:299
|
||||
msgid "Features updated"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:371
|
||||
msgid "Relocate message has been send to your contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:383 src/Model/User.php:312
|
||||
msgid "Passwords do not match. Password unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:388
|
||||
msgid "Empty passwords are not allowed. Password unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:394
|
||||
msgid "Wrong password."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:401
|
||||
msgid "Password changed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:403
|
||||
msgid "Password update failed. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:493
|
||||
msgid " Please use a shorter name."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:496
|
||||
msgid " Name too short."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:504
|
||||
msgid "Wrong Password"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:509
|
||||
msgid "Invalid email."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:516
|
||||
msgid "Cannot change to that email."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:569
|
||||
msgid "Private forum has no privacy permissions. Using default privacy group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:572
|
||||
msgid "Private forum has no privacy permissions and no default privacy group."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:612
|
||||
msgid "Settings updated."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:678 mod/settings.php:704 mod/settings.php:740
|
||||
msgid "Add application"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:682 mod/settings.php:708
|
||||
msgid "Consumer Key"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:683 mod/settings.php:709
|
||||
msgid "Consumer Secret"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:684 mod/settings.php:710
|
||||
msgid "Redirect"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:685 mod/settings.php:711
|
||||
msgid "Icon url"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:696
|
||||
msgid "You can't edit this application."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:739
|
||||
msgid "Connected Apps"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:741 src/Object/Post.php:154 src/Object/Post.php:156
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:743
|
||||
msgid "Client key starts with"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:744
|
||||
msgid "No name"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:745
|
||||
msgid "Remove authorization"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:756
|
||||
msgid "No Addon settings configured"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:765
|
||||
msgid "Addon Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:786
|
||||
msgid "Additional Features"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 src/Content/ContactSelector.php:83
|
||||
msgid "Diaspora"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 mod/settings.php:809
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 mod/settings.php:809
|
||||
msgid "disabled"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:808 mod/settings.php:809
|
||||
#, php-format
|
||||
msgid "Built-in support for %s connectivity is %s"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:809
|
||||
msgid "GNU Social (OStatus)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:840
|
||||
msgid "Email access is disabled on this site."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:850
|
||||
msgid "General Social Media Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:851
|
||||
msgid "Disable intelligent shortening"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:851
|
||||
msgid ""
|
||||
"Normally the system tries to find the best link to add to shortened posts. "
|
||||
"If this option is enabled then every shortened post will always point to the "
|
||||
"original friendica post."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:852
|
||||
msgid "Automatically follow any GNU Social (OStatus) followers/mentioners"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:852
|
||||
msgid ""
|
||||
"If you receive a message from an unknown OStatus user, this option decides "
|
||||
"what to do. If it is checked, a new contact will be created for every "
|
||||
"unknown user."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:853
|
||||
msgid "Default group for OStatus contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:854
|
||||
msgid "Your legacy GNU Social account"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:854
|
||||
msgid ""
|
||||
"If you enter your old GNU Social/Statusnet account name here (in the format "
|
||||
"user@domain.tld), your contacts will be added automatically. The field will "
|
||||
"be emptied when done."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:857
|
||||
msgid "Repair OStatus subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:861
|
||||
msgid "Email/Mailbox Setup"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:862
|
||||
msgid ""
|
||||
"If you wish to communicate with email contacts using this service "
|
||||
"(optional), please specify how to connect to your mailbox."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:863
|
||||
msgid "Last successful email check:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:865
|
||||
msgid "IMAP server name:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:866
|
||||
msgid "IMAP port:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:867
|
||||
msgid "Security:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:867 mod/settings.php:872
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:868
|
||||
msgid "Email login name:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:869
|
||||
msgid "Email password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:870
|
||||
msgid "Reply-to address:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:871
|
||||
msgid "Send public posts to all email contacts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:872
|
||||
msgid "Action after import:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:872 src/Content/Nav.php:191
|
||||
msgid "Mark as seen"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:872
|
||||
msgid "Move to folder"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:873
|
||||
msgid "Move to folder:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:916
|
||||
#, php-format
|
||||
msgid "%s - (Unsupported)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:918
|
||||
#, php-format
|
||||
msgid "%s - (Experimental)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:961
|
||||
msgid "Display Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:967 mod/settings.php:991
|
||||
msgid "Display Theme:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:968
|
||||
msgid "Mobile Theme:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:969
|
||||
msgid "Suppress warning of insecure networks"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:969
|
||||
msgid ""
|
||||
"Should the system suppress the warning that the current group contains "
|
||||
"members of networks that can't receive non public postings."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:970
|
||||
msgid "Update browser every xx seconds"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:970
|
||||
msgid "Minimum of 10 seconds. Enter -1 to disable it."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:971
|
||||
msgid "Number of items to display per page:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:971 mod/settings.php:972
|
||||
msgid "Maximum of 100 items"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:972
|
||||
msgid "Number of items to display per page when viewed from mobile device:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:973
|
||||
msgid "Don't show emoticons"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:974
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:975
|
||||
msgid "Beginning of week:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:976
|
||||
msgid "Don't show notices"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:977
|
||||
msgid "Infinite scroll"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:978
|
||||
msgid "Automatic updates only at the top of the network page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:978
|
||||
msgid ""
|
||||
"When disabled, the network page is updated all the time, which could be "
|
||||
"confusing while reading."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:979
|
||||
msgid "Bandwith Saver Mode"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:979
|
||||
msgid ""
|
||||
"When enabled, embedded content is not displayed on automatic updates, they "
|
||||
"only show on page reload."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:980
|
||||
msgid "Smart Threading"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:980
|
||||
msgid ""
|
||||
"When enabled, suppress extraneous thread indentation while keeping it where "
|
||||
"it matters. Only works if threading is available and enabled."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:982
|
||||
msgid "General Theme Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:983
|
||||
msgid "Custom Theme Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:984
|
||||
msgid "Content Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:985 view/theme/duepuntozero/config.php:73
|
||||
#: view/theme/frio/config.php:115 view/theme/quattro/config.php:75
|
||||
#: view/theme/vier/config.php:121
|
||||
msgid "Theme settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1006
|
||||
msgid "Unable to find your profile. Please contact your admin."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1048
|
||||
msgid "Account Types"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1049
|
||||
msgid "Personal Page Subtypes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1050
|
||||
msgid "Community Forum Subtypes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1057
|
||||
msgid "Personal Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1058
|
||||
msgid "Account for a personal profile."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1061
|
||||
msgid "Organisation Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1062
|
||||
msgid ""
|
||||
"Account for an organisation that automatically approves contact requests as "
|
||||
"\"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1065
|
||||
msgid "News Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1066
|
||||
msgid ""
|
||||
"Account for a news reflector that automatically approves contact requests as "
|
||||
"\"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1069
|
||||
msgid "Community Forum"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1070
|
||||
msgid "Account for community discussions."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1073
|
||||
msgid "Normal Account Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1074
|
||||
msgid ""
|
||||
"Account for a regular personal profile that requires manual approval of "
|
||||
"\"Friends\" and \"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1077
|
||||
msgid "Soapbox Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1078
|
||||
msgid ""
|
||||
"Account for a public profile that automatically approves contact requests as "
|
||||
"\"Followers\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1081
|
||||
msgid "Public Forum"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1082
|
||||
msgid "Automatically approves all contact requests."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1085
|
||||
msgid "Automatic Friend Page"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1086
|
||||
msgid ""
|
||||
"Account for a popular profile that automatically approves contact requests "
|
||||
"as \"Friends\"."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1089
|
||||
msgid "Private Forum [Experimental]"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1090
|
||||
msgid "Requires manual approval of contact requests."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1101
|
||||
msgid "OpenID:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1101
|
||||
msgid "(Optional) Allow this OpenID to login to this account."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1109
|
||||
msgid "Publish your default profile in your local site directory?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1109
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Failed to send email message. Here your accout details:<br> login: %s<br> "
|
||||
"password: %s<br><br>You can change your password after login."
|
||||
"Your profile will be published in the global friendica directories (e.g. <a "
|
||||
"href=\"%s\">%s</a>). Your profile will be visible in public."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:110
|
||||
msgid "Registration successful."
|
||||
#: mod/settings.php:1115
|
||||
msgid "Publish your default profile in the global social directory?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:115
|
||||
msgid "Your registration can not be processed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:162
|
||||
msgid "Your registration is pending approval by the site owner."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:220
|
||||
msgid ""
|
||||
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
|
||||
"and clicking 'Register'."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:221
|
||||
msgid ""
|
||||
"If you are not familiar with OpenID, please leave that field blank and fill "
|
||||
"in the rest of the items."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:222
|
||||
msgid "Your OpenID (optional): "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:234
|
||||
msgid "Include your profile in member directory?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:259
|
||||
msgid "Note for the admin"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:259
|
||||
msgid "Leave a message for the admin, why you want to join this node"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:260
|
||||
msgid "Membership on this site is by invitation only."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:261
|
||||
msgid "Your invitation code: "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:270
|
||||
msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:271
|
||||
msgid ""
|
||||
"Your Email Address: (Initial information will be send there, so this has to "
|
||||
"be an existing address.)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:273
|
||||
msgid "Leave empty for an auto generated password."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:275
|
||||
#: mod/settings.php:1115
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Choose a profile nickname. This must begin with a text character. Your "
|
||||
"profile address on this site will then be '<strong>nickname@%s</strong>'."
|
||||
"Your profile will be published in this node's <a href=\"%s\">local "
|
||||
"directory</a>. Your profile details may be publicly visible depending on the "
|
||||
"system settings."
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:276
|
||||
msgid "Choose a nickname: "
|
||||
#: mod/settings.php:1122
|
||||
msgid "Hide your contact/friend list from viewers of your default profile?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:279 src/Content/Nav.php:128 src/Module/Login.php:283
|
||||
msgid "Register"
|
||||
#: mod/settings.php:1122
|
||||
msgid ""
|
||||
"Your contact list won't be shown in your default profile page. You can "
|
||||
"decide to show your contact list separately for each additional profile you "
|
||||
"create"
|
||||
msgstr ""
|
||||
|
||||
#: mod/register.php:286
|
||||
msgid "Import your profile to this friendica instance"
|
||||
#: mod/settings.php:1126
|
||||
msgid "Hide your profile details from anonymous viewers?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1126
|
||||
msgid ""
|
||||
"Anonymous visitors will only see your profile picture, your display name and "
|
||||
"the nickname you are using on your profile page. Disables posting public "
|
||||
"messages to Diaspora and other networks."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1130
|
||||
msgid "Allow friends to post to your profile page?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1130
|
||||
msgid ""
|
||||
"Your contacts may write posts on your profile wall. These posts will be "
|
||||
"distributed to your contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1134
|
||||
msgid "Allow friends to tag your posts?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1134
|
||||
msgid "Your contacts can add additional tags to your posts."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1138
|
||||
msgid "Allow us to suggest you as a potential friend to new members?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1138
|
||||
msgid "If you like, Friendica may suggest new members to add you as a contact."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1142
|
||||
msgid "Permit unknown people to send you private mail?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1142
|
||||
msgid ""
|
||||
"Friendica network users may send you private messages even if they are not "
|
||||
"in your contact list."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1146
|
||||
msgid "Profile is <strong>not published</strong>."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1152
|
||||
#, php-format
|
||||
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1159
|
||||
msgid "Automatically expire posts after this many days:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1159
|
||||
msgid "If empty, posts will not expire. Expired posts will be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1160
|
||||
msgid "Advanced expiration settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1161
|
||||
msgid "Advanced Expiration"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1162
|
||||
msgid "Expire posts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1163
|
||||
msgid "Expire personal notes:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1164
|
||||
msgid "Expire starred posts:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1165
|
||||
msgid "Expire photos:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1166
|
||||
msgid "Only expire posts by others:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1196
|
||||
msgid "Account Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1204
|
||||
msgid "Password Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1206
|
||||
msgid "Leave password fields blank unless changing"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1207
|
||||
msgid "Current Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1207 mod/settings.php:1208
|
||||
msgid "Your current password to confirm the changes"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1208
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1212
|
||||
msgid "Basic Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1213 src/Model/Profile.php:738
|
||||
msgid "Full Name:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1214
|
||||
msgid "Email Address:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1215
|
||||
msgid "Your Timezone:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1216
|
||||
msgid "Your Language:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1216
|
||||
msgid ""
|
||||
"Set the language we use to show you friendica interface and to send you "
|
||||
"emails"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1217
|
||||
msgid "Default Post Location:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1218
|
||||
msgid "Use Browser Location:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1221
|
||||
msgid "Security and Privacy Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1223
|
||||
msgid "Maximum Friend Requests/Day:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1223 mod/settings.php:1252
|
||||
msgid "(to prevent spam abuse)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1224
|
||||
msgid "Default Post Permissions"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1225
|
||||
msgid "(click to open/close)"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1235
|
||||
msgid "Default Private Post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1236
|
||||
msgid "Default Public Post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1240
|
||||
msgid "Default Permissions for New Posts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1252
|
||||
msgid "Maximum private messages per day from unknown people:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1255
|
||||
msgid "Notification Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1256
|
||||
msgid "By default post a status message when:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1257
|
||||
msgid "accepting a friend request"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1258
|
||||
msgid "joining a forum/community"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1259
|
||||
msgid "making an <em>interesting</em> profile change"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1260
|
||||
msgid "Send a notification email when:"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1261
|
||||
msgid "You receive an introduction"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1262
|
||||
msgid "Your introductions are confirmed"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1263
|
||||
msgid "Someone writes on your profile wall"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1264
|
||||
msgid "Someone writes a followup comment"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1265
|
||||
msgid "You receive a private message"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1266
|
||||
msgid "You receive a friend suggestion"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1267
|
||||
msgid "You are tagged in a post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1268
|
||||
msgid "You are poked/prodded/etc. in a post"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1270
|
||||
msgid "Activate desktop notifications"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1270
|
||||
msgid "Show desktop popup on new notifications"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1272
|
||||
msgid "Text-only notification emails"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1274
|
||||
msgid "Send text only notification emails, without the html part"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1276
|
||||
msgid "Show detailled notifications"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1278
|
||||
msgid ""
|
||||
"Per default the notificiation are condensed to a single notification per "
|
||||
"item. When enabled, every notification is displayed."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1280
|
||||
msgid "Advanced Account/Page Type Settings"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1281
|
||||
msgid "Change the behaviour of this account for special situations"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1284
|
||||
msgid "Relocate"
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1285
|
||||
msgid ""
|
||||
"If you have moved this profile from another server, and some of your "
|
||||
"contacts don't receive your updates, try pushing this button."
|
||||
msgstr ""
|
||||
|
||||
#: mod/settings.php:1286
|
||||
msgid "Resend relocate message to contacts"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:140
|
||||
msgid "Do you really want to delete this video?"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:145
|
||||
msgid "Delete Video"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:208
|
||||
msgid "No videos selected"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:397
|
||||
msgid "Recent Videos"
|
||||
msgstr ""
|
||||
|
||||
#: mod/videos.php:399
|
||||
msgid "Upload New Videos"
|
||||
msgstr ""
|
||||
|
||||
#: view/theme/duepuntozero/config.php:54 src/Model/User.php:475
|
||||
|
|
@ -8647,6 +8647,226 @@ msgstr ""
|
|||
msgid "%s: updating %s table."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Mail.php:40 src/Model/Mail.php:174
|
||||
msgid "[no subject]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:1666
|
||||
#, php-format
|
||||
msgid "%1$s is attending %2$s's %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:1671
|
||||
#, php-format
|
||||
msgid "%1$s is not attending %2$s's %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:1676
|
||||
#, php-format
|
||||
msgid "%1$s may attend %2$s's %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:97
|
||||
msgid "Requested account is not available."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:168 src/Model/Profile.php:399
|
||||
#: src/Model/Profile.php:859
|
||||
msgid "Edit profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:336
|
||||
msgid "Atom feed"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:372
|
||||
msgid "Manage/edit profiles"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:548 src/Model/Profile.php:641
|
||||
msgid "g A l F d"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:549
|
||||
msgid "F d"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:606 src/Model/Profile.php:703
|
||||
msgid "[today]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:617
|
||||
msgid "Birthday Reminders"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:618
|
||||
msgid "Birthdays this week:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:690
|
||||
msgid "[No description]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:717
|
||||
msgid "Event Reminders"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:718
|
||||
msgid "Events this week:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:741
|
||||
msgid "Member since:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:749
|
||||
msgid "j F, Y"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:750
|
||||
msgid "j F"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:765
|
||||
msgid "Age:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:778
|
||||
#, php-format
|
||||
msgid "for %1$d %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:802
|
||||
msgid "Religion:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:810
|
||||
msgid "Hobbies/Interests:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:822
|
||||
msgid "Contact information and Social Networks:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:826
|
||||
msgid "Musical interests:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:830
|
||||
msgid "Books, literature:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:834
|
||||
msgid "Television:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:838
|
||||
msgid "Film/dance/culture/entertainment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:842
|
||||
msgid "Love/Romance:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:846
|
||||
msgid "Work/employment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:850
|
||||
msgid "School/education:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:855
|
||||
msgid "Forums:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:949
|
||||
msgid "Only You Can See This"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:559
|
||||
msgid "Drop Contact"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:962
|
||||
msgid "Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:965
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:968
|
||||
msgid "Forum"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1147
|
||||
msgid "Connect URL missing."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1156
|
||||
msgid ""
|
||||
"The contact could not be added. Please check the relevant network "
|
||||
"credentials in your Settings -> Social Networks page."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1184
|
||||
msgid ""
|
||||
"This site is not configured to allow communications with other networks."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1185 src/Model/Contact.php:1199
|
||||
msgid "No compatible communication protocols or feeds were discovered."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1197
|
||||
msgid "The profile address specified does not provide adequate information."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1202
|
||||
msgid "An author or name was not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1205
|
||||
msgid "No browser URL could be matched to this address."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1208
|
||||
msgid ""
|
||||
"Unable to match @-style Identity Address with a known protocol or email "
|
||||
"contact."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1209
|
||||
msgid "Use mailto: in front of address to force email check."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1215
|
||||
msgid ""
|
||||
"The profile address specified belongs to a network which has been disabled "
|
||||
"on this site."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1220
|
||||
msgid ""
|
||||
"Limited profile. This person will be unable to receive direct/personal "
|
||||
"notifications from you."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1290
|
||||
msgid "Unable to retrieve contact information."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1502
|
||||
#, php-format
|
||||
msgid "%s's birthday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1503 src/Protocol/DFRN.php:1398
|
||||
#, php-format
|
||||
msgid "Happy Birthday %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Group.php:44
|
||||
msgid ""
|
||||
"A deleted group with this name was revived. Existing item permissions "
|
||||
|
|
@ -8682,10 +8902,6 @@ msgstr ""
|
|||
msgid "Edit groups"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Mail.php:40 src/Model/Mail.php:174
|
||||
msgid "[no subject]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/User.php:142
|
||||
msgid "Login failed"
|
||||
msgstr ""
|
||||
|
|
@ -8833,230 +9049,6 @@ msgid ""
|
|||
"\t\t\tThank you and welcome to %2$s."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:559
|
||||
msgid "Drop Contact"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:962
|
||||
msgid "Organisation"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:965
|
||||
msgid "News"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:968
|
||||
msgid "Forum"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1147
|
||||
msgid "Connect URL missing."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1156
|
||||
msgid ""
|
||||
"The contact could not be added. Please check the relevant network "
|
||||
"credentials in your Settings -> Social Networks page."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1184
|
||||
msgid ""
|
||||
"This site is not configured to allow communications with other networks."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1185 src/Model/Contact.php:1199
|
||||
msgid "No compatible communication protocols or feeds were discovered."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1197
|
||||
msgid "The profile address specified does not provide adequate information."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1202
|
||||
msgid "An author or name was not found."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1205
|
||||
msgid "No browser URL could be matched to this address."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1208
|
||||
msgid ""
|
||||
"Unable to match @-style Identity Address with a known protocol or email "
|
||||
"contact."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1209
|
||||
msgid "Use mailto: in front of address to force email check."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1215
|
||||
msgid ""
|
||||
"The profile address specified belongs to a network which has been disabled "
|
||||
"on this site."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1220
|
||||
msgid ""
|
||||
"Limited profile. This person will be unable to receive direct/personal "
|
||||
"notifications from you."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1290
|
||||
msgid "Unable to retrieve contact information."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1502
|
||||
#, php-format
|
||||
msgid "%s's birthday"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Contact.php:1503 src/Protocol/DFRN.php:1398
|
||||
#, php-format
|
||||
msgid "Happy Birthday %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:1666
|
||||
#, php-format
|
||||
msgid "%1$s is attending %2$s's %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:1671
|
||||
#, php-format
|
||||
msgid "%1$s is not attending %2$s's %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Item.php:1676
|
||||
#, php-format
|
||||
msgid "%1$s may attend %2$s's %3$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:97
|
||||
msgid "Requested account is not available."
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:168 src/Model/Profile.php:399
|
||||
#: src/Model/Profile.php:859
|
||||
msgid "Edit profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:336
|
||||
msgid "Atom feed"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:372
|
||||
msgid "Manage/edit profiles"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:548 src/Model/Profile.php:641
|
||||
msgid "g A l F d"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:549
|
||||
msgid "F d"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:606 src/Model/Profile.php:703
|
||||
msgid "[today]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:617
|
||||
msgid "Birthday Reminders"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:618
|
||||
msgid "Birthdays this week:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:690
|
||||
msgid "[No description]"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:717
|
||||
msgid "Event Reminders"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:718
|
||||
msgid "Events this week:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:741
|
||||
msgid "Member since:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:749
|
||||
msgid "j F, Y"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:750
|
||||
msgid "j F"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:765
|
||||
msgid "Age:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:778
|
||||
#, php-format
|
||||
msgid "for %1$d %2$s"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:802
|
||||
msgid "Religion:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:810
|
||||
msgid "Hobbies/Interests:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:822
|
||||
msgid "Contact information and Social Networks:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:826
|
||||
msgid "Musical interests:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:830
|
||||
msgid "Books, literature:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:834
|
||||
msgid "Television:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:838
|
||||
msgid "Film/dance/culture/entertainment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:842
|
||||
msgid "Love/Romance:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:846
|
||||
msgid "Work/employment:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:850
|
||||
msgid "School/education:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:855
|
||||
msgid "Forums:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Model/Profile.php:949
|
||||
msgid "Only You Can See This"
|
||||
msgstr ""
|
||||
|
||||
#: src/Protocol/Diaspora.php:2584
|
||||
msgid "Sharing notification from Diaspora network"
|
||||
msgstr ""
|
||||
|
||||
#: src/Protocol/Diaspora.php:3660
|
||||
msgid "Attachments:"
|
||||
msgstr ""
|
||||
|
||||
#: src/Protocol/DFRN.php:1397
|
||||
#, php-format
|
||||
msgid "%s\\'s birthday"
|
||||
|
|
@ -9080,6 +9072,14 @@ msgstr ""
|
|||
msgid "stopped following"
|
||||
msgstr ""
|
||||
|
||||