Merge branch 'master' of git://github.com/friendika/friendika

This commit is contained in:
Tobias Diekershoff 2011-03-18 18:07:37 +01:00
commit 878bdeccfd
87 changed files with 7984 additions and 1353 deletions

View file

@ -237,7 +237,7 @@ function facebook_post_hook(&$a,&$b) {
require_once('library/slinky.php');
$display_url = $a->get_baseurl() . '/display/' . $a->user['nickname'] . '/' . $b['id'];
$slinky = new Slinky( $posturl );
$slinky = new Slinky( $display_url );
// setup a cascade of shortening services
// try to get a short link from these services
// in the order ur1.ca, trim, id.gd, tinyurl

View file

@ -2,7 +2,7 @@
set_time_limit(0);
define ( 'FRIENDIKA_VERSION', '2.1.920' );
define ( 'FRIENDIKA_VERSION', '2.1.921' );
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
define ( 'DB_UPDATE_VERSION', 1043 );
@ -159,6 +159,11 @@ if (get_magic_quotes_gpc()) {
unset($process);
}
/*
* translation system
*/
require_once("include/pgettext.php");
/**
*
@ -601,28 +606,6 @@ function replace_macros($s,$r) {
}}
// load string translation table for alternate language
if(! function_exists('load_translation_table')) {
function load_translation_table($lang) {
global $a;
if(file_exists("view/$lang/strings.php"))
include("view/$lang/strings.php");
}}
// translate string if translation exists
if(! function_exists('t')) {
function t($s) {
$a = get_app();
if(x($a->strings,$s))
return $a->strings[$s];
return $s;
}}
// curl wrapper. If binary flag is true, return binary
// results.
@ -1845,10 +1828,14 @@ if(! function_exists('format_like')) {
function format_like($cnt,$arr,$type,$id) {
$o = '';
if($cnt == 1)
$o .= $arr[0] . (($type === 'like') ? t(' likes this.') : t(' doesn\'t like this.')) . EOL ;
$o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ;
else {
$o .= '<span class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');" >'
. $cnt . ' ' . t('people') . '</span> ' . (($type === 'like') ? t('like this.') : t('don\'t like this.')) . EOL ;
$spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"';
$o .= (($type === 'like') ?
sprintf( t('<span %1$s>%2$d people</span> like this.'), $spanatts, $cnt)
:
sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt) );
$o .= EOL ;
$total = count($arr);
if($total >= MAX_LIKERS)
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
@ -1856,8 +1843,8 @@ function format_like($cnt,$arr,$type,$id) {
$arr[count($arr)-1] = t('and') . ' ' . $arr[count($arr)-1];
$str = implode(', ', $arr);
if($total >= MAX_LIKERS)
$str .= t(', and ') . $total - MAX_LIKERS . t(' other people');
$str .= (($type === 'like') ? t(' like this.') : t(' don\'t like this.'));
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
$str = (($type === 'like') ? sprintf( t('%s like this.'), $str) : sprintf( t('%s don\'t like this.'), $str));
$o .= "\t" . '<div id="' . $type . 'list-' . $id . '" style="display: none;" >' . $str . '</div>';
}
return $o;
@ -2423,7 +2410,13 @@ function get_birthdays() {
);
if($r && count($r)) {
$o .= '<div id="birthday-wrapper"><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
$total = 0;
foreach($r as $rr)
if(strlen($rr['name']))
$total ++;
$o .= '<div id="birthday-notice" class="birthday-notice fakelink" onclick=openClose(\'birthday-wrapper\'); >' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '</div>';
$o .= '<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
$o .= '<div id="birthday-adjust">' . t("\x28Adjusted for local time\x29") . '</div>';
$o .= '<div id="birthday-title-end"></div>';
@ -2439,7 +2432,7 @@ function get_birthdays() {
. '</div>' ;
}
$o .= '</div>';
$o .= '</div></div>';
}
return $o;

BIN
images/pencil.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

BIN
images/recycle.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

After

Width:  |  Height:  |  Size: 237 B

View file

@ -14,11 +14,13 @@ function user_remove($uid) {
q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `intro` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `event` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mail` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `photo` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile_check` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
if($uid == local_user()) {
unset($_SESSION['authenticated']);
@ -41,6 +43,9 @@ function contact_remove($id) {
q("DELETE FROM `mail` WHERE `contact-id` = %d ",
intval($id)
);
q("DELETE FROM `event` WHERE `cid` = %d ",
intval($id)
);
}

46
include/pgettext.php Normal file
View file

@ -0,0 +1,46 @@
<?php
/**
* translation support
*/
// load string translation table for alternate language
if(! function_exists('load_translation_table')) {
function load_translation_table($lang) {
global $a;
if(file_exists("view/$lang/strings.php"))
include("view/$lang/strings.php");
}}
// translate string if translation exists
if(! function_exists('t')) {
function t($s) {
$a = get_app();
if(x($a->strings,$s)) {
$t = $a->strings[$s];
return is_array($t)?$t[0]:$t;
}
return $s;
}}
if(! function_exists('tt')){
function tt($singular, $plural, $count){
$a = get_app();
if(x($a->strings,$singular)) {
$t = $a->strings[$singular];
$k = string_plural_select($count);
return is_array($t)?$t[$k]:$t;
}
if ($count!=1){
return $plural;
} else {
return $singular;
}
}}

View file

@ -137,7 +137,8 @@ function contacts_content(&$a) {
intval(local_user())
);
if($r) {
notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
//notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
notice( (($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')) . EOL );
}
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
return; // NOTREACHED
@ -151,7 +152,7 @@ function contacts_content(&$a) {
intval(local_user())
);
if($r) {
notice( t('Contact has been ') . (($readonly) ? t('ignored') : t('unignored')) . EOL );
notice( (($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')) . EOL );
}
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
return; // NOTREACHED
@ -364,13 +365,14 @@ function contacts_content(&$a) {
$o .= replace_macros($tpl, array(
'$img_hover' => t('Visit ') . $rr['name'] . t('\'s profile'),
'$img_hover' => t('Visit $username\'s profile'),
'$edit_hover' => t('Edit contact'),
'$id' => $rr['id'],
'$alt_text' => $alt_text,
'$dir_icon' => $dir_icon,
'$thumb' => $rr['thumb'],
'$name' => substr($rr['name'],0,20),
'$username' => $rr['name'],
'$sparkle' => $sparkle,
'$url' => $url
));

View file

@ -491,7 +491,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
dbesc($node));
if(! count($r)) {
$message = t('No user record found for ') . '\'' . $node . '\'';
$message = sprintf(t('No user record found for \'%s\' '), $node);
xml_status(3,$message); // failure
// NOTREACHED
}
@ -645,7 +645,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
'$uid' => $newuid )
);
$res = mail($r[0]['email'], t("Connection accepted at ") . $a->config['sitename'],
$res = mail($r[0]['email'], sprintf( t("Connection accepted at %s") , $a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
if(!$res) {
// pointless throwing an error here and confusing the person at the other end of the wire.

View file

@ -385,7 +385,7 @@ function dfrn_notify_post(&$a) {
'$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
));
$res = mail($importer['email'], $from . t(' commented on an item at ') . $a->config['sitename'],
$res = mail($importer['email'], sprintf(t('%s commented on an item at %s'), $from , $a->config['sitename']),
$email_tpl, "From: " . t('Administrator') . '@' . $a->get_hostname() );
}
}
@ -471,9 +471,8 @@ function dfrn_notify_post(&$a) {
'$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
));
$res = mail($importer['email'], $from . t(" commented on an item at ")
. $a->config['sitename'],
$email_tpl,t("From: Administrator@") . $a->get_hostname() );
$res = mail($importer['email'], sprintf( t("%s commented on an item at %s") , $from ,$a->config['sitename']),
$email_tpl, "From: ".t("Administrator") . "@". $a->get_hostname() );
break;
}
}

View file

@ -75,7 +75,7 @@ function dfrn_poll_init(&$a) {
$_SESSION['authenticated'] = 1;
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
notice( $r[0]['username'] . t(' welcomes ') . $r[0]['name'] . EOL);
notice( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
// Visitors get 1 day session.
$session_id = session_id();
$expire = time() + 86400;
@ -389,7 +389,7 @@ function dfrn_poll_content(&$a) {
$_SESSION['authenticated'] = 1;
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
notice( $r[0]['username'] . t(' welcomes ') . $r[0]['name'] . EOL);
notice( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
// Visitors get 1 day session.
$session_id = session_id();
$expire = time() + 86400;

View file

@ -123,9 +123,9 @@ function dfrn_request_post(&$a) {
notice( t('Warning: profile location has no profile photo.') . EOL );
$invalid = validate_dfrn($parms);
if($invalid) {
notice( $invalid . t(' required parameter')
. (($invalid == 1) ? t(" was ") : t("s were ") )
. t("not found at the given location.") . EOL ) ;
notice( sprintf( tt("%d required parameter was not found at the given location",
"%d required parameters were not found at the given location",
$invalid), $invalid) . EOL );
return;
}
}
@ -238,7 +238,7 @@ function dfrn_request_post(&$a) {
intval($uid)
);
if(count($r) > $maxreq) {
notice( $a->profile['name'] . t(' has received too many connection requests today.') . EOL);
notice( sprintf( t('%s has received too many connection requests today.'), $a->profile['name']) . EOL);
notice( t('Spam protection measures have been invoked.') . EOL);
notice( t('Friends are advised to please try again in 24 hours.') . EOL);
return;
@ -306,7 +306,7 @@ function dfrn_request_post(&$a) {
return;
}
elseif($ret[0]['rel'] == REL_BUD) {
notice( t('Apparently you are already friends with .') . $a->profile['name'] . EOL);
notice( sprintf( t('Apparently you are already friends with %s.'), $a->profile['name']) . EOL);
return;
}
else {
@ -354,9 +354,9 @@ function dfrn_request_post(&$a) {
notice( t('Warning: profile location has no profile photo.') . EOL );
$invalid = validate_dfrn($parms);
if($invalid) {
notice( $invalid . t(' required parameter')
. (($invalid == 1) ? t(" was ") : t("s were ") )
. t("not found at the given location.") . EOL ) ;
notice( sprintf( tt("%d required parameter was not found at the given location",
"%d required parameters were not found at the given location",
$invalid), $invalid) . EOL );
return;
}

View file

@ -217,6 +217,9 @@ function display_content(&$a) {
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $item['thumb']);
$edpost = '';
if((local_user()) && ($item['uid'] == local_user()) && ($item['id'] == $item['parent']) && (intval($item['wall']) == 1))
$edpost = '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>';
// Can we use our special contact URL for this author?
if(strlen($item['author-link'])) {
@ -276,6 +279,7 @@ function display_content(&$a) {
'$owner_photo' => $owner_photo,
'$owner_name' => $owner_name,
'$plink' => get_plink($item),
'$edpost' => $edpost,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => $like,

91
mod/editpost.php Normal file
View file

@ -0,0 +1,91 @@
<?php
require_once('acl_selectors.php');
function editpost_content(&$a) {
$o = '';
if(! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
$post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
if(! $post_id) {
notice( t('Item not found') . EOL);
return;
}
$r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($post_id),
intval(local_user())
);
if(! count($r)) {
notice( t('Item not found') . EOL);
return;
}
$o .= '<h2>' . t('Edit post') . '</h2>';
$tpl = load_view_file('view/jot-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$geotag' => $geotag,
'$nickname' => $a->user['nickname']
));
$tpl = load_view_file("view/jot.tpl");
if(($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid'])))))
$lockstate = 'lock';
else
$lockstate = 'unlock';
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
$jotplugins = '';
$jotnets = '';
call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets);
$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
$o .= replace_macros($tpl,array(
'$return_path' => $_SESSION['return_url'],
'$action' => 'item',
'$share' => t('Edit'),
'$upload' => t('Upload photo'),
'$weblink' => t('Insert web link'),
'$youtube' => t('Insert YouTube video'),
'$video' => t('Insert Vorbis [.ogg] video'),
'$audio' => t('Insert Vorbis [.ogg] audio'),
'$setloc' => t('Set your location'),
'$noloc' => t('Clear browser location'),
'$wait' => t('Please wait'),
'$permset' => t('Permission settings'),
'$content' => $r[0]['body'],
'$post_id' => $post_id,
'$baseurl' => $a->get_baseurl(),
'$defloc' => $a->user['default-location'],
'$visitor' => 'none',
'$emailcc' => t('CC: email addresses'),
'$jotnets' => $jotnets,
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate,
'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user), $celeb),
'$bang' => (($group) ? '!' : ''),
'$profile_uid' => $_SESSION['uid']
));
return $o;
}

View file

@ -20,7 +20,7 @@ function home_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
$o .= '<h1>' . ((x($a->config,'sitename')) ? t("Welcome to ").$a->config['sitename'] : "" ) . '</h1>';
$o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
if(file_exists('home.html'))
$o .= file_get_contents('home.html');

View file

@ -25,21 +25,21 @@ function invite_post(&$a) {
$recip = trim($recip);
if(! valid_email($recip)) {
notice( $recip . t(' : ') . t('Not a valid email address.') . EOL);
notice( sprintf( t('%s : Not a valid email address.'), $recip) . EOL);
continue;
}
$res = mail($recip, t('Please join my network on ') . $a->config['sitename'],
$res = mail($recip, sprintf(t('Please join my network on %s'), $a->config['sitename']),
$message, "From: " . $a->user['email']);
if($res) {
$total ++;
}
else {
notice( $recip . t(' : ') . t('Message delivery failed.') . EOL);
notice( sprintf( t('%s : Message delivery failed.'), $recip) . EOL);
}
}
notice( $total . t(' messages sent.') . EOL);
notice( sprintf( tt("%d message sent.", "%d messages sent.", $total) , $total) . EOL);
return;
}
@ -57,7 +57,7 @@ function invite_content(&$a) {
'$invite' => t('Send invitations'),
'$addr_text' => t('Enter email addresses, one per line:'),
'$msg_text' => t('Your message:'),
'$default_message' => t('Please join my social network on ') . $a->config['sitename'] . "\r\n" . "\r\n"
'$default_message' => sprintf(t('Please join my social network on %s'), $a->config['sitename']) . "\r\n" . "\r\n"
. t('To accept this invitation, please visit:') . "\r\n" . "\r\n" . $a->get_baseurl()
. "\r\n" . "\r\n" . t('Once you have registered, please connect with me via my profile page at:')
. "\r\n" . "\r\n" . $a->get_baseurl() . '/profile/' . $a->user['nickname'] ,

View file

@ -51,7 +51,7 @@ function item_post(&$a) {
}
$profile_uid = ((x($_POST,'profile_uid')) ? intval($_POST['profile_uid']) : 0);
$post_id = ((x($_POST['post_id'])) ? intval($_POST['post_id']) : 0);
if(! can_write_wall($a,$profile_uid)) {
notice( t('Permission denied.') . EOL) ;
@ -60,6 +60,21 @@ function item_post(&$a) {
killme();
}
// is this an edited post?
$orig_post = null;
if($post_id) {
$i = q("SELECT * FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval($profile_uid),
intval($post_id)
);
if(! count($i))
killme();
$orig_post = $i[0];
}
$user = null;
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
@ -68,12 +83,32 @@ function item_post(&$a) {
if(count($r))
$user = $r[0];
if($orig_post) {
$str_group_allow = $orig_post['allow_gid'];
$str_contact_allow = $orig_post['allow_cid'];
$str_group_deny = $orig_post['deny_gid'];
$str_contact_deny = $orig_post['deny_cid'];
$title = $orig_post['title'];
$location = $orig_post['location'];
$coord = $orig_post['coord'];
$verb = $orig_post['verb'];
$emailcc = $orig_post['emailcc'];
$body = escape_tags(trim($_POST['body']));
$private = $orig_post['private'];
}
else {
$str_group_allow = perms2str($_POST['group_allow']);
$str_contact_allow = perms2str($_POST['contact_allow']);
$str_group_deny = perms2str($_POST['group_deny']);
$str_contact_deny = perms2str($_POST['contact_deny']);
$title = notags(trim($_POST['title']));
$location = notags(trim($_POST['location']));
$coord = notags(trim($_POST['coord']));
$verb = notags(trim($_POST['verb']));
$emailcc = notags(trim($_POST['emailcc']));
$body = escape_tags(trim($_POST['body']));
$private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
if(($parent_item) &&
@ -82,17 +117,10 @@ function item_post(&$a) {
|| strlen($parent_item['allow_gid'])
|| strlen($parent_item['deny_cid'])
|| strlen($parent_item['deny_gid'])
)
) {
)) {
$private = 1;
}
$title = notags(trim($_POST['title']));
$body = escape_tags(trim($_POST['body']));
$location = notags(trim($_POST['location']));
$coord = notags(trim($_POST['coord']));
$verb = notags(trim($_POST['verb']));
$emailcc = notags(trim($_POST['emailcc']));
if(! strlen($body)) {
notice( t('Empty post discarded.') . EOL );
@ -100,6 +128,7 @@ function item_post(&$a) {
goaway($a->get_baseurl() . "/" . $_POST['return'] );
killme();
}
}
// get contact info for poster
@ -151,7 +180,6 @@ function item_post(&$a) {
}
}
/**
*
* When a photo was uploaded into the message using the (profile wall) ajax
@ -287,15 +315,13 @@ function item_post(&$a) {
$str_tags .= ',';
$str_tags .= '@[url=' . $alias . ']' . $newname . '[/url]';
}
}
}
}
}
$wall = 0;
if($post_type === 'wall' || $post_type === 'wall-comment')
$wall = 1;
@ -346,9 +372,31 @@ function item_post(&$a) {
$datarray['parent'] = $parent;
$datarray['self'] = $self;
if($orig_post)
$datarray['edit'] = true;
call_hooks('post_local',$datarray);
if($orig_post) {
$r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
dbesc($body),
dbesc(datetime_convert()),
intval($post_id),
intval($profile_uid)
);
proc_run('php', "include/notifier.php", 'edit_post', "$post_id");
if((x($_POST,'return')) && strlen($_POST['return'])) {
logger('return: ' . $_POST['return']);
goaway($a->get_baseurl() . "/" . $_POST['return'] );
}
killme();
}
else
$post_id = 0;
$r = q("INSERT INTO `item` (`uid`,`type`,`wall`,`gravity`,`contact-id`,`owner-name`,`owner-link`,`owner-avatar`,
`author-name`, `author-link`, `author-avatar`, `created`, `edited`, `changed`, `uri`, `title`, `body`, `location`, `coord`,
`tag`, `inform`, `verb`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private` )
@ -423,8 +471,8 @@ function item_post(&$a) {
'$body' => strip_tags(bbcode($datarray['body']))
));
$res = mail($user['email'], $from . t(" commented on your item at ") . $a->config['sitename'],
$email_tpl,t("From: Administrator@") . $a->get_hostname() );
$res = mail($user['email'], sprintf( t("%s commented on your item at %s") ,$from,$a->config['sitename']),
$email_tpl,"From: " . t("Administrator") . "@" . $a->get_hostname() );
}
}
else {
@ -446,8 +494,8 @@ function item_post(&$a) {
'$body' => strip_tags(bbcode($datarray['body']))
));
$res = mail($user['email'], $from . t(" posted on your profile wall at ") . $a->config['sitename'],
$email_tpl,t("From: Administrator@") . $a->get_hostname() );
$res = mail($user['email'], sprintf( t("%s posted on your profile wall at %s") ,$from, $a->config['sitename']),
$email_tpl,"From: " . t("Administrator") . "@" . $a->get_hostname() );
}
}
@ -490,13 +538,13 @@ function item_post(&$a) {
$addr = trim($recip);
if(! strlen($addr))
continue;
$disclaimer = '<hr />' . t('This message was sent to you by ') . $a->user['username']
. t(', a member of the Friendika social network.') . '<br />';
$disclaimer = '<hr />' . sprintf(t('This message was sent to you by %s, a member of the Friendika social network.'),$a->user['username'])
. '<br />';
$disclaimer .= t('You may visit them online at') . ' '
. $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '<br />';
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . '<br />';
$subject = '[Friendika]' . ' ' . $a->user['username'] . ' ' . t('posted an update.');
$subject = '[Friendika]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";

View file

@ -124,9 +124,9 @@ function like_content(&$a) {
</object>
EOT;
if($verb === 'like')
$bodyverb = t('likes');
$bodyverb = t('%1$s likes %2$s\'s %3$s');
if($verb === 'dislike')
$bodyverb = t('doesn\'t like');
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
if(! isset($bodyverb))
return;
@ -147,9 +147,11 @@ EOT;
$arr['author-name'] = $contact['name'];
$arr['author-link'] = $contact['url'];
$arr['author-avatar'] = $contact['thumb'];
$arr['body'] = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]' . ' ' . $bodyverb . ' '
. '[url=' . $item['author-link'] . ']' . $item['author-name'] . t('\'s') . '[/url]' . ' '
. '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]' ;
$ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
$alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
$plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]';
$arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
$arr['verb'] = $activity;
$arr['object-type'] = $objtype;

View file

@ -35,7 +35,7 @@ function lostpass_post(&$a) {
'$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password
));
$res = mail($email, t('Password reset requested at ') . $a->config['sitename'],
$res = mail($email, sprintf(t('Password reset requested at %s'),$a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER[SERVER_NAME]);
goaway($a->get_baseurl());

View file

@ -34,7 +34,7 @@ function manage_post(&$a) {
$_SESSION['page_flags'] = $r[0]['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
notice( t("Welcome back ") . $r[0]['username'] . EOL);
notice( sprintf( t("Welcome back %s") , $r[0]['username']) . EOL);
$a->user = $r[0];
if(strlen($a->user['timezone'])) {

View file

@ -387,6 +387,9 @@ function network_content(&$a, $update = 0) {
));
}
$edpost = '';
if(($item['id'] == $item['parent']) && (intval($item['wall']) == 1))
$edpost = '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>';
$drop = replace_macros(load_view_file('view/wall_item_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
$photo = $item['photo'];
@ -455,6 +458,7 @@ function network_content(&$a, $update = 0) {
'$owner_photo' => $owner_photo,
'$owner_name' => $owner_name,
'$plink' => get_plink($item),
'$edpost' => $edpost,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => $like,

View file

@ -70,7 +70,7 @@ function openid_content(&$a) {
$_SESSION['page_flags'] = $r[0]['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
notice( t("Welcome back ") . $r[0]['username'] . EOL);
notice( sprintf( t("Welcome back "), $r[0]['username']) . EOL);
$a->user = $r[0];
if(strlen($a->user['timezone'])) {

View file

@ -310,6 +310,7 @@ foreach($_FILES AS $key => $val) {
$arr['deny_gid'] = $p[0]['deny_gid'];
$arr['last-child'] = 1;
$arr['visible'] = $visibility;
$arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']'
. '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]'
. '[/url]';

View file

@ -348,6 +348,12 @@ function profile_content(&$a, $update = 0) {
else
$sparkle = '';
$edpost = '';
if((local_user()) && ($a->profile['profile_uid'] == local_user()) && ($item['id'] == $item['parent']) && (intval($item['wall']) == 1))
$edpost = '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>';
// We would prefer to use our own avatar link for this item because the one in the author-avatar might reference a
// remote site (which could be down). We will use author-avatar if we haven't got something stored locally.
// We use this same logic block in mod/network.php to determine it this is a third party post and we don't have any
@ -400,6 +406,7 @@ function profile_content(&$a, $update = 0) {
'$location' => $location,
'$indent' => $indent,
'$plink' => get_plink($item),
'$edpost' => $edpost,
'$drop' => $drop,
'$like' => $like,
'$vote' => $likebuttons,

View file

@ -58,21 +58,21 @@ function profile_photo_post(&$a) {
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, 1);
if($r === false)
notice ( t('Image size reduction [175] failed.') . EOL );
notice ( sprintf(t('Image size reduction [%s] failed.'),"175") . EOL );
$im->scaleImage(80);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, 1);
if($r === false)
notice( t('Image size reduction [80] failed.') . EOL );
notice( sprintf(t('Image size reduction [%s] failed.'),"80") . EOL );
$im->scaleImage(48);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 6, 1);
if($r === false)
notice( t('Image size reduction [48] failed.') . EOL );
notice( sprintf(t('Image size reduction [%s] failed.'),"48") . EOL );
// Unset the profile photo flag from any other photos I own
@ -106,7 +106,7 @@ function profile_photo_post(&$a) {
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
@unlink($src);
return;
}
@ -234,7 +234,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
$r = $ph->store(local_user(), 0 , $hash, $filename, t('Profile Photos'), 1 );
if($r === false)
notice( t('Image size reduction [640] failed.') . EOL );
notice( sprintf(t('Image size reduction [%s] failed.'),"640") . EOL );
else
$smallest = 1;
}

View file

@ -307,7 +307,7 @@ function register_post(&$a) {
'$password' => $new_password,
'$uid' => $newuid ));
$res = mail($email, t('Registration details for ') . $a->config['sitename'],
$res = mail($email, sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
@ -344,7 +344,7 @@ function register_post(&$a) {
'$hash' => $hash
));
$res = mail($a->config['admin_email'], t('Registration request at ') . $a->config['sitename'],
$res = mail($a->config['admin_email'], sprintf(t('Registration request at %s'), $a->config['sitename']),
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
if($res) {

View file

@ -51,7 +51,7 @@ function regmod_content(&$a) {
$r = q("DELETE FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($register[0]['hash'])
);
notice( t('Registration revoked for ') . $user[0]['username'] . EOL);
notice( sprintf(t('Registration revoked for %s'), $user[0]['username']) . EOL);
return;
}
@ -89,7 +89,7 @@ function regmod_content(&$a) {
'$uid' => $user[0]['uid']
));
$res = mail($user[0]['email'], t('Registration details for '). $a->config['sitename'],
$res = mail($user[0]['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
if($res) {

View file

@ -41,9 +41,10 @@ function viewcontacts_content(&$a) {
$o .= replace_macros($tpl, array(
'$id' => $rr['id'],
'$alt_text' => t('Visit ') . $rr['name'] . t('\'s profile'),
'$alt_text' => t('Visit $username\'s profile'),
'$thumb' => $rr['thumb'],
'$name' => substr($rr['name'],0,20),
'$username' => $rr['name'],
'$url' => $rr['url']
));
}

View file

@ -53,7 +53,7 @@ function wall_upload_post(&$a) {
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
@unlink($src);
return;
}

View file

@ -44,5 +44,77 @@ then relocate the files to the view directory. The files in the top-level view
directory are template files which do not require translation.
Placeholders
Do not translate placeholders in strings! Things like %s, %d, %1$s and $somename
are used to add dynamic content to the string.
%s rappresent a dynamic string, like in "Welcome to %s"
%d rappresent a dynamic number, like in "%d new messages"
$somename is a variable like in php
In %1$s %2$s, the numbers are the position index of multiple dynamic content.
You could swap position in string of indexed placeholders.
e.g.
"%1$s's %2$s" => "John's photo", "John's item"
"%2$s di %1$s" => "foto di John", "elemento di John"
Plural
The tt() function supports plural form. Script extract.php write this in
strings.php as an array, one string for every plural form language supports:
$a->string["%d message sent"] = Array(
0 => "%d message sent",
1 => "%d messages sent",
);
The function string_plural_select($n) defined in strings.php, return the string
index to use, related to the numbers of item (value of $n).
This is modelled after ngettext function of GNU gettext.
More info at http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
Xgettext and .po workflow
1. Run utils/run_xgettext.sh script (on *unix sistems, with GNU xgettext installed)
This script runs xgettext on source tree, extracting strings from t() and tt()
functions, and creates a utils/messages.po file.
2. copy utils/messages.po to views/<langauage>/messages.po
3. open views/<langauage>/messages.po with a text editor and fill in infos in
"Last-Translator: FULL NAME <EMAIL@ADDRESS>"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
(eg:
"Last-Translator: Guybrush Threepwood <gb@host.com>"
"Language-Team: Pirate Friendika <pirate-friendika-ml@host.com>\n"
"Language: pi\n"
)
For the line
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
read GNU gettext manual at
http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
4. You could then translate the strings in text editor, but I suggest to use one
of the many .po editors out there, like QtLinguist
5. run
$ php utils/po2php.php views/<language>/messages.po
to create the strings.php file
When strings are added or modified in source, you could run
$ utils/run_xgettext.sh views/<language>/messages.po
to extraxt strings from source files and join them with the existing .po file:
new strings are added, the existing are not overwritten.
If you already translated Friendika using strings.php, you could import your old
translation to messages.po. Run:
$ php utils/php2po.php views/<language>/strings.php

View file

@ -10,26 +10,51 @@
$str = file_get_contents($file);
$pat = '| t\(([^\)]*)\)|';
$patt = '| tt\(([^\)]*)\)|';
preg_match_all($pat,$str,$matches);
preg_match_all($patt, $str, $matchestt);
if(! count($matches))
continue;
if(count($matches)){
foreach($matches[1] as $match) {
if(! in_array($match,$arr))
$arr[] = $match;
}
}
if(count($matchestt)){
foreach($matchestt[1] as $match) {
$matchtkns = preg_split("|[ \t\r\n]*,[ \t\r\n]*|",$match);
if (count($matchtkns)==3 && !in_array($matchtkns,$arr)){
$arr[] = $matchtkns;
}
}
}
}
$s = '<?php' . "\n";
$s .= '
function string_plural_select($n){
return ($n != 1);
}
';
foreach($arr as $a) {
if (is_array($a)){
if(substr($a[1],0,1) == '$')
continue;
$s .= '$a->strings[' . $a[0] . "] = array(\n";
$s .= "\t0 => ". $a[0]. ",\n";
$s .= "\t1 => ". $a[1]. ",\n";
$s .= ");\n";
} else {
if(substr($a,0,1) == '$')
continue;
$s .= '$a->strings[' . $a . '] = '. $a . ';' . "\n";
}
}
$zones = timezone_identifiers_list();
foreach($zones as $zone)

2411
util/messages.po Normal file

File diff suppressed because it is too large Load diff

71
util/php2po.php Normal file
View file

@ -0,0 +1,71 @@
<?php
if(! class_exists('App')) {
class TmpA {
public $strings = Array();
}
$a = new TmpA();
}
if ($argc!=2) {
print "Usage: ".$argv[0]." <strings.php>\n\n";
return;
}
$phpfile = $argv[1];
$pofile = dirname($phpfile)."/messages.po";
if (!file_exists($phpfile)){
print "Unable to find '$phpfile'\n";
return;
}
include_once($phpfile);
print "Out to '$pofile'\n";
$out = "";
$infile = file($pofile);
$k="";
$ink = False;
foreach ($infile as $l) {
if ($k!="" && substr($l,0,7)=="msgstr "){
$ink = False;
$v = '""';
//echo "DBG: k:'$k'\n";
if (isset($a->strings[$k])) {
$v= '"'.$a->strings[$k].'"';
//echo "DBG\n";
//var_dump($k, $v, $a->strings[$k], $v);
//echo "/DBG\n";
}
//echo "DBG: v:'$v'\n";
$l = "msgstr ".$v."\n";
}
if (substr($l,0,6)=="msgid_" || substr($l,0,7)=="msgstr[" )$ink = False;;
if ($ink) {
$k .= trim($l,"\"\r\n");
$k = str_replace('\"','"',$k);
}
if (substr($l,0,6)=="msgid "){
$arr=False;
$k = str_replace("msgid ","",$l);
if ($k != '""' ) {
$k = trim($k,"\"\r\n");
$k = str_replace('\"','"',$k);
} else {
$k = "";
}
$ink = True;
}
$out .= $l;
}
//echo $out;
file_put_contents($pofile, $out);
?>

103
util/po2php.php Normal file
View file

@ -0,0 +1,103 @@
<?php
function po2php_run($argv, $argc) {
if ($argc!=2) {
print "Usage: ".$argv[0]." <file.po>\n\n";
return;
}
$pofile = $argv[1];
$outfile = dirname($pofile)."/strings.php";
if (!file_exists($pofile)){
print "Unable to find '$pofile'\n";
return;
}
print "Out to '$outfile'\n";
$out="<?php\n\n";
$infile = file($pofile);
$k="";
$v="";
$arr = False;
$ink = False;
$inv = False;
foreach ($infile as $l) {
$len = strlen($l);
if ($l[0]=="#") $l="";
if (substr($l,0,15)=='"Plural-Forms: '){
$match=Array();
preg_match("|nplurals=([0-9]*); plural=(.*);|", $l, $match);
$cond = str_replace('n','$n',$match[2]);
$out .= 'function string_plural_select($n){'."\n";
$out .= ' return '.$cond.';'."\n";
$out .= '}'."\n";
}
if ($k!="" && substr($l,0,7)=="msgstr "){
if ($ink) { $ink = False; $out .= '$a->strings["'.$k.'"] = '; }
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
$v = substr($l,8,$len-10);
$inv = True;
//$out .= $v;
}
if ($k!="" && substr($l,0,7)=="msgstr["){
if ($ink) { $ink = False; $out .= '$a->strings["'.$k.'"] = '; }
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
if (!$arr) {
$arr=True;
$out .= "array(\n";
}
$match=Array();
preg_match("|\[([0-9]*)\] (.*)|", $l, $match);
$out .= "\t". $match[1]." => ". $match[2] .",\n";
}
if (substr($l,0,6)=="msgid_") { $ink = False; $out .= '$a->strings["'.$k.'"] = '; };
if ($ink) {
$k .= trim($l,"\"\r\n");
//$out .= '$a->strings['.$k.'] = ';
}
if (substr($l,0,6)=="msgid "){
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
if ($k!="") $out .= $arr?");\n":";\n";
$arr=False;
$k = str_replace("msgid ","",$l);
if ($k != '""' ) {
$k = trim($k,"\"\r\n");
} else {
$k = "";
}
$ink = True;
}
if ($inv && substr($l,0,6)!="msgstr") {
$v .= trim($l,"\"\r\n");
//$out .= '$a->strings['.$k.'] = ';
}
}
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
if ($k!="") $out .= $arr?");\n":";\n";
file_put_contents($outfile, $out);
}
if (array_search(__file__,get_included_files())===0){
po2php_run($argv,$argc);
}

36
util/run_xgettext.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
FULLPATH=$(dirname $(readlink -f "$0"))
cd "$FULLPATH/../view/en/"
F9KVERSION=$(sed -n "s/.*'FRIENDIKA_VERSION'.*'\([0-9.]*\)'.*/\1/p" ../../boot.php);
echo "Friendika version $F9KVERSION"
OPTS=
OUTFILE="$FULLPATH/messages.po"
if [ "" != "$1" ]
then
OUTFILE="$(readlink -f ${FULLPATH}/$1)"
if [ -e "$OUTFILE" ]
then
echo "join extracted strings"
OPTS="-j"
fi
fi
KEYWORDS="-k -kt -ktt:1,2"
echo "extract strings to $OUTFILE.."
find ../../ -name "*.php" | xargs xgettext $KEYWORDS $OPTS -o "$OUTFILE" --from-code=UTF-8
echo "setup base info.."
sed -i "s/SOME DESCRIPTIVE TITLE./FRIENDIKA Distribuited Social Network/g" "$OUTFILE"
sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2010, 2011 Mike Macgirvin/g" "$OUTFILE"
sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./Mike Macgirvin, 2010/g" "$OUTFILE"
sed -i "s/PACKAGE VERSION/$F9KVERSION/g" "$OUTFILE"
sed -i "s/PACKAGE/Friendika/g" "$OUTFILE"
sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
echo "done."

View file

@ -1,4 +1,9 @@
<?php
function string_plural_select($n){
return ($n != 1);
}
$a->strings['Not Found'] = 'Not Found';
$a->strings['Page not found.' ] = 'Page not found.' ;
$a->strings['Permission denied'] = 'Permission denied';
@ -61,30 +66,6 @@ $a->strings['Birthdays this week:'] = 'Birthdays this week:';
$a->strings["\x28Adjusted for local time\x29"] = "\x28Adjusted for local time\x29";
$a->strings['[today]'] = '[today]';
$a->strings['link to source'] = 'link to source';
$a->strings['No recipient selected.'] = 'No recipient selected.';
$a->strings['[no subject]'] = '[no subject]';
$a->strings['Unable to locate contact information.'] = 'Unable to locate contact information.';
$a->strings['Wall Photos'] = 'Wall Photos';
$a->strings['Message sent.'] = 'Message sent.';
$a->strings['Message could not be sent.'] = 'Message could not be sent.';
$a->strings['Messages'] = 'Messages';
$a->strings['Inbox'] = 'Inbox';
$a->strings['Outbox'] = 'Outbox';
$a->strings['New Message'] = 'New Message';
$a->strings['Message deleted.'] = 'Message deleted.';
$a->strings['Conversation removed.'] = 'Conversation removed.';
$a->strings['Send Private Message'] = 'Send Private Message';
$a->strings['To:'] = 'To:';
$a->strings['Subject:'] = 'Subject:';
$a->strings['Your message:'] = 'Your message:';
$a->strings['Upload photo'] = 'Upload photo';
$a->strings['Insert web link'] = 'Insert web link';
$a->strings['Please wait'] = 'Please wait';
$a->strings['No messages.'] = 'No messages.';
$a->strings['Delete conversation'] = 'Delete conversation';
$a->strings['Message not available.'] = 'Message not available.';
$a->strings['Delete message'] = 'Delete message';
$a->strings['Send Reply'] = 'Send Reply';
$a->strings['Applications'] = 'Applications';
$a->strings["Invite Friends"] = "Invite Friends";
$a->strings['Connect/Follow'] = 'Connect/Follow';
@ -97,8 +78,10 @@ $a->strings['Failed to update contact record.'] = 'Failed to update contact reco
$a->strings['Contact has been '] = 'Contact has been ';
$a->strings['blocked'] = 'blocked';
$a->strings['unblocked'] = 'unblocked';
$a->strings['ignored'] = 'ignored';
$a->strings['unignored'] = 'unignored';
$a->strings['Contact has been blocked'] = 'Contact has been blocked';
$a->strings['Contact has been unblocked'] = 'Contact has been unblocked';
$a->strings['Contact has been ignored'] = 'Contact has been ignored';
$a->strings['Contact has been unignored'] = 'Contact has been unignored';
$a->strings['stopped following'] = 'stopped following';
$a->strings['Contact has been removed.'] = 'Contact has been removed.';
$a->strings['Contact not found.'] = 'Contact not found.';
@ -126,8 +109,7 @@ $a->strings['Show Blocked Connections'] = 'Show Blocked Connections';
$a->strings['Hide Blocked Connections'] = 'Hide Blocked Connections';
$a->strings['Finding: '] = 'Finding: ';
$a->strings['Find'] = 'Find';
$a->strings['Visit '] = 'Visit ';
$a->strings['\'s profile'] = '\'s profile';
$a->strings['Visit $username\'s profile'] = 'Visit $username\'s profile';
$a->strings['Edit contact'] = 'Edit contact';
$a->strings['Profile not found.'] = 'Profile not found.';
$a->strings['Response from remote site was not understood.'] = 'Response from remote site was not understood.';
@ -138,43 +120,38 @@ $a->strings["Temporary failure. Please wait and try again."] = "Temporary failur
$a->strings["Introduction failed or was revoked."] = "Introduction failed or was revoked.";
$a->strings['Unable to set contact photo.'] = 'Unable to set contact photo.';
$a->strings['is now friends with'] = 'is now friends with';
$a->strings['No user record found for '] = 'No user record found for ';
$a->strings['Our site encryption key is apparently messed up.'] = 'Our site encryption key is apparently messed up.';
$a->strings['Empty site URL was provided or URL could not be decrypted by us.'] = 'Empty site URL was provided or URL could not be decrypted by us.';
$a->strings['Contact record was not found for you on our site.'] = 'Contact record was not found for you on our site.';
$a->strings['The ID provided by your system is a duplicate on our system. It should work if you try again.'] = 'The ID provided by your system is a duplicate on our system. It should work if you try again.';
$a->strings['Unable to set your contact credentials on our system.'] = 'Unable to set your contact credentials on our system.';
$a->strings['Unable to update your contact profile details on our system'] = 'Unable to update your contact profile details on our system';
$a->strings["Connection accepted at "] = "Connection accepted at ";
$a->strings['Administrator'] = 'Administrator';
$a->strings['noreply'] = 'noreply';
$a->strings[' commented on an item at '] = ' commented on an item at ';
$a->strings[" commented on an item at "] = " commented on an item at ";
$a->strings[' welcomes '] = ' welcomes ';
$a->strings["%s commented on an item at %s"] = "%s commented on an item at %s";
$a->strings["From: Administrator@"] = "From: Administrator@";
$a->strings['%s welcomes %s'] = '%s welcomes %s';
$a->strings["This introduction has already been accepted."] = "This introduction has already been accepted.";
$a->strings['Profile location is not valid or does not contain profile information.'] = 'Profile location is not valid or does not contain profile information.';
$a->strings['Warning: profile location has no identifiable owner name.'] = 'Warning: profile location has no identifiable owner name.';
$a->strings['Warning: profile location has no profile photo.'] = 'Warning: profile location has no profile photo.';
$a->strings[' required parameter'] = ' required parameter';
$a->strings[" was "] = " was ";
$a->strings["s were "] = "s were ";
$a->strings["not found at the given location."] = "not found at the given location.";
$a->strings["Introduction complete."] = "Introduction complete.";
$a->strings['Unrecoverable protocol error.'] = 'Unrecoverable protocol error.';
$a->strings['Profile unavailable.'] = 'Profile unavailable.';
$a->strings[' has received too many connection requests today.'] = ' has received too many connection requests today.';
$a->strings['%s has received too many connection requests today.'] = '%s has received too many connection requests today.';
$a->strings['Spam protection measures have been invoked.'] = 'Spam protection measures have been invoked.';
$a->strings['Friends are advised to please try again in 24 hours.'] = 'Friends are advised to please try again in 24 hours.';
$a->strings["Invalid locator"] = "Invalid locator";
$a->strings["Unable to resolve your name at the provided location."] = "Unable to resolve your name at the provided location.";
$a->strings['You have already introduced yourself here.'] = 'You have already introduced yourself here.';
$a->strings['Apparently you are already friends with .'] = 'Apparently you are already friends with .';
$a->strings['Apparently you are already friends with %s.'] = 'Apparently you are already friends with %s.';
$a->strings['Invalid profile URL.'] = 'Invalid profile URL.';
$a->strings['Disallowed profile URL.'] = 'Disallowed profile URL.';
$a->strings['Your introduction has been sent.'] = 'Your introduction has been sent.';
$a->strings["Please login to confirm introduction."] = "Please login to confirm introduction.";
$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Incorrect identity currently logged in. Please login to <strong>this</strong> profile.";
$a->strings['[Name Withheld]'] = '[Name Withheld]';
$a->strings["Introduction received at "] = "Introduction received at ";
$a->strings['Friend/Connection Request'] = 'Friend/Connection Request';
$a->strings['Please answer the following:'] = 'Please answer the following:';
$a->strings['Does $name know you?'] = 'Does $name know you?';
@ -189,11 +166,16 @@ $a->strings["Public \x28insecure\x29 network"] = "Public \x28insecure\x29 networ
$a->strings['Your profile address:'] = 'Your profile address:';
$a->strings['Submit Request'] = 'Submit Request';
$a->strings['Cancel'] = 'Cancel';
$a->strings["%d required parameter was not found at the given location"] = array(
0 => "%d required parameter was not found at the given location",
1 => "%d required parameters were not found at the given location",
);
$a->strings['Global Directory'] = 'Global Directory';
$a->strings['Item not found.'] = 'Item not found.';
$a->strings['Private Message'] = 'Private Message';
$a->strings["I like this \x28toggle\x29"] = "I like this \x28toggle\x29";
$a->strings["I don't like this \x28toggle\x29"] = "I don't like this \x28toggle\x29";
$a->strings['Please wait'] = 'Please wait';
$a->strings['This is you'] = 'This is you';
$a->strings['Delete'] = 'Delete';
$a->strings['View $name\'s profile'] = 'View $name\'s profile';
@ -203,8 +185,6 @@ $a->strings['Wall-to-Wall'] = 'Wall-to-Wall';
$a->strings['via Wall-To-Wall:'] = 'via Wall-To-Wall:';
$a->strings['Item has been removed.'] = 'Item has been removed.';
$a->strings['Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.'] = 'Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.';
$a->strings['CC: email addresses'] = 'CC: email addresses';
$a->strings['Example: bob@example.com, mary@example.com'] = 'Example: bob@example.com, mary@example.com';
$a->strings['The profile address specified does not provide adequate information.'] = 'The profile address specified does not provide adequate information.';
$a->strings['Limited profile. This person will be unable to receive direct/personal notifications from you.'] = 'Limited profile. This person will be unable to receive direct/personal notifications from you.';
$a->strings['Unable to retrieve contact information.'] = 'Unable to retrieve contact information.';
@ -216,7 +196,7 @@ $a->strings['Group name changed.'] = 'Group name changed.';
$a->strings['Membership list updated.'] = 'Membership list updated.';
$a->strings['Group removed.'] = 'Group removed.';
$a->strings['Unable to remove group.'] = 'Unable to remove group.';
$a->strings["Welcome to "] = "Welcome to ";
$a->strings["Welcome to %s"] = "Welcome to %s";
$a->strings['Could not create/connect to database.'] = 'Could not create/connect to database.';
$a->strings['Connected to database.'] = 'Connected to database.';
$a->strings['Database import succeeded.'] = 'Database import succeeded.';
@ -243,38 +223,60 @@ $a->strings['Please check with your site documentation or support people to see
$a->strings['If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.'] = 'If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.';
$a->strings['The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.'] = 'The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.';
$a->strings['Errors encountered creating database tables.'] = 'Errors encountered creating database tables.';
$a->strings[' : '] = ' : ';
$a->strings['Not a valid email address.'] = 'Not a valid email address.';
$a->strings['Please join my network on '] = 'Please join my network on ';
$a->strings['Message delivery failed.'] = 'Message delivery failed.';
$a->strings[' messages sent.'] = ' messages sent.';
$a->strings['%s : Not a valid email address.'] = '%s : Not a valid email address.';
$a->strings['%s : Message delivery failed.'] = '%s : Message delivery failed.';
$a->strings['Send invitations'] = 'Send invitations';
$a->strings['Enter email addresses, one per line:'] = 'Enter email addresses, one per line:';
$a->strings['Please join my social network on '] = 'Please join my social network on ';
$a->strings['Your message:'] = 'Your message:';
$a->strings['To accept this invitation, please visit:'] = 'To accept this invitation, please visit:';
$a->strings['Once you have registered, please connect with me via my profile page at:'] = 'Once you have registered, please connect with me via my profile page at:';
$a->strings["%d message sent."] = array(
0 => "%d message sent.",
1 => "%d messages sent.",
);
$a->strings['Unable to locate original post.'] = 'Unable to locate original post.';
$a->strings['Empty post discarded.'] = 'Empty post discarded.';
$a->strings[" commented on your item at "] = " commented on your item at ";
$a->strings[" posted on your profile wall at "] = " posted on your profile wall at ";
$a->strings['Wall Photos'] = 'Wall Photos';
$a->strings["%s commented on your item at %s"] = "%s commented on your item at %s";
$a->strings["Administrator"] = "Administrator";
$a->strings["%s posted on your profile wall at %s"] = "%s posted on your profile wall at %s";
$a->strings["Administrator@"] = "Administrator@";
$a->strings['System error. Post not saved.'] = 'System error. Post not saved.';
$a->strings['This message was sent to you by '] = 'This message was sent to you by ';
$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.';
$a->strings['You may visit them online at'] = 'You may visit them online at';
$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.';
$a->strings['posted an update.'] = 'posted an update.';
$a->strings['%s posted an update.'] = '%s posted an update.';
$a->strings['photo'] = 'photo';
$a->strings['status'] = 'status';
$a->strings['likes'] = 'likes';
$a->strings['doesn\'t like'] = 'doesn\'t like';
$a->strings['\'s'] = '\'s';
$a->strings["%s's"] = "%s's";
$a->strings['Remote privacy information not available.'] = 'Remote privacy information not available.';
$a->strings['Visible to:'] = 'Visible to:';
$a->strings['Password reset requested at '] = 'Password reset requested at ';
$a->strings["Welcome back "] = "Welcome back ";
$a->strings["Welcome back %s"] = "Welcome back %s";
$a->strings['Manage Identities and/or Pages'] = 'Manage Identities and/or Pages';
$a->strings["\x28Toggle between different identities or community/group pages which share your account details.\x29"] = "\x28Toggle between different identities or community/group pages which share your account details.\x29";
$a->strings['Select an identity to manage: '] = 'Select an identity to manage: ';
$a->strings['No recipient selected.'] = 'No recipient selected.';
$a->strings['[no subject]'] = '[no subject]';
$a->strings['Unable to locate contact information.'] = 'Unable to locate contact information.';
$a->strings['Message sent.'] = 'Message sent.';
$a->strings['Message could not be sent.'] = 'Message could not be sent.';
$a->strings['Messages'] = 'Messages';
$a->strings['Inbox'] = 'Inbox';
$a->strings['Outbox'] = 'Outbox';
$a->strings['New Message'] = 'New Message';
$a->strings['Message deleted.'] = 'Message deleted.';
$a->strings['Conversation removed.'] = 'Conversation removed.';
$a->strings['Send Private Message'] = 'Send Private Message';
$a->strings['To:'] = 'To:';
$a->strings['Subject:'] = 'Subject:';
$a->strings['Upload photo'] = 'Upload photo';
$a->strings['Insert web link'] = 'Insert web link';
$a->strings['No messages.'] = 'No messages.';
$a->strings['Delete conversation'] = 'Delete conversation';
$a->strings['Message not available.'] = 'Message not available.';
$a->strings['Delete message'] = 'Delete message';
$a->strings['Send Reply'] = 'Send Reply';
$a->strings['Normal View'] = 'Normal View';
$a->strings['New Item View'] = 'New Item View';
$a->strings['Share'] = 'Share';
@ -282,6 +284,8 @@ $a->strings['Insert YouTube video'] = 'Insert YouTube video';
$a->strings['Set your location'] = 'Set your location';
$a->strings['Clear browser location'] = 'Clear browser location';
$a->strings['Permission settings'] = 'Permission settings';
$a->strings['CC: email addresses'] = 'CC: email addresses';
$a->strings['Example: bob@example.com, mary@example.com'] = 'Example: bob@example.com, mary@example.com';
$a->strings['No such group'] = 'No such group';
$a->strings['Group is empty'] = 'Group is empty';
$a->strings['Group: '] = 'Group: ';
@ -304,6 +308,7 @@ $a->strings['Approve'] = 'Approve';
$a->strings['No notifications.'] = 'No notifications.';
$a->strings['No registrations.'] = 'No registrations.';
$a->strings['Login failed.'] = 'Login failed.';
$a->strings["Welcome back "] = "Welcome back ";
$a->strings['Photo Albums'] = 'Photo Albums';
$a->strings['Contact Photos'] = 'Contact Photos';
$a->strings['Contact information unavailable'] = 'Contact information unavailable';
@ -336,12 +341,8 @@ $a->strings['Recent Photos'] = 'Recent Photos';
$a->strings['Upload New Photos'] = 'Upload New Photos';
$a->strings['View Album'] = 'View Album';
$a->strings['Image uploaded but image cropping failed.'] = 'Image uploaded but image cropping failed.';
$a->strings['Image size reduction [175] failed.'] = 'Image size reduction [175] failed.';
$a->strings['Image size reduction [80] failed.'] = 'Image size reduction [80] failed.';
$a->strings['Image size reduction [48] failed.'] = 'Image size reduction [48] failed.';
$a->strings['Unable to process image'] = 'Unable to process image';
$a->strings['Image uploaded successfully.'] = 'Image uploaded successfully.';
$a->strings['Image size reduction [640] failed.'] = 'Image size reduction [640] failed.';
$a->strings['Profile Name is required.'] = 'Profile Name is required.';
$a->strings['Profile updated.'] = 'Profile updated.';
$a->strings['Profile deleted.'] = 'Profile deleted.';
@ -357,17 +358,16 @@ $a->strings['Please use a shorter name.'] = 'Please use a shorter name.';
$a->strings['Name too short.'] = 'Name too short.';
$a->strings["That doesn\'t appear to be your full \x28First Last\x29 name."] = "That doesn\'t appear to be your full \x28First Last\x29 name.";
$a->strings['Your email domain is not among those allowed on this site.'] = 'Your email domain is not among those allowed on this site.';
$a->strings['Not a valid email address.'] = 'Not a valid email address.';
$a->strings['Cannot use that email.'] = 'Cannot use that email.';
$a->strings['Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.'] = 'Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.';
$a->strings['Nickname is already registered. Please choose another.'] = 'Nickname is already registered. Please choose another.';
$a->strings['SERIOUS ERROR: Generation of security keys failed.'] = 'SERIOUS ERROR: Generation of security keys failed.';
$a->strings['An error occurred during registration. Please try again.'] = 'An error occurred during registration. Please try again.';
$a->strings['An error occurred creating your default profile. Please try again.'] = 'An error occurred creating your default profile. Please try again.';
$a->strings['Registration details for '] = 'Registration details for ';
$a->strings['Registration successful. Please check your email for further instructions.'] = 'Registration successful. Please check your email for further instructions.';
$a->strings['Failed to send email message. Here is the message that failed.'] = 'Failed to send email message. Here is the message that failed.';
$a->strings['Your registration can not be processed.'] = 'Your registration can not be processed.';
$a->strings['Registration request at '] = 'Registration request at ';
$a->strings['Your registration is pending approval by the site owner.'] = 'Your registration is pending approval by the site owner.';
$a->strings["You may \x28optionally\x29 fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "You may \x28optionally\x29 fill in this form via OpenID by supplying your OpenID and clicking 'Register'.";
$a->strings['If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.'] = 'If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.';
@ -380,7 +380,6 @@ $a->strings['Your Email Address: '] = 'Your Email Address: ';
$a->strings['Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.'] = 'Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.';
$a->strings['Choose a nickname: '] = 'Choose a nickname: ';
$a->strings['Please login.'] = 'Please login.';
$a->strings['Registration revoked for '] = 'Registration revoked for ';
$a->strings['Account approved.'] = 'Account approved.';
$a->strings['Remove My Account'] = 'Remove My Account';
$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'This will completely remove your account. Once this has been done it is not recoverable.';
@ -509,6 +508,7 @@ $a->strings['Facebook API key is missing.'] = 'Facebook API key is missing.';
$a->strings['Facebook Connect'] = 'Facebook Connect';
$a->strings['Install Facebook post connector'] = 'Install Facebook post connector';
$a->strings['Remove Facebook post connector'] = 'Remove Facebook post connector';
$a->strings['Post to Facebook by default'] = 'Post to Facebook by default';
$a->strings['Facebook'] = 'Facebook';
$a->strings['Facebook Connector Settings'] = 'Facebook Connector Settings';
$a->strings['Post to Facebook'] = 'Post to Facebook';
@ -623,9 +623,7 @@ $a->strings['America/Argentina/Jujuy'] = 'America/Argentina/Jujuy';
$a->strings['America/Argentina/La_Rioja'] = 'America/Argentina/La_Rioja';
$a->strings['America/Argentina/Mendoza'] = 'America/Argentina/Mendoza';
$a->strings['America/Argentina/Rio_Gallegos'] = 'America/Argentina/Rio_Gallegos';
$a->strings['America/Argentina/Salta'] = 'America/Argentina/Salta';
$a->strings['America/Argentina/San_Juan'] = 'America/Argentina/San_Juan';
$a->strings['America/Argentina/San_Luis'] = 'America/Argentina/San_Luis';
$a->strings['America/Argentina/Tucuman'] = 'America/Argentina/Tucuman';
$a->strings['America/Argentina/Ushuaia'] = 'America/Argentina/Ushuaia';
$a->strings['America/Aruba'] = 'America/Aruba';
@ -703,9 +701,7 @@ $a->strings['America/Louisville'] = 'America/Louisville';
$a->strings['America/Maceio'] = 'America/Maceio';
$a->strings['America/Managua'] = 'America/Managua';
$a->strings['America/Manaus'] = 'America/Manaus';
$a->strings['America/Marigot'] = 'America/Marigot';
$a->strings['America/Martinique'] = 'America/Martinique';
$a->strings['America/Matamoros'] = 'America/Matamoros';
$a->strings['America/Mazatlan'] = 'America/Mazatlan';
$a->strings['America/Mendoza'] = 'America/Mendoza';
$a->strings['America/Menominee'] = 'America/Menominee';
@ -724,7 +720,6 @@ $a->strings['America/Nome'] = 'America/Nome';
$a->strings['America/Noronha'] = 'America/Noronha';
$a->strings['America/North_Dakota/Center'] = 'America/North_Dakota/Center';
$a->strings['America/North_Dakota/New_Salem'] = 'America/North_Dakota/New_Salem';
$a->strings['America/Ojinaga'] = 'America/Ojinaga';
$a->strings['America/Panama'] = 'America/Panama';
$a->strings['America/Pangnirtung'] = 'America/Pangnirtung';
$a->strings['America/Paramaribo'] = 'America/Paramaribo';
@ -741,14 +736,11 @@ $a->strings['America/Regina'] = 'America/Regina';
$a->strings['America/Resolute'] = 'America/Resolute';
$a->strings['America/Rio_Branco'] = 'America/Rio_Branco';
$a->strings['America/Rosario'] = 'America/Rosario';
$a->strings['America/Santa_Isabel'] = 'America/Santa_Isabel';
$a->strings['America/Santarem'] = 'America/Santarem';
$a->strings['America/Santiago'] = 'America/Santiago';
$a->strings['America/Santo_Domingo'] = 'America/Santo_Domingo';
$a->strings['America/Sao_Paulo'] = 'America/Sao_Paulo';
$a->strings['America/Scoresbysund'] = 'America/Scoresbysund';
$a->strings['America/Shiprock'] = 'America/Shiprock';
$a->strings['America/St_Barthelemy'] = 'America/St_Barthelemy';
$a->strings['America/St_Johns'] = 'America/St_Johns';
$a->strings['America/St_Kitts'] = 'America/St_Kitts';
$a->strings['America/St_Lucia'] = 'America/St_Lucia';
@ -770,7 +762,6 @@ $a->strings['America/Yellowknife'] = 'America/Yellowknife';
$a->strings['Antarctica/Casey'] = 'Antarctica/Casey';
$a->strings['Antarctica/Davis'] = 'Antarctica/Davis';
$a->strings['Antarctica/DumontDUrville'] = 'Antarctica/DumontDUrville';
$a->strings['Antarctica/Macquarie'] = 'Antarctica/Macquarie';
$a->strings['Antarctica/Mawson'] = 'Antarctica/Mawson';
$a->strings['Antarctica/McMurdo'] = 'Antarctica/McMurdo';
$a->strings['Antarctica/Palmer'] = 'Antarctica/Palmer';
@ -807,7 +798,6 @@ $a->strings['Asia/Dubai'] = 'Asia/Dubai';
$a->strings['Asia/Dushanbe'] = 'Asia/Dushanbe';
$a->strings['Asia/Gaza'] = 'Asia/Gaza';
$a->strings['Asia/Harbin'] = 'Asia/Harbin';
$a->strings['Asia/Ho_Chi_Minh'] = 'Asia/Ho_Chi_Minh';
$a->strings['Asia/Hong_Kong'] = 'Asia/Hong_Kong';
$a->strings['Asia/Hovd'] = 'Asia/Hovd';
$a->strings['Asia/Irkutsk'] = 'Asia/Irkutsk';
@ -819,9 +809,7 @@ $a->strings['Asia/Kabul'] = 'Asia/Kabul';
$a->strings['Asia/Kamchatka'] = 'Asia/Kamchatka';
$a->strings['Asia/Karachi'] = 'Asia/Karachi';
$a->strings['Asia/Kashgar'] = 'Asia/Kashgar';
$a->strings['Asia/Kathmandu'] = 'Asia/Kathmandu';
$a->strings['Asia/Katmandu'] = 'Asia/Katmandu';
$a->strings['Asia/Kolkata'] = 'Asia/Kolkata';
$a->strings['Asia/Krasnoyarsk'] = 'Asia/Krasnoyarsk';
$a->strings['Asia/Kuala_Lumpur'] = 'Asia/Kuala_Lumpur';
$a->strings['Asia/Kuching'] = 'Asia/Kuching';
@ -833,7 +821,6 @@ $a->strings['Asia/Makassar'] = 'Asia/Makassar';
$a->strings['Asia/Manila'] = 'Asia/Manila';
$a->strings['Asia/Muscat'] = 'Asia/Muscat';
$a->strings['Asia/Nicosia'] = 'Asia/Nicosia';
$a->strings['Asia/Novokuznetsk'] = 'Asia/Novokuznetsk';
$a->strings['Asia/Novosibirsk'] = 'Asia/Novosibirsk';
$a->strings['Asia/Omsk'] = 'Asia/Omsk';
$a->strings['Asia/Oral'] = 'Asia/Oral';

2507
view/it/messages.po Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
<img src="images/like.gif" alt="$likethis" title="$likethis" onclick="dolike($id,'like');" />
<img src="images/dislike.gif" alt="$nolike" title="$nolike" onclick="dolike($id,'dislike');" />
<img src="images/share.gif" alt="$share" title="$share" class="wall-item-share-buttons" onclick="jotShare($id);" />
<img src="images/recycle.gif" alt="$share" title="$share" class="wall-item-share-buttons" onclick="jotShare($id);" />
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>

View file

@ -69,7 +69,7 @@ $rating
</div>
<div id="contact-edit-rating-explain">
<p>
Var v&auml;nlig &auml;gna en liten stund &aring;t att fylla i n&aring;got som du k&auml;nner kan vara till hj&auml;lp f&ouml;r andra.
Var v&auml;nlig spendera tid p&aring; att fylla i n&aring;got h&auml;r om du k&auml;nner att det kan vara till n&aring;gon hj&auml;lp f&ouml;r andra.
</p>
<textarea id="contact-edit-rating-text" name="reason" rows="3" cols="64" >$reason</textarea>
</div>

57
view/sv/cropbody.tpl Normal file
View file

@ -0,0 +1,57 @@
<h1>Crop Image</h1>
<p id="cropimage-desc">
Please adjust the image cropping for optimum viewing.
</p>
<div id="cropimage-wrapper">
<img src="$image_url" id="croppa" class="imgCrop" alt="" />
</div>
<div id="cropimage-preview-wrapper" >
<div id="previewWrap" ></div>
</div>
<script type="text/javascript" language="javascript">
function onEndCrop( coords, dimensions ) {
$( 'x1' ).value = coords.x1;
$( 'y1' ).value = coords.y1;
$( 'x2' ).value = coords.x2;
$( 'y2' ).value = coords.y2;
$( 'width' ).value = dimensions.width;
$( 'height' ).value = dimensions.height;
}
Event.observe( window, 'load', function() {
new Cropper.ImgWithPreview(
'croppa',
{
previewWrap: 'previewWrap',
minWidth: 175,
minHeight: 175,
maxWidth: 640,
maxHeight: 640,
ratioDim: { x: 100, y:100 },
displayOnInit: true,
onEndCrop: onEndCrop
}
);
}
);
</script>
<form action="profile_photo/$resource" id="crop-image-form" method="post" />
<input type="hidden" name="imagename" value="$hash" />
<input type="hidden" name="cropfinal" value="1" />
<input type="hidden" name="xstart" id="x1" />
<input type="hidden" name="ystart" id="y1" />
<input type="hidden" name="xfinal" id="x2" />
<input type="hidden" name="yfinal" id="y2" />
<input type="hidden" name="height" id="height" />
<input type="hidden" name="width" id="width" />
<div id="crop-image-submit-wrapper" >
<input type="submit" name="submit" value="Done Editing" />
</div>
</form>

View file

@ -0,0 +1,17 @@
<p id="dfrn-request-homecoming" >
Welcome home $username.
<br />
Please confirm your introduction to $dfrn_url.
</p>
<form id="dfrn-request-homecoming-form" action="dfrn_request/$nickname" method="post">
<input type="hidden" name="dfrn_url" value="$dfrn_url" />
<input type="hidden" name="confirm_key" value="$confirm_key" />
<input type="hidden" name="localconfirm" value="1" />
$aes_allow
<div id="dfrn-request-homecoming-submit-wrapper" >
<input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="Confirm" />
</div>
</form>

View file

@ -0,0 +1,14 @@
<h1>Site Directory</h1>
$globaldir
$finding
<div id="directory-search-wrapper">
<form id="directory-search-form" action="directory" method="get" >
<input type="text" name="search" id="directory-search" class="search-input" onfocus="this.select();" value="$search" />
<input type="submit" name="submit" id="directory-search-submit" value="Find" />
</form>
</div>
<div id="directory-search-end"></div>

View file

@ -0,0 +1,14 @@
Dear $myname,
You have a new follower at $sitename - '$requestor'.
You may visit their profile at $url.
Please login to your site to approve or ignore/cancel the request.
$siteurl
Regards,
$sitename administrator

View file

@ -0,0 +1,22 @@
Dear $username,
Great news... '$fn' at '$dfrn_url' has accepted
your connection request at '$sitename'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
Please visit your 'Contacts' page at $sitename if you wish to make
any changes to this relationship.
$siteurl
[For instance, you may create a separate profile with information that is not
available to the general public - and assign viewing rights to '$fn'].
Sincerely,
$sitename Administrator

24
view/sv/group_edit.tpl Normal file
View file

@ -0,0 +1,24 @@
<h2>Group Editor</h2>
<div id="group-edit-wrapper" >
<form action="group/$gid" id="group-edit-form" method="post" >
<div id="group-edit-name-wrapper" >
<label id="group-edit-name-label" for="group-edit-name" >Group Name: </label>
<input type="text" id="group-edit-name" name="groupname" value="$name" />
</div>
<div id="group-edit-name-end"></div>
<div id="group-edit-select-wrapper" >
<label id="group_members_select_label" for="group_members_select" >Members:</label>
$selector
</div>
$drop
<div id="group_members_select_end"></div>
<div id="group-edit-submit-wrapper" >
<input type="submit" name="submit" value="Submit" >
</div>
<div id="group-edit-select-end" ></div>
</form>
</div>

23
view/sv/group_new.tpl Normal file
View file

@ -0,0 +1,23 @@
<div id="group-new-wrapper" >
<form action="group/new" method="post">
<div id="group-new-text">
<p>
Create a group of contacts/friends.
<div id="group-new-input-wrapper">
<label id="group-new-label" for="group-new-name" >Group Name: </label>
<input name="groupname" id="group-new-name" />
</div>
<div id="group-new-input-end" ></div>
<div id="group-new-submit-wrapper" >
<input type="submit" name="submit" value="Submit" />
</form>
</div>
<div id="group-new-end"></div>

32
view/sv/head.tpl Normal file
View file

@ -0,0 +1,32 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<base href="$baseurl" />
<meta name="generator" content="$generator" />
<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
<link rel="shortcut icon" href="$baseurl/images/friendika-32.png" />
<!--[if IE]>
<script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="$baseurl/include/jquery.js" ></script>
<script type="text/javascript" src="$baseurl/include/main.js" ></script>
<script>
function confirmDelete() { return confirm("Delete this item?"); }
function commentOpen(obj,id) {
if(obj.value == 'Comment') {
obj.value = '';
obj.className = "comment-edit-text-full";
openMenu("comment-edit-submit-wrapper-" + id);
}
}
function commentClose(obj,id) {
if(obj.value == '') {
obj.value = 'Comment';
obj.className="comment-edit-text-empty";
closeMenu("comment-edit-submit-wrapper-" + id);
}
}
</script>

74
view/sv/htconfig.tpl Normal file
View file

@ -0,0 +1,74 @@
<?php
// Set the following for your MySQL installation
// Copy or rename this file to .htconfig.php
$db_host = '$dbhost';
$db_user = '$dbuser';
$db_pass = '$dbpass';
$db_data = '$dbdata';
// If you are using a subdirectory of your domain you will need to put the
// relative path (from the root of your domain) here.
// For instance if your URL is 'http://example.com/directory/subdirectory',
// set $a->path to 'directory/subdirectory'.
$a->path = '$urlpath';
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers.
$default_timezone = '$timezone';
// What is your site name?
$a->config['sitename'] = "My Friend Network";
// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
// Be certain to create your own personal account before setting
// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
// the registration page. REGISTER_APPROVE requires you set 'admin_email'
// to the email address of an already registered person who can authorise
// and/or approve/deny the request.
$a->config['register_policy'] = REGISTER_OPEN;
$a->config['register_text'] = '';
$a->config['admin_email'] = '';
// Maximum size of an imported message, 0 is unlimited
$a->config['max_import_size'] = 10000;
// maximum size of uploaded photos
$a->config['system']['maximagesize'] = 800000;
// Location of PHP command line processor
$a->config['php_path'] = '$phpath';
// Location of global directory submission page.
$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit';
$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search=';
// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
// Server-to-server private message encryption (RINO) is allowed by default.
// Encryption will only be provided if this setting is true and the
// PHP mcrypt extension is installed on both systems
$a->config['system']['rino_encrypt'] = true;
// default system theme
$a->config['system']['theme'] = 'duepuntozero';
// Addons or plugins are configured here.
// This is a comma seperated list of addons to enable. Example:
// $a->config['system']['addon'] = 'js_upload,randplace,oembed';
$a->config['system']['addon'] = 'js_upload';

6
view/sv/insecure_net.tpl Normal file
View file

@ -0,0 +1,6 @@
<div id="profile-edit-insecure">
<p>
The social network that $name belongs to is an open network with limited or non-existent privacy controls.
Please use appropriate discretion.
</p>
</div>

40
view/sv/install_db.tpl Normal file
View file

@ -0,0 +1,40 @@
<h3>Friendika Social Network</h3>
<h3>Installation</h3>
<p>
In order to install Friendika we need to know how to contact your database. Please contact your hosting provider or site administrator if you have questions about these settings. The database you specify below must already exist. If it does not, please create it before continuing.
</p>
<form id="install-form" action="$baseurl/install" method="post">
<input type="hidden" name="phpath" value="$phpath" />
<label for="install-dbhost" id="install-dbhost-label">Database Server Name</label>
<input type="text" name="dbhost" id="install-dbhost" value="$dbhost" />
<div id="install-dbhost-end"></div>
<label for="install-dbuser" id="install-dbuser-label">Database Login Name</label>
<input type="text" name="dbuser" id="install-dbuser" value="$dbuser" />
<div id="install-dbuser-end"></div>
<label for="install-dbpass" id="install-dbpass-label">Database Login Password</label>
<input type="password" name="dbpass" id="install-dbpass" value="$dbpass" />
<div id="install-dbpass-end"></div>
<label for="install-dbdata" id="install-dbdata-label">Database Name</label>
<input type="text" name="dbdata" id="install-dbdata" value="$dbdata" />
<div id="install-dbdata-end"></div>
<div id="install-tz-desc">
Please select a default timezone for your website
</div>
$tzselect
<div id="install-tz-end" ></div>
<input id="install-submit" type="submit" name="submit" value="$submit" />
</form>
<div id="install-end" ></div>

View file

@ -0,0 +1,22 @@
Dear $username,
'$fn' at '$dfrn_url' has accepted
your connection request at '$sitename'.
'$fn' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
'$fn' may choose to extend this into a two-way or more permissive
relationship in the future.
You will start receiving public status updates from '$fn',
which will appear on your 'Network' page at
$siteurl
Sincerely,
$sitename Administrator

7
view/sv/intros-top.tpl Normal file
View file

@ -0,0 +1,7 @@
<h1>Pending Friend/Connect Notifications</h1>
<div id="notification-show-hide-wrapper" >
<a href="$hide_url" id="notification-show-hide-link">$hide_text</a>
</div>

172
view/sv/jot-header.tpl Normal file
View file

@ -0,0 +1,172 @@
<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
var editor;
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
var text = txt.length;
if(txt.length <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((txt.length > 140) && (txt .length <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(txt.length > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(text);
});
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
});
}
});
</script>
<script type="text/javascript" src="include/ajaxupload.js" ></script>
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
'wall-image-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
tinyMCE.execCommand('mceInsertRawHTML',false,response);
$('#profile-rotator').hide();
}
}
);
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#profile-jot-perms img').attr('src', 'images/lock_icon.gif');
$('.profile-jot-net input').attr('disabled', 'disabled');
});
if(selstr == null) {
$('#profile-jot-perms img').attr('src', 'images/unlock_icon.gif');
$('.profile-jot-net input').attr('disabled', false);
}
}).trigger('change');
});
function jotGetLink() {
reply = prompt("Please enter a link URL:");
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
function jotGetVideo() {
reply = prompt("Please enter a YouTube link:");
if(reply && reply.length) {
tinyMCE.execCommand('mceInsertRawHTML',false,'[youtube]' + reply + '[/youtube]');
}
}
function jotGetVideo() {
reply = prompt("Please enter a YouTube link:");
if(reply && reply.length) {
tinyMCE.execCommand('mceInsertRawHTML',false,'[youtube]' + reply + '[/youtube]');
}
}
function jotVideoURL() {
reply = prompt("Please enter a video(.ogg) link/URL:");
if(reply && reply.length) {
tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]');
}
}
function jotAudioURL() {
reply = prompt("Please enter an audio(.ogg) link/URL:");
if(reply && reply.length) {
tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]');
}
}
function jotGetLocation() {
reply = prompt("Where are you right now?", $('#jot-location').val());
if(reply && reply.length) {
$('#jot-location').val(reply);
}
}
function jotShare(id) {
$('#like-rotator-' + id).show();
$.get('share/' + id, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#like-rotator-' + id).hide();
$(window).scrollTop(0);
});
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();
}
$geotag
</script>

18
view/sv/lostpass.tpl Normal file
View file

@ -0,0 +1,18 @@
<h3>Forgot your Password?</h3>
<p id="lostpass-desc">
Enter your email address and submit to have your password reset. Then check your email for further instructions.
</p>
<form action="lostpass" method="post" >
<div id="login-name-wrapper">
<label for="login-name" id="label-login-name">Nickname or Email: </label>
<input type="text" maxlength="60" name="login-name" id="login-name" value="" />
</div>
<div id="login-extra-end"></div>
<div id="login-submit-wrapper" >
<input type="submit" name="submit" id="lostpass-submit-button" value="Reset" />
</div>
<div id="login-submit-end"></div>
</form>

32
view/sv/lostpass_eml.tpl Normal file
View file

@ -0,0 +1,32 @@
Dear $username,
A request was recently received at $sitename to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
If you did NOT request this change, please DO NOT follow the link
provided and ignore and/or delete this email.
Your password will not be changed unless we can verify that you
issued this request.
Follow this link to verify your identity:
$reset_link
You will then receive a follow-up message containing the new password.
You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: $siteurl
Login Name: $email
Sincerely,
$sitename Administrator

View file

@ -0,0 +1,25 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
<html>
<head>
<title>Friendika Message</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<table style="border:1px solid #ccc">
<tbody>
<tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
<tr><td style="padding-top:22px;" colspan="2">$from sent you a new private message at $siteName.</td></tr>
<tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
<td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
<tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
<tr><td style="padding-right:22px;">$htmlversion</td></tr>
<tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Please login at <a href="$siteurl">$siteurl</a> to read and reply to your private messages.</td></tr>
<tr><td></td><td>Thank You,</td></tr>
<tr><td></td><td>$siteName Administrator</td></tr>
</tbody>
</table>
</body>
</html>

View file

@ -0,0 +1,10 @@
$from sent you a new private message at $siteName.
$title
$textversion
Please login at $siteurl to read and reply to your private messages.
Thank you,
$siteName administrator

104
view/sv/msg-header.tpl Normal file
View file

@ -0,0 +1,104 @@
<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
var text = txt.length;
if(txt.length <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((txt.length > 140) && (txt .length <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(txt.length > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(text);
});
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
});
}
});
</script>
<script type="text/javascript" src="include/ajaxupload.js" ></script>
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
'prvmail-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
tinyMCE.execCommand('mceInsertRawHTML',false,response);
$('#profile-rotator').hide();
}
}
);
});
function jotGetLink() {
reply = prompt("Please enter a link URL:");
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
$('#profile-rotator').show();
$.get('parse_url?url=' + reply, function(data) {
tinyMCE.execCommand('mceInsertRawHTML',false,data);
$('#profile-rotator').hide();
});
}
}
</script>

25
view/sv/pagetypes.tpl Normal file
View file

@ -0,0 +1,25 @@
<div id="settings-normal-wrapper">
<label id="settings-normal-label" for="settings-normal">Normal Profile</label>
<input type="radio" name="page-flags" id="settings-normal" $normal_selected value="$page_normal" />
<span id="settings-normal-desc">This account is a normal personal profile</span>
</div>
<div id="settings-normal-break" ></div>
<div id="settings-soapbox-wrapper">
<label id="settings-soapbox-label" for="settings-soapbox">Soapbox Profile</label>
<input type="radio" name="page-flags" id="settings-soapbox" $soapbox_selected value="$page_soapbox" />
<span id="settings-soapbox-desc">Automatically approve all connection/friend requests as read-only fans</span>
</div>
<div id="settings-soapbox-break" ></div>
<div id="settings-community-wrapper">
<label id="settings-community-label" for="settings-community">Community/Celebrity Profile</label>
<input type="radio" name="page-flags" id="settings-community" $community_selected value="$page_community" />
<span id="settings-community-desc">Automatically approve all connection/friend requests as read-write fans</span>
</div>
<div id="settings-community-break" ></div>
<div id="settings-freelove-wrapper">
<label id="settings-freelove-label" for="settings-freelove">Automatic Friend Profile</label>
<input type="radio" name="page-flags" id="settings-freelove" $freelove_selected value="$page_freelove" />
<span id="settings-freelove-desc">Automatically approve all connection/friend requests as friends</span>
</div>
<div id="settings-freelove-break" ></div>

View file

@ -0,0 +1,20 @@
Dear $username,
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
Your login details are as follows:
Site Location: $siteurl
Login Name: $email
Password: $new_password
You may change that password from your account settings page after logging in.
Sincerely,
$sitename Administrator

View file

@ -0,0 +1,16 @@
<p id="hide-friends-text">
Hide my contact/friend list from viewers of this profile?
</p>
<div id="hide-friends-yes-wrapper">
<label id="hide-friends-yes-label" for="hide-friends-yes">Yes</label>
<input type="radio" name="hide-friends" id="hide-friends-yes" $yes_selected value="1" />
<div id="hide-friends-break" ></div>
</div>
<div id="hide-friends-no-wrapper">
<label id="hide-friends-no-label" for="hide-friends-no">No</label>
<input type="radio" name="hide-friends" id="hide-friends-no" $no_selected value="0" />
<div id="hide-friends-end"></div>
</div>

View file

@ -0,0 +1,16 @@
<p id="profile-in-directory">
Publish your default profile in site directory?
</p>
<div id="profile-in-dir-yes-wrapper">
<label id="profile-in-dir-yes-label" for="profile-in-dir-yes">Yes</label>
<input type="radio" name="profile_in_directory" id="profile-in-dir-yes" $yes_selected value="1" />
<div id="profile-in-dir-break" ></div>
</div>
<div id="profile-in-dir-no-wrapper">
<label id="profile-in-dir-no-label" for="profile-in-dir-no">No</label>
<input type="radio" name="profile_in_directory" id="profile-in-dir-no" $no_selected value="0" />
<div id="profile-in-dir-end"></div>
</div>

View file

@ -0,0 +1,16 @@
<p id="profile-in-directory">
Publish your default profile in global social directory?
</p>
<div id="profile-in-netdir-yes-wrapper">
<label id="profile-in-netdir-yes-label" for="profile-in-netdir-yes">Yes</label>
<input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-yes" $yes_selected value="1" />
<div id="profile-in-netdir-break" ></div>
</div>
<div id="profile-in-netdir-no-wrapper">
<label id="profile-in-netdir-no-label" for="profile-in-netdir-no">No</label>
<input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-no" $no_selected value="0" />
<div id="profile-in-netdir-end"></div>
</div>

72
view/sv/profile.php Normal file
View file

@ -0,0 +1,72 @@
<!DOCTYPE html ><?php // This is a perfect example of why I prefer to use template files rather than mixed PHP/HTML ?>
<html>
<head>
<title><?php if(x($page,'title')) echo $page['title']; ?></title>
<?php if(x($page,'htmlhead')) echo $page['htmlhead']; ?>
</head>
<body>
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
<nav><div id="top-margin"></div><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
<aside>
<?php if((is_array($profile)) && count($profile)) { ?>
<div class="vcard">
<?php if(strlen($profile['name'])) { ?>
<div class="fn"><?php echo $profile['name']; ?></div>
<?php } ?>
<?php if(strlen($profile['photo'])) { ?>
<div id="profile-photo-wrapper"><img class="photo" src="<?php echo $profile['photo']; ?>" alt="<?php echo $profile['name']; ?>" /></div>
<?php } ?>
<div id="profile-extra-links">
<ul>
<?php if($profile['uid'] != $_SESSION['uid']) { ?>
<li><a id="dfrn-request-link" href="dfrn_request/<?php echo $profile['nickname']; ?>">Connect</a></li>
<?php } ?>
</ul>
</div>
<?php if ( (strlen($profile['address']))
|| (strlen($profile['locality']))
|| (strlen($profile['region']))
|| (strlen($profile['postal-code']))
|| (strlen($profile['country-name']))) { ?>
<div class="location">Location:
<div class="adr">
<div class="street-address"><?php if(strlen($profile['address'])) echo $profile['address']; ?></div>
<span class="city-state-zip"><span class="locality"><?php echo $profile['locality']; ?></span><?php if(strlen($profile['locality'])) echo ', '; ?><span class="region"><?php echo $profile['region'] ?></span><?php if(strlen($profile['postal-code'])) { ?> <span class="postal-code"><?php echo $profile['postal-code']; ?></span><?php } ?></span>
<span class="country-name"><?php echo $profile['country-name']; ?></span>
</div>
</div>
<?php } ?>
<?php if(strlen($profile['gender'])) { ?>
<div class="mf">Gender: <span class="x-gender"><?php echo $profile['gender']; ?></span></div>
<?php } ?>
<?php if(strlen($profile['pubkey'])) { ?>
<div class="key" style="display: none;"><?php echo $profile['pubkey']; ?></div>
<?php } ?>
</div>
<?php } ?>
<?php if(strlen($profile['marital'])) { ?>
<div class="marital"><span class="marital-label"><span class="heart">&hearts;</span> Status: </span><span class="marital-text"><?php echo $profile['marital']; ?></span></div>
<?php } ?>
<?php if(strlen($profile['homepage'])) { ?>
<div class="homepage"><span class="homepage-label">Homepage: </span><span class="homepage-url"><?php echo linkify($profile['homepage']); ?></span></div>
<?php } ?>
<?php if(x($page,'aside')) echo $page['aside'] ?>
</aside>
<section>
<?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
</section>
<footer>
<?php if(x($page,'footer')) echo $page['footer']; ?>
</footer>
</body>
</html>

View file

@ -0,0 +1,225 @@
<?php
$o .= '';
$o .= <<< EOT
<h2>Profile</h2>
EOT;
if($a->profile['name']) {
$o .= <<< EOT
<div id="advanced-profile-name-wrapper" >
<div id="advanced-profile-name-text">Full Name:</div>
<div id="advanced-profile-name">{$a->profile['name']}</div>
</div>
<div id="advanced-profile-name-end"></div>
EOT;
}
if($a->profile['gender']) {
$o .= <<< EOT
<div id="advanced-profile-gender-wrapper" >
<div id="advanced-profile-gender-text">Gender:</div>
<div id="advanced-profile-gender">{$a->profile['gender']}</div>
</div>
<div id="advanced-profile-gender-end"></div>
EOT;
}
if(($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) {
$o .= <<< EOT
<div id="advanced-profile-dob-wrapper" >
<div id="advanced-profile-dob-text">Birthday:</div>
EOT;
// If no year, add an arbitrary one so just we can parse the month and day.
$o .= '<div id="advanced-profile-dob">'
. ((intval($a->profile['dob']))
? day_translate(datetime_convert('UTC','UTC',$a->profile['dob'] . ' 00:00 +00:00','j F, Y'))
: day_translate(datetime_convert('UTC','UTC','2001-' . substr($a->profile['dob'],6) . ' 00:00 +00:00','j F')))
. "</div>\r\n</div>";
$o .= '<div id="advanced-profile-dob-end"></div>';
}
if($age = age($a->profile['dob'],$a->profile['timezone'],'')) {
$o .= <<< EOT
<div id="advanced-profile-age-wrapper" >
<div id="advanced-profile-age-text">Age:</div>
<div id="advanced-profile-age">$age</div>
</div>
<div id="advanced-profile-age-end"></div>
EOT;
}
if($a->profile['marital']) {
$o .= <<< EOT
<div id="advanced-profile-marital-wrapper" >
<div id="advanced-profile-marital-text"><span class="heart">&hearts;</span> Status:</div>
<div id="advanced-profile-marital">{$a->profile['marital']}</div>
EOT;
if($a->profile['with'])
$o .= "<div id=\"advanced-profile-with\">({$a->profile['with']})</div>";
$o .= <<< EOT
</div>
<div id="advanced-profile-marital-end"></div>
EOT;
}
if($a->profile['sexual']) {
$o .= <<< EOT
<div id="advanced-profile-sexual-wrapper" >
<div id="advanced-profile-sexual-text">Sexual Preference:</div>
<div id="advanced-profile-sexual">{$a->profile['sexual']}</div>
</div>
<div id="advanced-profile-sexual-end"></div>
EOT;
}
if($a->profile['homepage']) {
$homepage = linkify($a->profile['homepage']);
$o .= <<< EOT
<div id="advanced-profile-homepage-wrapper" >
<div id="advanced-profile-homepage-text">Homepage:</div>
<div id="advanced-profile-homepage">$homepage</div>
</div>
<div id="advanced-profile-homepage-end"></div>
EOT;
}
if($a->profile['politic']) {
$o .= <<< EOT
<div id="advanced-profile-politic-wrapper" >
<div id="advanced-profile-politic-text">Political Views:</div>
<div id="advanced-profile-politic">{$a->profile['politic']}</div>
</div>
<div id="advanced-profile-politic-end"></div>
EOT;
}
if($a->profile['religion']) {
$o .= <<< EOT
<div id="advanced-profile-religion-wrapper" >
<div id="advanced-profile-religion-text">Religion:</div>
<div id="advanced-profile-religion">{$a->profile['religion']}</div>
</div>
<div id="advanced-profile-religion-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['about'])) {
$o .= <<< EOT
<div id="advanced-profile-about-wrapper" >
<div id="advanced-profile-about-text">About:</div>
<br />
<div id="advanced-profile-about">$txt</div>
</div>
<div id="advanced-profile-about-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['interest'])) {
$o .= <<< EOT
<div id="advanced-profile-interest-wrapper" >
<div id="advanced-profile-interest-text">Hobbies/Interests:</div>
<br />
<div id="advanced-profile-interest">$txt</div>
</div>
<div id="advanced-profile-interest-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['contact'])) {
$o .= <<< EOT
<div id="advanced-profile-contact-wrapper" >
<div id="advanced-profile-contact-text">Contact information and Social Networks:</div>
<br />
<div id="advanced-profile-contact">$txt</div>
</div>
<div id="advanced-profile-contact-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['music'])) {
$o .= <<< EOT
<div id="advanced-profile-music-wrapper" >
<div id="advanced-profile-music-text">Musical interests:</div>
<br />
<div id="advanced-profile-music">$txt</div>
</div>
<div id="advanced-profile-music-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['book'])) {
$o .= <<< EOT
<div id="advanced-profile-book-wrapper" >
<div id="advanced-profile-book-text">Books, literature:</div>
<br />
<div id="advanced-profile-book">$txt</div>
</div>
<div id="advanced-profile-book-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['tv'])) {
$o .= <<< EOT
<div id="advanced-profile-tv-wrapper" >
<div id="advanced-profile-tv-text">Television:</div>
<br />
<div id="advanced-profile-tv">$txt</div>
</div>
<div id="advanced-profile-tv-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['film'])) {
$o .= <<< EOT
<div id="advanced-profile-film-wrapper" >
<div id="advanced-profile-film-text">Film/dance/culture/entertainment:</div>
<br />
<div id="advanced-profile-film">$txt</div>
</div>
<div id="advanced-profile-film-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['romance'])) {
$o .= <<< EOT
<div id="advanced-profile-romance-wrapper" >
<div id="advanced-profile-romance-text">Love/romance:</div>
<br />
<div id="advanced-profile-romance">$txt</div>
</div>
<div id="advanced-profile-romance-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['work'])) {
$o .= <<< EOT
<div id="advanced-profile-work-wrapper" >
<div id="advanced-profile-work-text">Work/employment:</div>
<br />
<div id="advanced-profile-work">$txt</div>
</div>
<div id="advanced-profile-work-end"></div>
EOT;
}
if($txt = prepare_text($a->profile['education'])) {
$o .= <<< EOT
<div id="advanced-profile-education-wrapper" >
<div id="advanced-profile-education-text">School/education:</div>
<br />
<div id="advanced-profile-education">$txt</div>
</div>
<div id="advanced-profile-education-end"></div>
EOT;
}

299
view/sv/profile_edit.tpl Normal file
View file

@ -0,0 +1,299 @@
<h1>Edit Profile Details</h1>
<div id="profile-edit-links">
<ul>
<li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="View this profile">View this profile</a></li>
<li><a href="profiles/clone/$profile_id" id="profile-edit-clone-link" title="Create a new profile using these settings">Clone this profile</a></li>
<li></li>
<li><a href="profiles/drop/$profile_id" id="profile-edit-drop-link" title="Delete this profile" $disabled >Delete this profile</a></li>
</ul>
</div>
<div id="profile-edit-links-end"></div>
$default
<div id="profile-edit-wrapper" >
<form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" >
<div id="profile-edit-profile-name-wrapper" >
<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >Profile Name: </label>
<input type="text" size="32" name="profile_name" id="profile-edit-profile-name" value="$profile_name" /><div class="required">*</div>
</div>
<div id="profile-edit-profile-name-end"></div>
<div id="profile-edit-name-wrapper" >
<label id="profile-edit-name-label" for="profile-edit-name" >Your Full Name: </label>
<input type="text" size="32" name="name" id="profile-edit-name" value="$name" />
</div>
<div id="profile-edit-name-end"></div>
<div id="profile-edit-pdesc-wrapper" >
<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >Title/Description: </label>
<input type="text" size="32" name="pdesc" id="profile-edit-pdesc" value="$pdesc" />
</div>
<div id="profile-edit-pdesc-end"></div>
<div id="profile-edit-gender-wrapper" >
<label id="profile-edit-gender-label" for="gender-select" >Your Gender: </label>
$gender
</div>
<div id="profile-edit-gender-end"></div>
<div id="profile-edit-dob-wrapper" >
<label id="profile-edit-dob-label" for="dob-select" >Birthday (y/m/d): </label>
<div id="profile-edit-dob" >
$dob $age
</div>
</div>
<div id="profile-edit-dob-end"></div>
$hide_friends
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="profile-edit-address-wrapper" >
<label id="profile-edit-address-label" for="profile-edit-address" >Street Address: </label>
<input type="text" size="32" name="address" id="profile-edit-address" value="$address" />
</div>
<div id="profile-edit-address-end"></div>
<div id="profile-edit-locality-wrapper" >
<label id="profile-edit-locality-label" for="profile-edit-locality" >Locality/City: </label>
<input type="text" size="32" name="locality" id="profile-edit-locality" value="$locality" />
</div>
<div id="profile-edit-locality-end"></div>
<div id="profile-edit-postal-code-wrapper" >
<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >Postal/Zip Code: </label>
<input type="text" size="32" name="postal_code" id="profile-edit-postal-code" value="$postal_code" />
</div>
<div id="profile-edit-postal-code-end"></div>
<div id="profile-edit-country-name-wrapper" >
<label id="profile-edit-country-name-label" for="profile-edit-country-name" >Country: </label>
<select name="country_name" id="profile-edit-country-name" onChange="Fill_States('$region');">
<option selected="selected" >$country_name</option>
<option>temp</option>
</select>
</div>
<div id="profile-edit-country-name-end"></div>
<div id="profile-edit-region-wrapper" >
<label id="profile-edit-region-label" for="profile-edit-region" >Region/State: </label>
<select name="region" id="profile-edit-region" onChange="Update_Globals();" >
<option selected="selected" >$region</option>
<option>temp</option>
</select>
</div>
<div id="profile-edit-region-end"></div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="profile-edit-marital-wrapper" >
<label id="profile-edit-marital-label" for="profile-edit-marital" ><span class="heart">&hearts;</span> (Marital) Status: </label>
$marital
</div>
<label id="profile-edit-with-label" for="profile-edit-with" > Who: (if applicable) </label>
<input type="text" size="32" name="with" id="profile-edit-with" title="Examples: cathy123, Cathy Williams, cathy@example.com" value="$with" />
<div id="profile-edit-marital-end"></div>
<div id="profile-edit-sexual-wrapper" >
<label id="profile-edit-sexual-label" for="sexual-select" >Sexual Preference: </label>
$sexual
</div>
<div id="profile-edit-sexual-end"></div>
<div id="profile-edit-homepage-wrapper" >
<label id="profile-edit-homepage-label" for="profile-edit-homepage" >Homepage URL: </label>
<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="$homepage" />
</div>
<div id="profile-edit-homepage-end"></div>
<div id="profile-edit-politic-wrapper" >
<label id="profile-edit-politic-label" for="profile-edit-politic" >Political Views: </label>
<input type="text" size="32" name="politic" id="profile-edit-politic" value="$politic" />
</div>
<div id="profile-edit-politic-end"></div>
<div id="profile-edit-religion-wrapper" >
<label id="profile-edit-religion-label" for="profile-edit-religion" >Religion: </label>
<input type="text" size="32" name="religion" id="profile-edit-religion" value="$religion" />
</div>
<div id="profile-edit-religion-end"></div>
<div id="profile-edit-pubkeywords-wrapper" >
<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
<div id="profile-edit-pubkeywords-end"></div>
<div id="profile-edit-prvkeywords-wrapper" >
<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
<div id="profile-edit-prvkeywords-end"></div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="about-jot-wrapper" >
<p id="about-jot-desc" >
Tell us about yourself...
</p>
<textarea rows="10" cols="72" id="profile-jot-text" name="about" >$about</textarea>
</div>
<div id="about-jot-end"></div>
</div>
<div id="interest-jot-wrapper" >
<p id="interest-jot-desc" >
Hobbies/Interests
</p>
<textarea rows="10" cols="72" id="interest-jot-text" name="interest" >$interest</textarea>
</div>
<div id="interest-jot-end"></div>
</div>
<div id="contact-jot-wrapper" >
<p id="contact-jot-desc" >
Contact information and Social Networks
</p>
<textarea rows="10" cols="72" id="contact-jot-text" name="contact" >$contact</textarea>
</div>
<div id="contact-jot-end"></div>
</div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="music-jot-wrapper" >
<p id="music-jot-desc" >
Musical interests
</p>
<textarea rows="10" cols="72" id="music-jot-text" name="music" >$music</textarea>
</div>
<div id="music-jot-end"></div>
</div>
<div id="book-jot-wrapper" >
<p id="book-jot-desc" >
Books, literature
</p>
<textarea rows="10" cols="72" id="book-jot-text" name="book" >$book</textarea>
</div>
<div id="book-jot-end"></div>
</div>
<div id="tv-jot-wrapper" >
<p id="tv-jot-desc" >
Television
</p>
<textarea rows="10" cols="72" id="tv-jot-text" name="tv" >$tv</textarea>
</div>
<div id="tv-jot-end"></div>
</div>
<div id="film-jot-wrapper" >
<p id="film-jot-desc" >
Film/dance/culture/entertainment
</p>
<textarea rows="10" cols="72" id="film-jot-text" name="film" >$film</textarea>
</div>
<div id="film-jot-end"></div>
</div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
<div id="romance-jot-wrapper" >
<p id="romance-jot-desc" >
Love/romance
</p>
<textarea rows="10" cols="72" id="romance-jot-text" name="romance" >$romance</textarea>
</div>
<div id="romance-jot-end"></div>
</div>
<div id="work-jot-wrapper" >
<p id="work-jot-desc" >
Work/employment
</p>
<textarea rows="10" cols="72" id="work-jot-text" name="work" >$work</textarea>
</div>
<div id="work-jot-end"></div>
</div>
<div id="education-jot-wrapper" >
<p id="education-jot-desc" >
School/education
</p>
<textarea rows="10" cols="72" id="education-jot-text" name="education" >$education</textarea>
</div>
<div id="education-jot-end"></div>
</div>
<div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
</div>
<div class="profile-edit-submit-end"></div>
</form>
</div>
<script type="text/javascript">Fill_Country('$country_name');Fill_States('$region');</script>

View file

@ -0,0 +1,9 @@
<div class="profile-listing" >
<div class="profile-listing-photo-wrapper" >
<a href="profiles/$id" class="profile-listing-edit-link" ><img class="profile-listing-photo" id="profile-listing-photo-$id" src="$photo" alt="Profile Image" /></a>
</div>
<div class="profile-listing-photo-end" ></div>
<div class="profile-listing-name" id="profile-listing-name-$id"><a href="profiles/$id" class="profile-listing-edit-link" >$profile_name</a></div>
</div>
<div class="profile-listing-end"></div>

View file

@ -0,0 +1,8 @@
<h1>Profiles</h1>
<p id="profile-listing-desc" >
<a href="profile_photo" >Change profile photo</a>
</p>
<div id="profile-listing-new-link-wrapper" >
<a href="profiles/new" id="profile-listing-new-link" name="Create New Profile" >Create New Profile</a>
</div>

18
view/sv/profile_photo.tpl Normal file
View file

@ -0,0 +1,18 @@
<h1>Upload Profile Photo</h1>
<form enctype="multipart/form-data" action="profile_photo" method="post">
<div id="profile-photo-upload-wrapper">
<label id="profile-photo-upload-label" for="profile-photo-upload">Upload File: </label>
<input name="userfile" type="file" id="profile-photo-upload" size="48" />
</div>
<div id="profile-photo-submit-wrapper">
<input type="submit" name="submit" id="profile-photo-submit" value="Upload">
</div>
</form>
<div id="profile-photo-link-select-wrapper">
or <a href='photos/$user'>select a photo from albums</a>
</div>

7
view/sv/profile_tabs.tpl Normal file
View file

@ -0,0 +1,7 @@
<div id="profile-tabs-wrapper" >
<a href="$url" id="profile-tab-status-link" class="profile-tabs" >Status</a>
<a href="$url?tab=profile" id="profile-tab-profile-link" class="profile-tabs" >Profile</a>
<a href="$phototab" id="profile-tab-photos-link" class="profile-tabs" >Photos</a>
<div id="profile-tabs-end"></div>
</div>

16
view/sv/pwdreset.tpl Normal file
View file

@ -0,0 +1,16 @@
<h3>Password Reset</h3>
<p>
Your password has been reset as requested.
</p>
<p>
Your new password is
</p>
<p>
$newpass
</p>
<p>
Save or copy your new password - and then <a href="$baseurl" >click here to login</a>.
</p>
<p>
Your password may be changed from the 'Settings' page after successful login.

View file

@ -0,0 +1,21 @@
Dear $username,
Thank you for registering at $sitename. Your account has been created.
The login details are as follows:
Site Location: $siteurl
Login Name: $email
Password: $password
You may change your password from your account "Settings" page after logging
in.
Please take a few moments to review the other account settings on that page.
Thank you and welcome to $sitename.
Sincerely,
$sitename Administrator

View file

@ -0,0 +1,26 @@
A new user registration request was received at $sitename which requires
your approval.
The login details are as follows:
Full Name: $username
Site Location: $siteurl
Login Name: $email
To approve this request please visit the following link:
$siteurl/regmod/allow/$hash
To deny the request and remove the account, please visit:
$siteurl/regmod/deny/$hash
Thank you.

View file

@ -0,0 +1,3 @@
<h1>User registrations waiting for confirm</h1>

View file

@ -0,0 +1 @@
<li>$fullname ($email) : <a href="$approvelink">Approve</a> - <a href="$denylink">Deny</a></li>

View file

@ -0,0 +1,17 @@
Dear $myname,
You have just received a connection request at $sitename
from '$requestor'.
You may visit their profile at $url.
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
$siteurl
Regards,
$sitename administrator

168
view/sv/settings.tpl Normal file
View file

@ -0,0 +1,168 @@
<h1>Account Settings</h1>
<div id="plugin-settings-link"><a href="settings/addon">Plugin Settings</a></div>
$nickname_block
<form action="settings" id="settings-form" method="post" autocomplete="off" >
<h3 class="settings-heading">Basic Settings</h3>
<div id="settings-username-wrapper" >
<label id="settings-username-label" for="settings-username" >Full Name: </label>
<input type="text" name="username" id="settings-username" value="$username" />
</div>
<div id="settings-username-end" ></div>
<div id="settings-email-wrapper" >
<label id="settings-email-label" for="settings-email" >Email Address: </label>
<input type="text" name="email" id="settings-email" value="$email" />
</div>
<div id="settings-email-end" ></div>
<div id="settings-timezone-wrapper" >
<label id="settings-timezone-label" for="timezone_select" >Your Timezone: </label>
$zoneselect
</div>
<div id="settings-timezone-end" ></div>
<div id="settings-defloc-wrapper" >
<label id="settings-defloc-label" for="settings-defloc" >Default Post Location: </label>
<input type="text" name="defloc" id="settings-defloc" value="$defloc" />
</div>
<div id="settings-defloc-end" ></div>
<div id="settings-allowloc-wrapper" >
<label id="settings-allowloc-label" for="settings-allowloc" >Use Browser Location: </label>
<input type="checkbox" name="allow_location" id="settings-allowloc" value="1" $loc_checked />
</div>
<div id="settings-allowloc-end" ></div>
<div id="settings-theme-select">
<label id="settings-theme-label" for="theme-select" >Display Theme: </label>
$theme
</div>
<div id="settings-theme-end"></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Security and Privacy Settings</h3>
<input type="hidden" name="visibility" value="$visibility" />
<div id="settings-maxreq-wrapper">
<label id="settings-maxreq-label" for="settings-maxreq" >Maximum Friend Requests/Day</label>
<input id="settings-maxreq" name="maxreq" value="$maxreq" />
<div id="settings-maxreq-desc">(to prevent spam abuse)</div>
</div>
<div id="settings-maxreq-end"></div>
$profile_in_dir
$profile_in_net_dir
<div id="settings-default-perms" class="settings-default-perms" >
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none;" >
$aclselect
</div>
</div>
<div id="settings-default-perms-end"></div>
<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
<div id="settings-expire-end"></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Notification Settings</h3>
<div id="settings-notify-wrapper">
<div id="settings-notify-desc">Send a notification email when: </div>
<label for="notify1" id="settings-label-notify1">You receive an introduction</label>
<input id="notify1" type="checkbox" $sel_notify1 name="notify1" value="1" />
<div id="notify1-end"></div>
<label for="notify2" id="settings-label-notify2">Your introductions are confirmed</label>
<input id="notify2" type="checkbox" $sel_notify2 name="notify2" value="2" />
<div id="notify2-end"></div>
<label for="notify3" id="settings-label-notify3">Someone writes on your profile wall</label>
<input id="notify3" type="checkbox" $sel_notify3 name="notify3" value="4" />
<div id="notify3-end"></div>
<label for="notify4" id="settings-label-notify4">Someone writes a followup comment</label>
<input id="notify4" type="checkbox" $sel_notify4 name="notify4" value="8" />
<div id="notify4-end"></div>
<label for="notify5" id="settings-label-notify5">You receive a private message</label>
<input id="notify5" type="checkbox" $sel_notify5 name="notify5" value="16" />
<div id="notify5-end"></div>
</div>
<div id="settings=notify-end"></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Password Settings</h3>
<div id="settings-password-wrapper" >
<p id="settings-password-desc" >
Leave password fields blank unless changing
</p>
<label id="settings-password-label" for="settings-password" >New Password: </label>
<input type="password" id="settings-password" name="npassword" />
</div>
<div id="settings-password-end" ></div>
<div id="settings-confirm-wrapper" >
<label id="settings-confirm-label" for="settings-confirm" >Confirm: </label>
<input type="password" id="settings-confirm" name="confirm" />
</div>
<div id="settings-confirm-end" ></div>
<div id="settings-openid-wrapper" >
$oidhtml
</div>
<div id="settings-openid-end" ></div>
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
<h3 class="settings-heading">Advanced Page Settings</h3>
$pagetype
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>

View file

@ -0,0 +1,9 @@
<div id="settings-nick-wrapper" >
<p id="settings-nickname-desc">
<span class="error-message">Your profile address is <strong>'$nickname@$basepath'</strong></span>
</p>
$subdir
</div>
<div id="settings-nick-end" ></div>

View file

@ -0,0 +1,6 @@
<p>
It appears that your website is located in a subdirectory of the<br />
$hostname website, so this setting may not work reliably.<br />
</p>
<p>If you have any issues, you may have better results using the profile<br /> address '<strong>$baseurl/profile/$nickname</strong>'.
</p>

View file

@ -0,0 +1,14 @@
<div id="settings-nick-wrapper" >
<p id="settings-nickname-desc">
Your profile URL is currently <strong>'$baseurl/profile/$uid'</strong>.
Setting a nickname will allow a friendly profile URL such as
<strong>'nickname@$basepath'</strong>.
<br />
Once set, it can never be changed. The nickname <strong>must</strong> start with a letter; and only letters, numbers, dashes, and underscores are allowed.
</p>
<label id="settings-nick-label" for="settings-nick" >URL Nickname: </label>
<input type="text" name="nick" id="settings-nick" value="$nickname" />
</div>
<div id="settings-nick-end" ></div>

View file

@ -60,7 +60,7 @@ $a->strings['December'] = 'december';
$a->strings['Birthdays this week:'] = 'Födelsedagar denna vecka:';
$a->strings["\x28Adjusted for local time\x29"] = "\x28Justerad till lokal tid\x29";
$a->strings['[today]'] = '[today]';
$a->strings['link to source'] = 'länk till källa';
$a->strings['link to source'] = 'link to source';
$a->strings['No recipient selected.'] = 'Ingen mottagare vald.';
$a->strings['[no subject]'] = '[no subject]';
$a->strings['Unable to locate contact information.'] = 'Hittar inga kontaktuppgifter.';
@ -94,12 +94,12 @@ $a->strings['Could not access contact record.'] = 'Could not access contact reco
$a->strings['Could not locate selected profile.'] = 'Hittade inte vald profil.';
$a->strings['Contact updated.'] = 'Kontakten har uppdaterats.';
$a->strings['Failed to update contact record.'] = 'Failed to update contact record.';
$a->strings['Contact has been '] = 'Kontakten ';
$a->strings['Contact has been '] = 'Kontakt ';
$a->strings['blocked'] = 'spärrad';
$a->strings['unblocked'] = 'inte längre spärrad';
$a->strings['ignored'] = 'ignoreras';
$a->strings['unignored'] = 'ignoreras inte längre';
$a->strings['stopped following'] = 'följer inte längre';
$a->strings['stopped following'] = 'stopped following';
$a->strings['Contact has been removed.'] = 'Kontakten har tagits bort.';
$a->strings['Contact not found.'] = 'Kontakten hittades inte.';
$a->strings['Mutual Friendship'] = 'Ömsesidig vänskap';
@ -142,40 +142,40 @@ $a->strings['No user record found for '] = 'No user record found for ';
$a->strings['Our site encryption key is apparently messed up.'] = 'Det är något fel på webbplatsens krypteringsnyckel.';
$a->strings['Empty site URL was provided or URL could not be decrypted by us.'] = 'Empty site URL was provided or URL could not be decrypted by us.';
$a->strings['Contact record was not found for you on our site.'] = 'Contact record was not found for you on our site.';
$a->strings['The ID provided by your system is a duplicate on our system. It should work if you try again.'] = 'Det ID som angavs av ditt system är samma som på vårt system. Det borde fungera om du provar igen.';
$a->strings['The ID provided by your system is a duplicate on our system. It should work if you try again.'] = 'The ID provided by your system is a duplicate on our system. It should work if you try again.';
$a->strings['Unable to set your contact credentials on our system.'] = 'Unable to set your contact credentials on our system.';
$a->strings['Unable to update your contact profile details on our system'] = 'Unable to update your contact profile details on our system';
$a->strings["Connection accepted at "] = "Connection accepted at ";
$a->strings['Administrator'] = 'Administratör';
$a->strings['noreply'] = 'noreply';
$a->strings[' commented on an item at '] = ' har kommenterat ';
$a->strings[" commented on an item at "] = " har kommenterat ";
$a->strings[' commented on an item at '] = ' skrev en kommentar på ';
$a->strings[" commented on an item at "] = " skrev en kommentar på ";
$a->strings[' welcomes '] = ' välkomnar ';
$a->strings["This introduction has already been accepted."] = "Den här förfrågan har redan accepterats.";
$a->strings["This introduction has already been accepted."] = "This introduction has already been accepted.";
$a->strings['Profile location is not valid or does not contain profile information.'] = 'Profiladressen är ogiltig eller innehåller ingen profilinformation.';
$a->strings['Warning: profile location has no identifiable owner name.'] = 'Warning: profile location has no identifiable owner name.';
$a->strings['Warning: profile location has no profile photo.'] = 'Warning: profile location has no profile photo.';
$a->strings[' required parameter'] = ' obligatoriskt fält';
$a->strings[" was "] = " var ";
$a->strings["s were "] = " var ";
$a->strings[" was "] = " was ";
$a->strings["s were "] = "s were ";
$a->strings["not found at the given location."] = "finns inte på platsen som angavs.";
$a->strings["Introduction complete."] = "Presentationen klar.";
$a->strings['Unrecoverable protocol error.'] = 'Irreparabelt protokollfel.';
$a->strings['Unrecoverable protocol error.'] = 'Unrecoverable protocol error.';
$a->strings['Profile unavailable.'] = 'Profilen är inte tillgänglig.';
$a->strings[' has received too many connection requests today.'] = ' har tagit emot för många förfrågningar idag.';
$a->strings['Spam protection measures have been invoked.'] = 'Åtgärder för skydd mot spam har aktiverats.';
$a->strings[' has received too many connection requests today.'] = ' has received too many connection requests today.';
$a->strings['Spam protection measures have been invoked.'] = 'Spam protection measures have been invoked.';
$a->strings['Friends are advised to please try again in 24 hours.'] = 'Friends are advised to please try again in 24 hours.';
$a->strings["Invalid locator"] = "Invalid locator";
$a->strings["Unable to resolve your name at the provided location."] = "Unable to resolve your name at the provided location.";
$a->strings['You have already introduced yourself here.'] = 'Du har redan presenterat dig här.';
$a->strings['Apparently you are already friends with .'] = 'Du är tydligen redan vän med .';
$a->strings['Invalid profile URL.'] = 'Ogiltig profil-URL.';
$a->strings['Disallowed profile URL.'] = 'Otillåten profil-URL.';
$a->strings['Disallowed profile URL.'] = 'Disallowed profile URL.';
$a->strings['Your introduction has been sent.'] = 'Presentationen har skickats.';
$a->strings["Please login to confirm introduction."] = "Logga in för att acceptera förfrågan.";
$a->strings["Please login to confirm introduction."] = "Please login to confirm introduction.";
$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Incorrect identity currently logged in. Please login to <strong>this</strong> profile.";
$a->strings['[Name Withheld]'] = '[Name Withheld]';
$a->strings['Friend/Connection Request'] = 'Vän- eller kontaktförfrågan';
$a->strings['Friend/Connection Request'] = 'Friend/Connection Request';
$a->strings['Please answer the following:'] = 'Besvara följande, tack:';
$a->strings['Does $name know you?'] = 'Känner $name dig?';
$a->strings['Yes'] = 'Ja';
@ -272,16 +272,16 @@ $a->strings['Remote privacy information not available.'] = 'Remote privacy infor
$a->strings['Visible to:'] = 'Synlig för:';
$a->strings['Password reset requested at '] = 'Lösenordsåterställning begärd kl ';
$a->strings["Welcome back "] = "Välkommen tillbaka ";
$a->strings['Manage Identities and/or Pages'] = 'Ändra identitet eller sidor';
$a->strings['Manage Identities and/or Pages'] = 'Manage Identities and/or Pages';
$a->strings["\x28Toggle between different identities or community/group pages which share your account details.\x29"] = "\x28Toggle between different identities or community/group pages which share your account details.\x29";
$a->strings['Select an identity to manage: '] = 'Välj vilken identitet du vill ändra: ';
$a->strings['Select an identity to manage: '] = 'Select an identity to manage: ';
$a->strings['Normal View'] = 'Normal vy';
$a->strings['New Item View'] = 'New Item View';
$a->strings['Share'] = 'Dela';
$a->strings['Insert YouTube video'] = 'Infoga klipp från YouTube';
$a->strings['Set your location'] = 'Ange plats';
$a->strings['Clear browser location'] = 'Clear browser location';
$a->strings['Permission settings'] = 'Åtkomstinställningar';
$a->strings['Permission settings'] = 'Permission settings';
$a->strings['No such group'] = 'Gruppen finns inte';
$a->strings['Group is empty'] = 'Gruppen är tom';
$a->strings['Group: '] = 'Grupp: ';
@ -291,10 +291,10 @@ $a->strings['Discard'] = 'Kasta bort';
$a->strings['Ignore'] = 'Ignorera';
$a->strings['Show Ignored Requests'] = 'Show Ignored Requests';
$a->strings['Hide Ignored Requests'] = 'Hide Ignored Requests';
$a->strings['Claims to be known to you: '] = 'Hävdar att du vet vem han/hon är: ';
$a->strings['Claims to be known to you: '] = 'Claims to be known to you: ';
$a->strings['yes'] = 'ja';
$a->strings['no'] = 'nej';
$a->strings['Approve as: '] = 'Godkänn som: ';
$a->strings['Approve as: '] = 'Approve as: ';
$a->strings['Friend'] = 'Vän';
$a->strings['Fan/Admirer'] = 'Fan/Beundrare';
$a->strings['Notification type: '] = 'Notification type: ';
@ -311,7 +311,7 @@ $a->strings['Profile Photos'] = 'Profilbilder';
$a->strings['Album not found.'] = 'Albumet finns inte.';
$a->strings['Delete Album'] = 'Ta bort album';
$a->strings['Delete Photo'] = 'Ta bort foto';
$a->strings['was tagged in a'] = 'har taggats i';
$a->strings['was tagged in a'] = 'was tagged in a';
$a->strings['by'] = 'av';
$a->strings['Image exceeds size limit of '] = 'Bilden överskrider den tillåtna storleken ';
$a->strings['Unable to process image.'] = 'Bilden kunde inte bahandlas.';
@ -320,7 +320,7 @@ $a->strings['No photos selected'] = 'Inga foton har valts';
$a->strings['Upload Photos'] = 'Ladda upp foton';
$a->strings['New album name: '] = 'Nytt album med namn: ';
$a->strings['or existing album name: '] = 'eller befintligt album med namn: ';
$a->strings['Permissions'] = 'Åtkomst';
$a->strings['Permissions'] = 'Permissions';
$a->strings['Edit Album'] = 'Redigera album';
$a->strings['View Photo'] = 'Visa foto';
$a->strings['Photo not available'] = 'Fotot är inte tillgängligt';
@ -328,10 +328,10 @@ $a->strings['Edit photo'] = 'Redigera foto';
$a->strings['View Full Size'] = 'Visa fullstor';
$a->strings['Tags: '] = 'Taggar: ';
$a->strings['[Remove any tag]'] = '[Remove any tag]';
$a->strings['New album name'] = 'Nytt album med namn';
$a->strings['New album name'] = 'New album name';
$a->strings['Caption'] = 'Caption';
$a->strings['Add a Tag'] = 'Lägg till tagg';
$a->strings['Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'] = 'Exempel: @adam, @Anna_Andersson, @johan@exempel.com, #Stockholm, #camping';
$a->strings['Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'] = 'Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping';
$a->strings['Recent Photos'] = 'Nyligen tillagda foton';
$a->strings['Upload New Photos'] = 'Ladda upp foton';
$a->strings['View Album'] = 'Titta i album';
@ -342,7 +342,7 @@ $a->strings['Image size reduction [48] failed.'] = 'Fel när bildstorlek skulle
$a->strings['Unable to process image'] = 'Det gick inte att behandla bilden';
$a->strings['Image uploaded successfully.'] = 'Bilden har laddats upp.';
$a->strings['Image size reduction [640] failed.'] = 'Fel när bildstorlek skulle minskas [640].';
$a->strings['Profile Name is required.'] = 'Profilen måste ha ett namn.';
$a->strings['Profile Name is required.'] = 'Profile Name is required.';
$a->strings['Profile updated.'] = 'Profilen har uppdaterats.';
$a->strings['Profile deleted.'] = 'Profilen har tagits bort.';
$a->strings['Profile-'] = 'Profil-';
@ -351,7 +351,7 @@ $a->strings['Profile unavailable to clone.'] = 'Det gick inte att klona profilen
$a->strings['This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.'] = 'Det här är din <strong>offentliga</strong> profil.<br />Den <strong>kan</strong> vara synlig för vem som helst på internet.';
$a->strings['Age: '] = 'Ålder: ';
$a->strings['Profile Image'] = 'Profilbild';
$a->strings['Invalid OpenID url'] = 'Ogiltig OpenID-URL';
$a->strings['Invalid OpenID url'] = 'Ogiltig OpenID-url';
$a->strings['Please enter the required information.'] = 'Fyll i alla obligatoriska fält.';
$a->strings['Please use a shorter name.'] = 'Välj ett kortare namn.';
$a->strings['Name too short.'] = 'Namnet är för kort.';
@ -381,7 +381,7 @@ $a->strings['Choose a profile nickname. This must begin with a text character. Y
$a->strings['Choose a nickname: '] = 'Välj ett användarnamn: ';
$a->strings['Please login.'] = 'Logga in.';
$a->strings['Registration revoked for '] = 'Registration revoked for ';
$a->strings['Account approved.'] = 'Kontot har godkänts.';
$a->strings['Account approved.'] = 'Account approved.';
$a->strings['Remove My Account'] = 'Ta bort mitt konto';
$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'Detta kommer att ta bort kontot helt och hållet. Efter att det är gjort går det inte att återställa.';
$a->strings['Please enter your password for verification:'] = 'Ange lösenordet igen för jämförelse:';
@ -398,12 +398,12 @@ $a->strings['Plugin Settings'] = 'Plugin Settings';
$a->strings['Account Settings'] = 'Kontoinställningar';
$a->strings['No Plugin settings configured'] = 'No Plugin settings configured';
$a->strings['OpenID: '] = 'OpenID: ';
$a->strings["&nbsp;\x28Optional\x29 Allow this OpenID to login to this account."] = "&nbsp;\x28Valfritt\x29 Tillåt inloggning med detta OpenID på det här kontot.";
$a->strings["&nbsp;\x28Optional\x29 Allow this OpenID to login to this account."] = "&nbsp;\x28Optional\x29 Allow this OpenID to login to this account.";
$a->strings['Profile is <strong>not published</strong>.'] = 'Profilen är <strong>inte publicerad</strong>.';
$a->strings['Default Post Permissions'] = 'Default Post Permissions';
$a->strings['Tag removed'] = 'Taggen har tagits bort';
$a->strings['Remove Item Tag'] = 'Ta bort tagg';
$a->strings['Select a tag to remove: '] = 'Välj vilken tagg som ska tas bort: ';
$a->strings['Remove Item Tag'] = 'Remove Item Tag';
$a->strings['Select a tag to remove: '] = 'Välj tagg som ska tas bort: ';
$a->strings['Remove'] = 'Ta bort';
$a->strings['No contacts.'] = 'Inga kontakter.';
$a->strings['Visible To:'] = 'Synlig för:';
@ -502,7 +502,7 @@ $a->strings['Divorced'] = 'Skiljd';
$a->strings['Widowed'] = 'Widowed';
$a->strings['Uncertain'] = 'Uncertain';
$a->strings['Complicated'] = 'Komplicerat';
$a->strings['Don\'t care'] = 'Bryr mig inte';
$a->strings['Don\'t care'] = 'Don\'t care';
$a->strings['Ask me'] = 'Fråga mig';
$a->strings['Facebook disabled'] = 'Facebook disabled';
$a->strings['Facebook API key is missing.'] = 'Facebook API key is missing.';
@ -511,10 +511,10 @@ $a->strings['Install Facebook post connector'] = 'Install Facebook post connecto
$a->strings['Remove Facebook post connector'] = 'Remove Facebook post connector';
$a->strings['Facebook'] = 'Facebook';
$a->strings['Facebook Connector Settings'] = 'Facebook Connector Settings';
$a->strings['Post to Facebook'] = 'Lägg in på Facebook';
$a->strings['Post to Facebook'] = 'Post to Facebook';
$a->strings['Image: '] = 'Bild: ';
$a->strings['Select files to upload: '] = 'Välj filer att ladda upp: ';
$a->strings['Use the following controls only if the Java uploader [above] fails to launch.'] = 'Använd följande bara om javauppladdaren ovanför inte startar.';
$a->strings['Use the following controls only if the Java uploader [above] fails to launch.'] = 'Use the following controls only if the Java uploader [above] fails to launch.';
$a->strings['Upload a file'] = 'Ladda upp fil';
$a->strings['Drop files here to upload'] = 'Dra filer som ska laddas upp hit';
$a->strings['Failed'] = 'Misslyckades';
@ -525,36 +525,36 @@ $a->strings['File has an invalid extension, it should be one of '] = 'Otillåten
$a->strings['Upload was cancelled, or server error encountered'] = 'Serverfel eller avbruten uppladdning';
$a->strings['Randplace Settings'] = 'Randplace Settings';
$a->strings['Enable Randplace Plugin'] = 'Enable Randplace Plugin';
$a->strings['Post to StatusNet'] = 'Lägg in på StatusNet';
$a->strings['Post to StatusNet'] = 'Post to StatusNet';
$a->strings['StatusNet Posting Settings'] = 'StatusNet Posting Settings';
$a->strings['No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'] = 'No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.';
$a->strings['OAuth Consumer Key'] = 'OAuth Consumer Key';
$a->strings['OAuth Consumer Secret'] = 'OAuth Consumer Secret';
$a->strings["Base API Path \x28remember the trailing /\x29"] = "Base API Path \x28remember the trailing /\x29";
$a->strings['To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'] = 'To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.';
$a->strings['Log in with StatusNet'] = 'Logga in med StatusNet';
$a->strings['Log in with StatusNet'] = 'Log in with StatusNet';
$a->strings['Copy the security code from StatusNet here'] = 'Copy the security code from StatusNet here';
$a->strings['Currently connected to: '] = 'Ansluten till: ';
$a->strings['Currently connected to: '] = 'Currently connected to: ';
$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.';
$a->strings['Send public postings to StatusNet'] = 'Send public postings to StatusNet';
$a->strings['Clear OAuth configuration'] = 'Clear OAuth configuration';
$a->strings['Three Dimensional Tic-Tac-Toe'] = 'Tredimensionellt luffarschack';
$a->strings['3D Tic-Tac-Toe'] = '3D-luffarschack';
$a->strings['New game'] = 'Ny spelomgång';
$a->strings['New game with handicap'] = 'Ny spelomgång med handikapp';
$a->strings['Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. '] = 'Det tredimensionella luffarschacket är precis som vanligt luffarschack förutom att det spelas i flera nivåer samtidigt. ';
$a->strings['In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels.'] = 'Här är det tre nivåer. Man vinner om man får tre i rad på vilken nivå som helst, eller uppåt, nedåt eller diagonalt på flera nivåer.';
$a->strings['The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage.'] = 'Om man spelar med handikapp så stängs mittenpositionen på mittennivån av eftersom spelare som väljer den positionen ofta får övertaget.';
$a->strings['You go first...'] = 'Du börjar...';
$a->strings['I\'m going first this time...'] = 'Jag börjar den här gången...';
$a->strings['You won!'] = 'Du vann!';
$a->strings['New game'] = 'New game';
$a->strings['New game with handicap'] = 'New game with handicap';
$a->strings['Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. '] = 'Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. ';
$a->strings['In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels.'] = 'In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels.';
$a->strings['The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage.'] = 'The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage.';
$a->strings['You go first...'] = 'You go first...';
$a->strings['I\'m going first this time...'] = 'I\'m going first this time...';
$a->strings['You won!'] = 'You won!';
$a->strings['"Cat" game!'] = '"Cat" game!';
$a->strings['I won!'] = 'Jag vann!';
$a->strings['Post to Twitter'] = 'Lägg in på Twitter';
$a->strings['I won!'] = 'I won!';
$a->strings['Post to Twitter'] = 'Post to Twitter';
$a->strings['Twitter Posting Settings'] = 'Twitter Posting Settings';
$a->strings['No consumer key pair for Twitter found. Please contact your site administrator.'] = 'No consumer key pair for Twitter found. Please contact your site administrator.';
$a->strings['At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'] = 'At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.';
$a->strings['Copy the PIN from Twitter here'] = 'Ange PIN-koden från Twitter här';
$a->strings['Copy the PIN from Twitter here'] = 'Copy the PIN from Twitter here';
$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.';
$a->strings['Send public postings to Twitter'] = 'Send public postings to Twitter';
$a->strings['Africa/Abidjan'] = 'Afrika/Abidjan';
@ -1045,7 +1045,7 @@ $a->strings['Israel'] = 'Israel';
$a->strings['Jamaica'] = 'Jamaica';
$a->strings['Japan'] = 'Japan';
$a->strings['Kwajalein'] = 'Kwajalein';
$a->strings['Libya'] = 'Libyen';
$a->strings['Libya'] = 'Libya';
$a->strings['MET'] = 'MET';
$a->strings['Mexico/BajaNorte'] = 'Mexico/BajaNorte';
$a->strings['Mexico/BajaSur'] = 'Mexico/BajaSur';
@ -1095,7 +1095,7 @@ $a->strings['Pacific/Truk'] = 'Pacific/Truk';
$a->strings['Pacific/Wake'] = 'Pacific/Wake';
$a->strings['Pacific/Wallis'] = 'Pacific/Wallis';
$a->strings['Pacific/Yap'] = 'Pacific/Yap';
$a->strings['Poland'] = 'Polen';
$a->strings['Poland'] = 'Poland';
$a->strings['Portugal'] = 'Portugal';
$a->strings['PRC'] = 'PRC';
$a->strings['PST8PDT'] = 'PST8PDT';

View file

@ -0,0 +1,18 @@
Dear $username,
'$from' posted something to your profile wall.
-----
$body
-----
Please login at $siteurl to view or delete the item:
$display
Thank you,
$sitename administrator

View file

@ -927,6 +927,10 @@ input#dfrn-url {
margin-left: 10px;
}
.editpost {
margin-left: 15px;
}
.wall-item-links-wrapper {
float: left;
}

View file

@ -999,6 +999,10 @@ input#dfrn-url {
margin-left: 5px;
}
.editpost {
margin-left: 15px;
}
.wall-item-links-wrapper {
float: left;
}

View file

@ -24,6 +24,7 @@
<div class="wall-item-tools" id="wall-item-tools-$id">
$vote
$plink
$edpost
$drop
</div>
</div>

View file

@ -28,6 +28,7 @@
<div class="wall-item-tools" id="wall-item-tools-$id">
$vote
$plink
$edpost
$drop
</div>
</div>