mirror of
https://github.com/friendica/friendica
synced 2024-12-23 16:40:17 +00:00
Merge git://github.com/friendica/friendica
This commit is contained in:
commit
d20cdf09ea
13 changed files with 1257 additions and 664 deletions
2
boot.php
2
boot.php
|
@ -10,7 +10,7 @@ require_once('include/nav.php');
|
|||
require_once('include/cache.php');
|
||||
|
||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||
define ( 'FRIENDICA_VERSION', '3.0.1377' );
|
||||
define ( 'FRIENDICA_VERSION', '3.0.1378' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||
define ( 'DB_UPDATE_VERSION', 1149 );
|
||||
|
||||
|
|
|
@ -121,7 +121,70 @@ class Photo {
|
|||
$this->image = imagerotate($this->image,$degrees,0);
|
||||
$this->width = imagesx($this->image);
|
||||
$this->height = imagesy($this->image);
|
||||
}
|
||||
}
|
||||
|
||||
public function flip($horiz = true, $vert = false) {
|
||||
$w = imagesx($this->image);
|
||||
$h = imagesy($this->image);
|
||||
$flipped = imagecreate($w, $h);
|
||||
if($horiz) {
|
||||
for ($x = 0; $x < $w; $x++) {
|
||||
imagecopy($flipped, $this->image, $x, 0, $w - $x - 1, 0, 1, $h);
|
||||
}
|
||||
}
|
||||
if($vert) {
|
||||
for ($y = 0; $y < $h; $y++) {
|
||||
imagecopy($flipped, $this->image, 0, $y, 0, $h - $y - 1, $w, 1);
|
||||
}
|
||||
}
|
||||
$this->image = $flipped;
|
||||
}
|
||||
|
||||
public function orient($filename) {
|
||||
// based off comment on http://php.net/manual/en/function.imagerotate.php
|
||||
|
||||
if(! function_exists('exif_read_data'))
|
||||
return;
|
||||
|
||||
$exif = exif_read_data($filename);
|
||||
$ort = $exif['Orientation'];
|
||||
|
||||
switch($ort)
|
||||
{
|
||||
case 1: // nothing
|
||||
break;
|
||||
|
||||
case 2: // horizontal flip
|
||||
$this->flip();
|
||||
break;
|
||||
|
||||
case 3: // 180 rotate left
|
||||
$this->rotate(180);
|
||||
break;
|
||||
|
||||
case 4: // vertical flip
|
||||
$this->flip(false, true);
|
||||
break;
|
||||
|
||||
case 5: // vertical flip + 90 rotate right
|
||||
$this->flip(false, true);
|
||||
$this->rotate(-90);
|
||||
break;
|
||||
|
||||
case 6: // 90 rotate right
|
||||
$this->rotate(-90);
|
||||
break;
|
||||
|
||||
case 7: // horizontal flip + 90 rotate right
|
||||
$this->flip();
|
||||
$this->rotate(-90);
|
||||
break;
|
||||
|
||||
case 8: // 90 rotate left
|
||||
$this->rotate(90);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ function notification($params) {
|
|||
if($params['type'] == NOTIFY_TAGSELF) {
|
||||
$subject = sprintf( t('[Friendica:Notify] %s tagged you') , $params['source_name']);
|
||||
$preamble = sprintf( t('%1$s tagged you at %2$s') , $params['source_name'], $sitename);
|
||||
$epreamble = sprintf( t('%1$s [url=%2s]tagged you[/url].') ,
|
||||
$epreamble = sprintf( t('%1$s [url=%2$s]tagged you[/url].') ,
|
||||
'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
|
||||
$params['link']);
|
||||
|
||||
|
|
|
@ -814,6 +814,12 @@ function item_store($arr,$force_parent = false) {
|
|||
if($r[0]['private'])
|
||||
$arr['private'] = 1;
|
||||
|
||||
// Edge case. We host a public forum that was originally posted to privately.
|
||||
// The original author commented, but as this is a comment, the permissions
|
||||
// weren't fixed up so it will still show the comment as private unless we fix it here.
|
||||
|
||||
if((intval($r[0]['forum_mode']) == 1) && (! $r[0]['private']))
|
||||
$arr['private'] = 0;
|
||||
}
|
||||
else {
|
||||
|
||||
|
|
12
index.php
12
index.php
|
@ -246,7 +246,10 @@ if(! $install)
|
|||
|
||||
if($a->module_loaded) {
|
||||
$a->page['page_title'] = $a->module;
|
||||
$placeholder = '';
|
||||
|
||||
if(function_exists($a->module . '_init')) {
|
||||
call_hooks($a->module . '_mod_init', $placeholder);
|
||||
$func = $a->module . '_init';
|
||||
$func($a);
|
||||
}
|
||||
|
@ -266,18 +269,25 @@ if($a->module_loaded) {
|
|||
if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error)
|
||||
&& (function_exists($a->module . '_post'))
|
||||
&& (! x($_POST,'auth-params'))) {
|
||||
call_hooks($a->module . '_mod_post', $_POST);
|
||||
$func = $a->module . '_post';
|
||||
$func($a);
|
||||
}
|
||||
|
||||
if((! $a->error) && (function_exists($a->module . '_afterpost'))) {
|
||||
call_hooks($a->module . '_mod_afterpost',$placeholder);
|
||||
$func = $a->module . '_afterpost';
|
||||
$func($a);
|
||||
}
|
||||
|
||||
if((! $a->error) && (function_exists($a->module . '_content'))) {
|
||||
$arr = array('content' => $a->page['content']);
|
||||
call_hooks($a->module . '_mod_content', $arr);
|
||||
$a->page['content'] = $arr['content'];
|
||||
$func = $a->module . '_content';
|
||||
$a->page['content'] .= $func($a);
|
||||
$arr = array('content' => $func($a));
|
||||
call_hooks($a->module . '_mod_aftercontent', $arr);
|
||||
$a->page['content'] .= $arr['content'];
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -407,6 +407,7 @@ function message_content(&$a) {
|
|||
'$parent' => $parent,
|
||||
'$upload' => t('Upload photo'),
|
||||
'$insert' => t('Insert web link'),
|
||||
'$submit' => t('Submit'),
|
||||
'$wait' => t('Please wait')
|
||||
|
||||
));
|
||||
|
|
|
@ -718,6 +718,7 @@ function photos_post(&$a) {
|
|||
killme();
|
||||
}
|
||||
|
||||
$ph->orient($src);
|
||||
@unlink($src);
|
||||
|
||||
$width = $ph->getWidth();
|
||||
|
|
182
spec/zot-2012.txt
Normal file
182
spec/zot-2012.txt
Normal file
|
@ -0,0 +1,182 @@
|
|||
|
||||
Initial cut at Zot-2012 protocol. This is a very rough draft of some very rough ideas and concepts.
|
||||
It is not yet intended to be a definitive specification and many things like the security handshakes are yet to be specified precisely.
|
||||
|
||||
All communications are https
|
||||
|
||||
|
||||
First create a global unique userid
|
||||
|
||||
|
||||
Site userid:
|
||||
https://macgirvin.com/1
|
||||
|
||||
$guuid = base64url_encode(hash('whirlpool','https://macgirvin.com/1.' . mt_rand(1000000,9999999),1);
|
||||
|
||||
|
||||
Then create a hashed site destination.
|
||||
|
||||
$gduid = base64url_encode(hash('whirlpool', $guuid . 'https://macgirvin.com',1);
|
||||
|
||||
These two keys will identify you as a person+site pair in the future.
|
||||
You will also obtain a password upon introducing yourself to a site.
|
||||
This can be used to edit locations in the future. You will always keep your global unique userid
|
||||
|
||||
|
||||
The steps to connect with somebody are to first register your location with their site.
|
||||
Then introduce yourself to the person. This contains flags for the desired relationship.
|
||||
At some future time, they may confirm and adjust the relationship based on their comfort level.
|
||||
Lack of confirmation is tantamount to denial.
|
||||
|
||||
You can set either or both of FOLLOW and SHARE which indicates the relationship from your viewpoint.
|
||||
They may do likewise.
|
||||
|
||||
A relationship is based on you as a person and provided you register new locations with the site you can post from anywhere.
|
||||
You do not need to register locations with each person, only with the site.
|
||||
|
||||
|
||||
Introduce yourself to a site:
|
||||
|
||||
|
||||
POST https://example.com/post
|
||||
|
||||
{
|
||||
'type' => 'register'
|
||||
'person' => $guuid
|
||||
'address' => $gduid
|
||||
'site' => 'https://macgirvin.com'
|
||||
'info' => 'mike@macgirvin.com'
|
||||
}
|
||||
|
||||
Returns:
|
||||
|
||||
{
|
||||
'success' => 'true'
|
||||
'pass' => me_encrypt($random_string)
|
||||
}
|
||||
|
||||
---
|
||||
Add location
|
||||
---
|
||||
|
||||
POST https://example.com/post
|
||||
|
||||
{
|
||||
'type' => 'location'
|
||||
'person' => $guuid
|
||||
'address' => $new_gduid
|
||||
'site' => 'https://newsite.com'
|
||||
'info' => 'mike@newsite.com'
|
||||
'pass' => me_encrypt($gduid . '.' . $pass)
|
||||
}
|
||||
|
||||
Returns:
|
||||
|
||||
{
|
||||
'success' => 'true'
|
||||
'pass' => me_encrypt($random_string)
|
||||
}
|
||||
|
||||
---
|
||||
Remove location
|
||||
---
|
||||
|
||||
POST https://example.com/post
|
||||
|
||||
{
|
||||
'type' => 'remove_location'
|
||||
'person' => $guuid
|
||||
'address' => $gduid
|
||||
'pass' => me_encrypt($pass)
|
||||
}
|
||||
|
||||
Returns:
|
||||
|
||||
{
|
||||
'success' => 'true'
|
||||
'message' => 'OK'
|
||||
}
|
||||
|
||||
|
||||
------------
|
||||
Make friends
|
||||
------------
|
||||
This message may be reversed/repeated by the destination site to confirm.
|
||||
flags is the desired friendship bits. The same message may be used with different flags
|
||||
to edit or remove a relationship.
|
||||
|
||||
|
||||
POST https://example.com/post
|
||||
|
||||
{
|
||||
'type' => 'contact'
|
||||
'person' => $gduid
|
||||
'address' => $guuid
|
||||
'target' => 'bobjones@example.com'
|
||||
'flags' => HIDDEN=0,FOLLOW=1,SHARE=1,NOHIDDEN=1,NOFOLLOW=0,NOSHARE=0
|
||||
'confirm' => me_encrypt($guuid . '.' . $pass)
|
||||
}
|
||||
|
||||
Returns:
|
||||
|
||||
{
|
||||
'success' => 'true'
|
||||
'message' => 'OK'
|
||||
'flags' => PENDING=1
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-------
|
||||
Message
|
||||
-------
|
||||
|
||||
Passing messages is done asynchronously. This may (potentially) relieve a lot of the burden of distribution from the posting site. If you're on site 'A' and make a post, site 'A' just contacts any downstream sites and informs them that there is new content (via a $post_id). The downstream site initiates the actual data transfer.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
POST https://example.com/post
|
||||
|
||||
{
|
||||
'type' => 'post'
|
||||
'person' => $guuid
|
||||
'address' => $gduid
|
||||
'post' => $post_id
|
||||
}
|
||||
|
||||
Returns:
|
||||
{
|
||||
'success' => 'true'
|
||||
'message' => 'OK'
|
||||
}
|
||||
|
||||
|
||||
--------
|
||||
Callback
|
||||
--------
|
||||
|
||||
POST https://macgirvin.com/post
|
||||
|
||||
{
|
||||
'type' => 'retrieve'
|
||||
'retrieve' => $post_id
|
||||
'challenge' => you_encrypt('abc123')
|
||||
'verify' => me_encrypt('xyz456' . '.' . $gduid)
|
||||
}
|
||||
|
||||
Returns:
|
||||
|
||||
{
|
||||
'success' => 'true'
|
||||
'message' => 'OK'
|
||||
'response' => 'abc123'
|
||||
'data' => encrypted or raw structured post
|
||||
}
|
||||
|
||||
|
|
@ -6,9 +6,9 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 3.0.1377\n"
|
||||
"Project-Id-Version: 3.0.1378\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-06-17 10:00-0700\n"
|
||||
"POT-Creation-Date: 2012-06-18 10:00-0700\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"
|
||||
|
|
1522
view/de/messages.po
1522
view/de/messages.po
File diff suppressed because it is too large
Load diff
|
@ -331,6 +331,7 @@ $a->strings["Archive"] = "Archivieren";
|
|||
$a->strings["Toggle Archive status"] = "Archiviert-Status ein-/ausschalten";
|
||||
$a->strings["Repair"] = "Reparieren";
|
||||
$a->strings["Advanced Contact Settings"] = "Fortgeschrittene Kontakteinstellungen";
|
||||
$a->strings["Communications lost with this contact!"] = "Verbindungen mit diesem Kontakt verloren!";
|
||||
$a->strings["Contact Editor"] = "Kontakt Editor";
|
||||
$a->strings["Profile Visibility"] = "Profil-Sichtbarkeit";
|
||||
$a->strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle eines deiner Profile das angezeigt werden soll, wenn %s dein Profil aufruft.";
|
||||
|
@ -678,6 +679,8 @@ $a->strings["Plugins"] = "Plugins";
|
|||
$a->strings["Themes"] = "Themen";
|
||||
$a->strings["DB updates"] = "DB Updates";
|
||||
$a->strings["Logs"] = "Protokolle";
|
||||
$a->strings["Admin"] = "Administration";
|
||||
$a->strings["Plugin Features"] = "Plugin Features";
|
||||
$a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen die auf Bestätigung warten";
|
||||
$a->strings["Normal Account"] = "Normales Konto";
|
||||
$a->strings["Soapbox Account"] = "Marktschreier-Konto";
|
||||
|
@ -1001,6 +1004,9 @@ $a->strings["Facebook post failed. Queued for retry."] = "Veröffentlichung bei
|
|||
$a->strings["Your Facebook connection became invalid. Please Re-authenticate."] = "Deine Facebook Anmeldedaten sind ungültig geworden. Bitte re-authentifiziere dich.";
|
||||
$a->strings["Facebook connection became invalid"] = "Facebook Anmeldedaten sind ungültig geworden";
|
||||
$a->strings["Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."] = "Hallo %1\$s,\n\ndie Verbindung zwischen deinem Account auf %2\$s und Facebook funktioniert derzeit nicht. Dies ist normalerweise das Ergebnis einer Passwortänderung bei Facebook. Um die Verbindung wieder zu aktivieren musst du %3\$sden Facebook-Connector neu authentifizieren%4\$s.";
|
||||
$a->strings["StatusNet AutoFollow settings updated."] = "StatusNet AutoFollow Einstellungen aktualisiert.";
|
||||
$a->strings["StatusNet AutoFollow Settings"] = "StatusNet AutoFollow Einstellungen";
|
||||
$a->strings["Automatically follow any StatusNet followers/mentioners"] = "Automatisch allen StatusNet Followern/Erwähnungen folgen";
|
||||
$a->strings["Lifetime of the cache (in hours)"] = "Lebenszeit des Caches (in Stunden)";
|
||||
$a->strings["Cache Statistics"] = "Cache Statistik";
|
||||
$a->strings["Number of items"] = "Anzahl der Einträge";
|
||||
|
@ -1049,6 +1055,54 @@ $a->strings["Most active users"] = "Aktivste Nutzer";
|
|||
$a->strings["Latest photos"] = "Neueste Fotos";
|
||||
$a->strings["Latest likes"] = "Neueste Favoriten";
|
||||
$a->strings["event"] = "Veranstaltung";
|
||||
$a->strings["U.S. Time Format (mm/dd/YYYY)"] = "U.S. Datumsformat (mm/dd/YYYY)";
|
||||
$a->strings["German Time Format (dd.mm.YYYY)"] = "Deutsches Datumsformat (dd.mm.YYYY)";
|
||||
$a->strings["Error"] = "Fehler";
|
||||
$a->strings["No access"] = "Kein Zugriff";
|
||||
$a->strings["New event"] = "Neue Veranstaltung";
|
||||
$a->strings["Today"] = "Heute";
|
||||
$a->strings["Day"] = "Tag";
|
||||
$a->strings["Week"] = "Woche";
|
||||
$a->strings["Month"] = "Monat";
|
||||
$a->strings["Reload"] = "Neu Laden";
|
||||
$a->strings["Date"] = "Datum";
|
||||
$a->strings["Not found"] = "Nicht gefunden";
|
||||
$a->strings["Go back to the calendar"] = "Zurück zum Kalender";
|
||||
$a->strings["Starts"] = "Beginnt";
|
||||
$a->strings["Ends"] = "Endet";
|
||||
$a->strings["Description"] = "Beschreibung";
|
||||
$a->strings["Notification"] = "Benachrichtigung";
|
||||
$a->strings["Minutes"] = "Minuten";
|
||||
$a->strings["Hours"] = "Stunden";
|
||||
$a->strings["Days"] = "Tage";
|
||||
$a->strings["before"] = "vorher";
|
||||
$a->strings["Calendar Settings"] = "Kalender Einstellungen";
|
||||
$a->strings["Date format"] = "Datumsformat";
|
||||
$a->strings["Time zone"] = "Zeitzone";
|
||||
$a->strings["Limitations"] = "Einschränkungen";
|
||||
$a->strings["Warning"] = "Warnung";
|
||||
$a->strings["Synchronization (iPhone, Thunderbird Lightning, Android, ...)"] = "Synchronisation (iPhone, Thunderbird Lightning, Android, ...)";
|
||||
$a->strings["Synchronizing this calendar with the iPhone"] = "Diesen Kalender mit dem iPhone synchronisieren";
|
||||
$a->strings["Synchronizing your Friendica-Contacts with the iPhone"] = "Friendica-Kontakte mit dem iPhone synchronisieren";
|
||||
$a->strings["Friendica-Contacts"] = "Friendica-Kontakte";
|
||||
$a->strings["Your Friendica-Contacts"] = "Deine Friendica-Kontakte";
|
||||
$a->strings["Calendar"] = "Kalender";
|
||||
$a->strings["Extended calendar with CalDAV-support"] = "Erweiterter Kalender mit CalDAV Unterstützung.";
|
||||
$a->strings["The database tables have been installed."] = "Die Datenbank-Tabellen wurden installiert.";
|
||||
$a->strings["An error occurred during the installation."] = "Während der Installation trat ein Fehler auf.";
|
||||
$a->strings["No system-wide settings yet."] = "Momentan keine systemweiten Einstellungen.";
|
||||
$a->strings["Database status"] = "Datenbank Status";
|
||||
$a->strings["Installed"] = "Installiert";
|
||||
$a->strings["Upgrade needed"] = "Upgrade erforderlich";
|
||||
$a->strings["Upgrade"] = "Upgrade";
|
||||
$a->strings["Not installed"] = "Nicht installiert";
|
||||
$a->strings["Install"] = "Installieren";
|
||||
$a->strings["Troubleshooting"] = "Problembehebung";
|
||||
$a->strings["Manual creation of the database tables:"] = "Manuelles anlegen der Datenbank Tabellen:";
|
||||
$a->strings["Show SQL-statements"] = "SQL-Anweisungen anzeigen";
|
||||
$a->strings["Private Calendar"] = "Privater Kalender";
|
||||
$a->strings["Friendica Events: Mine"] = "Meine Friendica-Veranstaltungen";
|
||||
$a->strings["Friendica Events: Contacts"] = "Friendica Veranstaltungen meiner Kontakte";
|
||||
$a->strings["Allow to use your friendica id (%s) to connecto to external unhosted-enabled storage (like ownCloud). See <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"] = "Ermöglicht dir, deine friendica id (%s) mit externen unhosted-fähigen Speichern (z.B. ownCloud) zu verbinden. Siehe <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>";
|
||||
$a->strings["Template URL (with {category})"] = "Vorlagen URL (mit {Kategorie})";
|
||||
$a->strings["OAuth end-point"] = "OAuth end-point";
|
||||
|
@ -1118,6 +1172,9 @@ $a->strings["How to contact the operator via email. (will be displayed obfuscate
|
|||
$a->strings["Footer note"] = "Fußnote";
|
||||
$a->strings["Text for the footer. You can use BBCode here."] = "Text für die Fußzeile. Du kannst BBCode verwenden.";
|
||||
$a->strings["Report Bug"] = "Fehlerreport erstellen";
|
||||
$a->strings["No Timeline settings updated."] = "Keine Timeline-Einstellungen aktualisiert.";
|
||||
$a->strings["No Timeline Settings"] = "Keine Timeline-Einstellungen";
|
||||
$a->strings["Disable Archive selector on profile wall"] = "Deaktiviere Archiv-Auswahl auf Deiner Pinnwand";
|
||||
$a->strings["\"Blockem\" Settings"] = "\"Blockem\"-Einstellungen";
|
||||
$a->strings["Comma separated profile URLS to block"] = "Profil-URLs, die blockiert werden sollen (durch Kommas getrennt)";
|
||||
$a->strings["BLOCKEM Settings saved."] = "BLOCKEM-Einstellungen gesichert.";
|
||||
|
@ -1136,6 +1193,12 @@ $a->strings["Tile Server URL"] = "Tile Server URL";
|
|||
$a->strings["A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">public tile servers</a>"] = "Eine Liste <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">öffentlicher Tile Server</a>";
|
||||
$a->strings["Default zoom"] = "Standard Zoom";
|
||||
$a->strings["The default zoom level. (1:world, 18:highest)"] = "Standard Zoomlevel (1: Welt; 18: höchstes)";
|
||||
$a->strings["Post to libertree"] = "bei libertree veröffentlichen";
|
||||
$a->strings["libertree Post Settings"] = "libertree Post Einstellungen";
|
||||
$a->strings["Enable Libertree Post Plugin"] = "Libertree Post Plugin aktivieren";
|
||||
$a->strings["Libertree API token"] = "Libertree API Token";
|
||||
$a->strings["Libertree site URL"] = "Libertree URL";
|
||||
$a->strings["Post to Libertree by default"] = "Standardmäßig bei libertree veröffentlichen";
|
||||
$a->strings["The MathJax addon renders mathematical formulae written using the LaTeX syntax surrounded by the usual $$ or an eqnarray block in the postings of your wall,network tab and private mail."] = "Mit dem MathJax Addon können mathematische Formeln, die mit LaTeX geschrieben wurden, dargestellt werden. Die Formel wird mit den üblichen $$ oder einem eqnarray Block gekennzeichnet. Formeln werden in allen Beiträgen auf deiner Pinnwand, dem Netzwerkstream sowie privaten Nachrichten gerendert.";
|
||||
$a->strings["Use the MathJax renderer"] = "MathJax verwenden";
|
||||
$a->strings["MathJax Base URL"] = "MathJax Basis-URL";
|
||||
|
@ -1190,6 +1253,7 @@ $a->strings["Send public postings to StatusNet by default"] = "Veröffentliche
|
|||
$a->strings["Send linked #-tags and @-names to StatusNet"] = "Sende verlinkte #-Tags und @-Namen nach StatusNet";
|
||||
$a->strings["Clear OAuth configuration"] = "OAuth-Konfiguration löschen";
|
||||
$a->strings["API URL"] = "API-URL";
|
||||
$a->strings["Infinite Improbability Drive"] = "Infinite Improbability Drive";
|
||||
$a->strings["Post to Tumblr"] = "Bei Tumblr veröffentlichen";
|
||||
$a->strings["Tumblr Post Settings"] = "Tumblr-Beitragseinstellungen";
|
||||
$a->strings["Enable Tumblr Post Plugin"] = "Tumblr-Plugin aktivieren";
|
||||
|
@ -1478,7 +1542,6 @@ $a->strings["Manage other pages"] = "Andere Seiten verwalten";
|
|||
$a->strings["Profiles"] = "Profile";
|
||||
$a->strings["Manage/edit profiles"] = "Profile verwalten/editieren";
|
||||
$a->strings["Manage/edit friends and contacts"] = "Freunde und Kontakte verwalten/editieren";
|
||||
$a->strings["Admin"] = "Administration";
|
||||
$a->strings["Site setup and configuration"] = "Einstellungen der Seite und Konfiguration";
|
||||
$a->strings["Nothing new here"] = "Keine Neuigkeiten.";
|
||||
$a->strings["Add New Contact"] = "Neuen Kontakt hinzufügen";
|
||||
|
@ -1530,38 +1593,33 @@ $a->strings["Thank You,"] = "Danke,";
|
|||
$a->strings["%s Administrator"] = "der Administrator von %s";
|
||||
$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
|
||||
$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s";
|
||||
$a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben.";
|
||||
$a->strings["%s sent you %s."] = "%s hat Dir %s geschickt";
|
||||
$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s hat Dir eine neues private Nachricht geschickt auf %2\$s.";
|
||||
$a->strings["%1\$s sent you %2\$s."] = "%1\$s schickte Dir %2\$s.";
|
||||
$a->strings["a private message"] = "eine private Nachricht";
|
||||
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten.";
|
||||
$a->strings["%s's"] = "%s's";
|
||||
$a->strings["your"] = "Dein";
|
||||
$a->strings["[Friendica:Notify] Comment to conversation #%d by %s"] = "[Friendica Meldung] Kommentar zum Beitrag #%d von %s";
|
||||
$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s kommentierte [url=%2\$s]a %3\$s[/url]";
|
||||
$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s kommentierte [url=%2\$s]%3\$s's %4\$s[/url]";
|
||||
$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s kommentierte [url=%2\$s]Deinen Beitrag %3\$s[/url]";
|
||||
$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica Meldung] Kommentar zum Beitrag #%1\$d von %2\$s";
|
||||
$a->strings["%s commented on an item/conversation you have been following."] = "%s hat einen Beitrag kommentiert, dem du folgst.";
|
||||
$a->strings["%s commented on %s."] = "%s kommentierte %s.";
|
||||
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren.";
|
||||
$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica Meldung] %s hat auf Deine Pinnwand geschrieben";
|
||||
$a->strings["%s posted to your profile wall at %s"] = "%s hat auf deine Pinnwand bei %s gepostet";
|
||||
$a->strings["%s posted to %s"] = "%s schrieb an %s";
|
||||
$a->strings["your profile wall."] = "Deine Pinnwand";
|
||||
$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s schrieb auf Deine Pinnwand auf %2\$s";
|
||||
$a->strings["%1\$s posted to [url=%2s]your wall[/url]"] = "%1\$s schrieb auf [url=%2s]Deine Pinnwand[/url]";
|
||||
$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica Meldung] %s hat Dich erwähnt";
|
||||
$a->strings["%s tagged you at %s"] = "%s hat dich auf %s erwähnt";
|
||||
$a->strings["%s %s."] = "%s %s.";
|
||||
$a->strings["tagged you"] = "erwähnte Dich";
|
||||
$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s erwähnte Dich auf %2\$s";
|
||||
$a->strings["%1\$s [url=%2s]tagged you[/url]."] = "%1\$s [url=%2s]erwähnte Dich[/url].";
|
||||
$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag";
|
||||
$a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt";
|
||||
$a->strings["%s tagged %s"] = "%s markierte %s";
|
||||
$a->strings["your post"] = "deinen Beitrag";
|
||||
$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s erwähnte Deinen Beitrag auf %2\$s";
|
||||
$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s erwähnte [url=%2\$s]Deinen Beitrag[/url]";
|
||||
$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten";
|
||||
$a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten";
|
||||
$a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten.";
|
||||
$a->strings["an introduction"] = "eine Kontaktanfrage";
|
||||
$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Du hast eine Kontaktanfrage erhalten von '%1\$s' auf %2\$s";
|
||||
$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Du hast eine [url=%1\$s]Kontaktanfrage[/url] erhalten von %2\$s.";
|
||||
$a->strings["You may visit their profile at %s"] = "Hier kannst du das Profil betrachten: %s";
|
||||
$a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen.";
|
||||
$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica Meldung] Kontaktvorschlag erhalten";
|
||||
$a->strings["You've received a friend suggestion from '%s' at %s"] = "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s";
|
||||
$a->strings["You've received %s for %s from %s."] = "Du hast %s für %s von %s erhalten.";
|
||||
$a->strings["a friend suggestion"] = "ein Freunde Vorschlag";
|
||||
$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Du hast einen Freunde-Vorschlag erhalten von '%1\$s' auf %2\$s";
|
||||
$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Du hast einen [url=%1\$s]Freunde-Vorschlag[/url] erhalten %2\$s von %3\$s.";
|
||||
$a->strings["Name:"] = "Name:";
|
||||
$a->strings["Photo:"] = "Foto:";
|
||||
$a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen.";
|
||||
|
@ -1579,6 +1637,7 @@ $a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinfo
|
|||
$a->strings["following"] = "folgen";
|
||||
$a->strings["A new person is sharing with you at "] = "Eine neue Person teilt mit dir auf ";
|
||||
$a->strings["You have a new follower at "] = "Du hast einen neuen Kontakt auf ";
|
||||
$a->strings["Archives"] = "Archiv";
|
||||
$a->strings["image/photo"] = "Bild/Foto";
|
||||
$a->strings["link"] = "Verweis";
|
||||
$a->strings["An invitation is required."] = "Du benötigst eine Einladung.";
|
||||
|
|
|
@ -29,3 +29,19 @@
|
|||
<span class="icon s22 delete text">$dropping</span>
|
||||
</a>
|
||||
{{ endif }}
|
||||
|
||||
<script>
|
||||
// jquery color plugin from https://raw.github.com/gist/1891361/17747b50ad87f7a59a14b4e0f38d8f3fb6a18b27/gistfile1.js
|
||||
(function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(!g.colorInit){g.start=c(g.elem,e);g.end=b(g.end);g.colorInit=true}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.curCSS(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={transparent:[255,255,255]}})(jQuery);
|
||||
var colWhite = {backgroundColor:'#EFF0F1'};
|
||||
var colShiny = {backgroundColor:'#FCE94F'};
|
||||
</script>
|
||||
|
||||
{{ if $mode == display }}
|
||||
<script>
|
||||
var id = window.location.pathname.split("/").pop();
|
||||
$(window).scrollTop($('#item-'+id).position().top);
|
||||
$('#item-'+id).animate(colWhite, 1000).animate(colShiny).animate(colWhite, 2000);
|
||||
</script>
|
||||
{{ endif }}
|
||||
|
||||
|
|
|
@ -128,6 +128,11 @@ nav #site-location {
|
|||
box-shadow: 4px 4px 3px 0 #444444;
|
||||
}
|
||||
|
||||
#sidebar-page-list .label {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
.photo {
|
||||
border: 1px solid #AAAAAA;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue