Remove old Facebook Plugin (use FacebookBridge now)

This commit is contained in:
Zach Copley 2011-01-31 23:50:22 +00:00
parent ad12384d8c
commit c35d8e3a3e
45 changed files with 0 additions and 18941 deletions

View File

@ -1,66 +0,0 @@
<?php
/**
* @todo Add header and documentation
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
/*
* Generates the cross domain communication channel file
* (xd_receiver.html). By generating it we can add some caching
* instructions.
*
* See: http://wiki.developers.facebook.com/index.php/Cross_Domain_Communication_Channel
*/
class FBC_XDReceiverAction extends Action
{
/**
* Do we need to write to the database?
*
* @return boolean true
*/
function isReadonly()
{
return true;
}
/**
* Handle a request
*
* @param array $args Arguments from $_REQUEST
*
* @return void
*/
function handle($args)
{
// Parent handling, including cache check
parent::handle($args);
$this->showPage();
}
function showPage()
{
// cache the xd_receiver
header('Cache-Control: max-age=225065900');
header('Expires:');
header('Pragma:');
$this->startXML('html');
$language = $this->getLanguage();
$this->elementStart('html', array('xmlns' => 'http://www.w3.org/1999/xhtml',
'xml:lang' => $language,
'lang' => $language));
$this->elementStart('head');
$this->element('title', null, 'cross domain receiver page');
$this->script('http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.debug.js');
$this->elementEnd('head');
$this->elementStart('body');
$this->elementEnd('body');
$this->elementEnd('html');
}
}

View File

@ -1,36 +0,0 @@
/** Styles for Facebook logo and Facebook user profile avatar.
*
* @package StatusNet
* @author Sarven Capadisli <csarven@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
#site_nav_global_primary #nav_fb {
position:relative;
margin-left:18px;
}
#nav_fb #fbc_profile-pic {
position:absolute;
top:-3px;
left:-18px;
display:inline;
border:1px solid #3B5998;
padding:1px;
}
#nav_fb #fb_favicon {
position:absolute;
top:-13px;
left:-25px;
display:inline;
}
#settings_facebook_connect_options legend {
display:none;
}
#form_settings_facebook_connect fieldset fieldset legend {
display:block;
}

View File

@ -1,486 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Plugin to enable Facebook Connect
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Plugin
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/FacebookPlugin.php';
class FBConnectauthAction extends Action
{
var $fbuid = null;
var $fb_fields = null;
function prepare($args) {
parent::prepare($args);
$this->fbuid = getFacebook()->get_loggedin_user();
if ($this->fbuid > 0) {
$this->fb_fields = $this->getFacebookFields($this->fbuid,
array('first_name', 'last_name', 'name'));
} else {
list($proxy, $ip) = common_client_ip();
common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
"Failed auth attempt, proxy = $proxy, ip = $ip.");
$this->clientError(_m('You must be logged into Facebook to ' .
'use Facebook Connect.'));
}
return true;
}
function handle($args)
{
parent::handle($args);
if (common_is_real_login()) {
// User is already logged in. Does she already have a linked Facebook acct?
$flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE);
if (!empty($flink)) {
// User already has a linked Facebook account and shouldn't be here
common_debug('Facebook Connect Plugin - ' .
'There is already a local user (' . $flink->user_id .
') linked with this Facebook (' . $this->fbuid . ').');
// We don't want these cookies
getFacebook()->clear_cookie_state();
$this->clientError(_m('There is already a local user linked with this Facebook account.'));
} else {
// User came from the Facebook connect settings tab, and
// probably just wants to link/relink their Facebook account
$this->connectUser();
}
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$token = $this->trimmed('token');
if (!$token || $token != common_session_token()) {
$this->showForm(_m('There was a problem with your session token. Try again, please.'));
return;
}
if ($this->arg('create')) {
if (!$this->boolean('license')) {
$this->showForm(_m('You can\'t register if you don\'t agree to the license.'),
$this->trimmed('newname'));
return;
}
$this->createNewUser();
} else if ($this->arg('connect')) {
$this->connectNewUser();
} else {
common_debug('Facebook Connect Plugin - ' .
print_r($this->args, true));
$this->showForm(_m('An unknown error has occured.'),
$this->trimmed('newname'));
}
} else {
$this->tryLogin();
}
}
function showPageNotice()
{
if ($this->error) {
$this->element('div', array('class' => 'error'), $this->error);
} else {
$this->element('div', 'instructions',
// TRANS: %s is the site name.
sprintf(_m('This is the first time you\'ve logged into %s so we must connect your Facebook to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name')));
}
}
function title()
{
// TRANS: Page title.
return _m('Facebook Account Setup');
}
function showForm($error=null, $username=null)
{
$this->error = $error;
$this->username = $username;
$this->showPage();
}
function showPage()
{
parent::showPage();
}
/**
* @fixme much of this duplicates core code, which is very fragile.
* Should probably be replaced with an extensible mini version of
* the core registration form.
*/
function showContent()
{
if (!empty($this->message_text)) {
$this->element('p', null, $this->message);
return;
}
$this->elementStart('form', array('method' => 'post',
'id' => 'form_settings_facebook_connect',
'class' => 'form_settings',
'action' => common_local_url('FBConnectAuth')));
$this->elementStart('fieldset', array('id' => 'settings_facebook_connect_options'));
// TRANS: Legend.
$this->element('legend', null, _m('Connection options'));
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
$this->element('input', array('type' => 'checkbox',
'id' => 'license',
'class' => 'checkbox',
'name' => 'license',
'value' => 'true'));
$this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
// TRANS: %s is the name of the license used by the user for their status updates.
$message = _m('My text and files are available under %s ' .
'except this private data: password, ' .
'email address, IM address, and phone number.');
$link = '<a href="' .
htmlspecialchars(common_config('license', 'url')) .
'">' .
htmlspecialchars(common_config('license', 'title')) .
'</a>';
$this->raw(sprintf(htmlspecialchars($message), $link));
$this->elementEnd('label');
$this->elementEnd('li');
$this->elementEnd('ul');
$this->elementStart('fieldset');
$this->hidden('token', common_session_token());
$this->element('legend', null,
// TRANS: Legend.
_m('Create new account'));
$this->element('p', null,
_m('Create a new user with this nickname.'));
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
// TRANS: Field label.
$this->input('newname', _m('New nickname'),
($this->username) ? $this->username : '',
_m('1-64 lowercase letters or numbers, no punctuation or spaces'));
$this->elementEnd('li');
$this->elementEnd('ul');
// TRANS: Submit button.
$this->submit('create', _m('BUTTON','Create'));
$this->elementEnd('fieldset');
$this->elementStart('fieldset');
// TRANS: Legend.
$this->element('legend', null,
_m('Connect existing account'));
$this->element('p', null,
_m('If you already have an account, login with your username and password to connect it to your Facebook.'));
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
// TRANS: Field label.
$this->input('nickname', _m('Existing nickname'));
$this->elementEnd('li');
$this->elementStart('li');
$this->password('password', _m('Password'));
$this->elementEnd('li');
$this->elementEnd('ul');
// TRANS: Submit button.
$this->submit('connect', _m('BUTTON','Connect'));
$this->elementEnd('fieldset');
$this->elementEnd('fieldset');
$this->elementEnd('form');
}
function message($msg)
{
$this->message_text = $msg;
$this->showPage();
}
function createNewUser()
{
if (!Event::handle('StartRegistrationTry', array($this))) {
return;
}
if (common_config('site', 'closed')) {
// TRANS: Client error trying to register with registrations not allowed.
$this->clientError(_m('Registration not allowed.'));
return;
}
$invite = null;
if (common_config('site', 'inviteonly')) {
$code = $_SESSION['invitecode'];
if (empty($code)) {
// TRANS: Client error trying to register with registrations 'invite only'.
$this->clientError(_m('Registration not allowed.'));
return;
}
$invite = Invitation::staticGet($code);
if (empty($invite)) {
// TRANS: Client error trying to register with an invalid invitation code.
$this->clientError(_m('Not a valid invitation code.'));
return;
}
}
try {
$nickname = Nickname::normalize($this->trimmed('newname'));
} catch (NicknameException $e) {
$this->showForm($e->getMessage());
}
if (!User::allowed_nickname($nickname)) {
$this->showForm(_m('Nickname not allowed.'));
return;
}
if (User::staticGet('nickname', $nickname)) {
$this->showForm(_m('Nickname already in use. Try another one.'));
return;
}
$fullname = trim($this->fb_fields['firstname'] .
' ' . $this->fb_fields['lastname']);
$args = array('nickname' => $nickname, 'fullname' => $fullname);
if (!empty($invite)) {
$args['code'] = $invite->code;
}
$user = User::register($args);
$result = $this->flinkUser($user->id, $this->fbuid);
if (!$result) {
$this->serverError(_m('Error connecting user to Facebook.'));
return;
}
common_set_user($user);
common_real_login(true);
common_debug('Facebook Connect Plugin - ' .
"Registered new user $user->id from Facebook user $this->fbuid");
Event::handle('EndRegistrationTry', array($this));
common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)),
303);
}
function connectNewUser()
{
$nickname = $this->trimmed('nickname');
$password = $this->trimmed('password');
if (!common_check_user($nickname, $password)) {
$this->showForm(_m('Invalid username or password.'));
return;
}
$user = User::staticGet('nickname', $nickname);
if (!empty($user)) {
common_debug('Facebook Connect Plugin - ' .
"Legit user to connect to Facebook: $nickname");
}
$result = $this->flinkUser($user->id, $this->fbuid);
if (!$result) {
$this->serverError(_m('Error connecting user to Facebook.'));
return;
}
common_debug('Facebook Connnect Plugin - ' .
"Connected Facebook user $this->fbuid to local user $user->id");
common_set_user($user);
common_real_login(true);
$this->goHome($user->nickname);
}
function connectUser()
{
$user = common_current_user();
$result = $this->flinkUser($user->id, $this->fbuid);
if (empty($result)) {
$this->serverError(_m('Error connecting user to Facebook.'));
return;
}
common_debug('Facebook Connect Plugin - ' .
"Connected Facebook user $this->fbuid to local user $user->id");
// Return to Facebook connection settings tab
common_redirect(common_local_url('FBConnectSettings'), 303);
}
function tryLogin()
{
common_debug('Facebook Connect Plugin - ' .
"Trying login for Facebook user $this->fbuid.");
$flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE);
if (!empty($flink)) {
$user = $flink->getUser();
if (!empty($user)) {
common_debug('Facebook Connect Plugin - ' .
"Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)");
common_set_user($user);
common_real_login(true);
$this->goHome($user->nickname);
}
} else {
common_debug('Facebook Connect Plugin - ' .
"No flink found for fbuid: $this->fbuid - new user");
$this->showForm(null, $this->bestNewNickname());
}
}
function goHome($nickname)
{
$url = common_get_returnto();
if ($url) {
// We don't have to return to it again
common_set_returnto(null);
} else {
$url = common_local_url('all',
array('nickname' =>
$nickname));
}
common_redirect($url, 303);
}
function flinkUser($user_id, $fbuid)
{
$flink = new Foreign_link();
$flink->user_id = $user_id;
$flink->foreign_id = $fbuid;
$flink->service = FACEBOOK_CONNECT_SERVICE;
$flink->created = common_sql_now();
$flink_id = $flink->insert();
return $flink_id;
}
function bestNewNickname()
{
if (!empty($this->fb_fields['name'])) {
$nickname = $this->nicknamize($this->fb_fields['name']);
if ($this->isNewNickname($nickname)) {
return $nickname;
}
}
// Try the full name
$fullname = trim($this->fb_fields['firstname'] .
' ' . $this->fb_fields['lastname']);
if (!empty($fullname)) {
$fullname = $this->nicknamize($fullname);
if ($this->isNewNickname($fullname)) {
return $fullname;
}
}
return null;
}
/**
* Given a string, try to make it work as a nickname
*/
function nicknamize($str)
{
$str = preg_replace('/\W/', '', $str);
return strtolower($str);
}
function isNewNickname($str)
{
if (!Nickname::isValid($str)) {
return false;
}
if (!User::allowed_nickname($str)) {
return false;
}
if (User::staticGet('nickname', $str)) {
return false;
}
return true;
}
// XXX: Consider moving this to lib/facebookutil.php
function getFacebookFields($fb_uid, $fields) {
try {
$facebook = getFacebook();
$infos = $facebook->api_client->users_getInfo($fb_uid, $fields);
if (empty($infos)) {
return null;
}
return reset($infos);
} catch (Exception $e) {
common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
"Facebook client failure when requesting " .
join(",", $fields) . " on uid " . $fb_uid .
" : ". $e->getMessage());
return null;
}
}
}

View File

@ -1,74 +0,0 @@
<?php
/*
* StatusNet - a distributed open-source microblogging tool
* Copyright (C) 2008, Controlez-Vous, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/FacebookPlugin.php';
class FBConnectLoginAction extends Action
{
function handle($args)
{
parent::handle($args);
if (common_is_real_login()) {
$this->clientError(_m('Already logged in.'));
}
$this->showPage();
}
function getInstructions()
{
// TRANS: Instructions.
return _m('Login with your Facebook Account');
}
function showPageNotice()
{
$instr = $this->getInstructions();
$output = common_markup_to_html($instr);
$this->elementStart('div', 'instructions');
$this->raw($output);
$this->elementEnd('div');
}
function title()
{
// TRANS: Page title.
return _m('Facebook Login');
}
function showContent() {
$this->elementStart('fieldset');
$this->element('fb:login-button', array('onlogin' => 'goto_login()',
'length' => 'long'));
$this->elementEnd('fieldset');
}
function showLocalNav()
{
$nav = new LoginGroupNav($this);
$nav->show();
}
}

View File

@ -1,203 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Facebook Connect settings
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Settings
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR.'/lib/connectsettingsaction.php';
/**
* Facebook Connect settings action
*
* @category Settings
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class FBConnectSettingsAction extends ConnectSettingsAction
{
/**
* Title of the page
*
* @return string Title of the page
*/
function title()
{
// TRANS: Page title.
return _m('Facebook Connect Settings');
}
/**
* Instructions for use
*
* @return instructions for use
*/
function getInstructions()
{
// TRANS: Instructions.
return _m('Manage how your account connects to Facebook');
}
/**
* Content area of the page
*
* Shows a form for uploading an avatar.
*
* @return void
*/
function showContent()
{
$user = common_current_user();
$flink = Foreign_link::getByUserID($user->id, FACEBOOK_CONNECT_SERVICE);
$this->elementStart('form', array('method' => 'post',
'id' => 'form_settings_facebook',
'class' => 'form_settings',
'action' =>
common_local_url('FBConnectSettings')));
if (!$flink) {
$this->element('p', 'instructions',
_m('There is no Facebook user connected to this account.'));
$this->element('fb:login-button', array('onlogin' => 'goto_login()',
'length' => 'long'));
} else {
$this->element('p', 'form_note',
_m('Connected Facebook user'));
$this->elementStart('p', array('class' => 'facebook-user-display'));
$this->elementStart('fb:profile-pic',
array('uid' => $flink->foreign_id,
'size' => 'small',
'linked' => 'true',
'facebook-logo' => 'true'));
$this->elementEnd('fb:profile-pic');
$this->elementStart('fb:name', array('uid' => $flink->foreign_id,
'useyou' => 'false'));
$this->elementEnd('fb:name');
$this->elementEnd('p');
$this->hidden('token', common_session_token());
$this->elementStart('fieldset');
// TRANS: Legend.
$this->element('legend', null, _m('Disconnect my account from Facebook'));
if (!$user->password) {
$this->elementStart('p', array('class' => 'form_guide'));
// @todo FIXME: Bad i18n. Patchwork message in three parts.
// TRANS: Followed by a link containing text "set a password".
$this->text(_m('Disconnecting your Faceboook ' .
'would make it impossible to log in! Please '));
$this->element('a',
array('href' => common_local_url('passwordsettings')),
// TRANS: Preceded by "Please " and followed by " first."
_m('set a password'));
// TRANS: Preceded by "Please set a password".
$this->text(_m(' first.'));
$this->elementEnd('p');
} else {
$note = 'Keep your %s account but disconnect from Facebook. ' .
'You\'ll use your %s password to log in.';
$site = common_config('site', 'name');
$this->element('p', 'instructions',
sprintf($note, $site, $site));
// TRANS: Submit button.
$this->submit('disconnect', _m('BUTTON','Disconnect'));
}
$this->elementEnd('fieldset');
}
$this->elementEnd('form');
}
/**
* Handle post
*
* Disconnects the current Facebook user from the current user's account
*
* @return void
*/
function handlePost()
{
// CSRF protection
$token = $this->trimmed('token');
if (!$token || $token != common_session_token()) {
$this->showForm(_m('There was a problem with your session token. '.
'Try again, please.'));
return;
}
if ($this->arg('disconnect')) {
$user = common_current_user();
$flink = Foreign_link::getByUserID($user->id, FACEBOOK_CONNECT_SERVICE);
$result = $flink->delete();
if ($result === false) {
common_log_db_error($user, 'DELETE', __FILE__);
$this->serverError(_m('Couldn\'t delete link to Facebook.'));
return;
}
try {
// Clear FB Connect cookies out
$facebook = getFacebook();
$facebook->clear_cookie_state();
} catch (Exception $e) {
common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
'Couldn\'t clear Facebook cookies: ' .
$e->getMessage());
}
$this->showForm(_m('You have disconnected from Facebook.'), true);
} else {
$this->showForm(_m('Not sure what you\'re trying to do.'));
return;
}
}
}

View File

@ -1,599 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Plugin to add a StatusNet Facebook application
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Plugin
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @copyright 2009-2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
define("FACEBOOK_CONNECT_SERVICE", 3);
require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php';
/**
* Facebook plugin to add a StatusNet Facebook canvas application
* and allow registration and authentication via Facebook Connect
*
* @category Plugin
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class FacebookPlugin extends Plugin
{
const VERSION = STATUSNET_VERSION;
/**
* Initializer for the plugin.
*/
function initialize()
{
// Allow the key and secret to be passed in
// Control panel will override
if (isset($this->apikey)) {
$key = common_config('facebook', 'apikey');
if (empty($key)) {
Config::save('facebook', 'apikey', $this->apikey);
}
}
if (isset($this->secret)) {
$secret = common_config('facebook', 'secret');
if (empty($secret)) {
Config::save(
'facebook',
'secret',
$this->secret
);
}
}
}
/**
* Check to see if there is an API key and secret defined
* for Facebook integration.
*
* @return boolean result
*/
static function hasKeys()
{
$apiKey = common_config('facebook', 'apikey');
$apiSecret = common_config('facebook', 'secret');
if (!empty($apiKey) && !empty($apiSecret)) {
return true;
}
return false;
}
/**
* Add Facebook app actions to the router table
*
* Hook for RouterInitialized event.
*
* @param Net_URL_Mapper &$m path-to-action mapper
*
* @return boolean hook return
*/
function onStartInitializeRouter($m)
{
$m->connect('admin/facebook', array('action' => 'facebookadminpanel'));
if (self::hasKeys()) {
// Facebook App stuff
$m->connect('facebook/app', array('action' => 'facebookhome'));
$m->connect('facebook/app/index.php', array('action' => 'facebookhome'));
$m->connect('facebook/app/settings.php',
array('action' => 'facebooksettings'));
$m->connect('facebook/app/invite.php', array('action' => 'facebookinvite'));
$m->connect('facebook/app/remove', array('action' => 'facebookremove'));
// Facebook Connect stuff
$m->connect('main/facebookconnect', array('action' => 'FBConnectAuth'));
$m->connect('main/facebooklogin', array('action' => 'FBConnectLogin'));
$m->connect('settings/facebook', array('action' => 'FBConnectSettings'));
$m->connect('xd_receiver.html', array('action' => 'FBC_XDReceiver'));
}
return true;
}
/**
* Automatically load the actions and libraries used by the Facebook app
*
* @param Class $cls the class
*
* @return boolean hook return
*
*/
function onAutoload($cls)
{
switch ($cls) {
case 'FacebookAction':
case 'FacebookhomeAction':
case 'FacebookinviteAction':
case 'FacebookremoveAction':
case 'FacebooksettingsAction':
case 'FacebookadminpanelAction':
include_once INSTALLDIR . '/plugins/Facebook/' .
strtolower(mb_substr($cls, 0, -6)) . '.php';
return false;
case 'FBConnectAuthAction':
case 'FBConnectLoginAction':
case 'FBConnectSettingsAction':
case 'FBC_XDReceiverAction':
include_once INSTALLDIR . '/plugins/Facebook/' .
mb_substr($cls, 0, -6) . '.php';
return false;
case 'FBCLoginGroupNav':
include_once INSTALLDIR . '/plugins/Facebook/FBCLoginGroupNav.php';
return false;
case 'FBCSettingsNav':
include_once INSTALLDIR . '/plugins/Facebook/FBCSettingsNav.php';
return false;
case 'FacebookQueueHandler':
include_once INSTALLDIR . '/plugins/Facebook/facebookqueuehandler.php';
return false;
default:
return true;
}
}
/**
* Add a Facebook tab to the admin panels
*
* @param Widget $nav Admin panel nav
*
* @return boolean hook value
*/
function onEndAdminPanelNav($nav)
{
if (AdminPanelAction::canAdmin('facebook')) {
$action_name = $nav->action->trimmed('action');
$nav->out->menuItem(
common_local_url('facebookadminpanel'),
// TRANS: Menu item.
_m('MENU','Facebook'),
// TRANS: Tooltip for menu item "Facebook".
_m('Facebook integration configuration'),
$action_name == 'facebookadminpanel',
'nav_facebook_admin_panel'
);
}
return true;
}
/**
* Override normal HTML output to force the content type to
* text/html and add in xmlns:fb
*
* @param Action $action the current action
*
* @return void
*/
function onStartShowHTML($action)
{
if ($this->reqFbScripts($action)) {
// XXX: Horrible hack to make Safari, FF2, and Chrome work with
// Facebook Connect. These browser cannot use Facebook's
// DOM parsing routines unless the mime type of the page is
// text/html even though Facebook Connect uses XHTML. This is
// A bug in Facebook Connect, and this is a temporary solution
// until they fix their JavaScript libs.
header('Content-Type: text/html');
$action->extraHeaders();
$action->startXML('html');
$language = $action->getLanguage();
$action->elementStart('html',
array('xmlns' => 'http://www.w3.org/1999/xhtml',
'xmlns:fb' => 'http://www.facebook.com/2008/fbml',
'xml:lang' => $language,
'lang' => $language));
return false;
} else {
return true;
}
}
/**
* Add in the Facebook Connect JavaScript stuff
*
* Note: this script needs to appear in the <body>
*
* @param Action $action the current action
*
* @return void
*
*/
function onEndShowScripts($action)
{
if ($this->reqFbScripts($action)) {
$apikey = common_config('facebook', 'apikey');
$plugin_path = 'plugins/Facebook';
$login_url = common_local_url('FBConnectAuth');
$logout_url = common_local_url('logout');
// XXX: Facebook says we don't need this FB_RequireFeatures(),
// but we actually do, for IE and Safari. Gar.
$js .= ' $(document).ready(function () {';
$js .= ' FB_RequireFeatures(';
$js .= ' ["XFBML"], function() {';
$js .= ' FB.init("%1$s", "../xd_receiver.html");';
$js .= ' }';
$js .= ' );';
$js .= ' });';
$js .= ' function goto_login() {';
$js .= ' window.location = "%2$s";';
$js .= ' }';
// The below function alters the logout link so that it logs the user out
// of Facebook Connect as well as the site. However, for some pages
// (FB Connect Settings) we need to output the FB Connect scripts (to
// show an existing FB connection even if the user isn't authenticated
// with Facebook connect) but NOT alter the logout link. And the only
// way to reliably do that is with the FB Connect .js libs. Crazy.
$js .= ' FB.ensureInit(function() {';
$js .= ' FB.Connect.ifUserConnected(';
$js .= ' function() { ';
$js .= ' $(\'#nav_logout a\').attr(\'href\', \'#\');';
$js .= ' $(\'#nav_logout a\').click(function() {';
$js .= ' FB.Connect.logoutAndRedirect(\'%3$s\');';
$js .= ' return false;';
$js .= ' })';
$js .= ' },';
$js .= ' function() {';
$js .= ' return false;';
$js .= ' }';
$js .= ' );';
$js .= ' });';
$js = sprintf($js, $apikey, $login_url, $logout_url);
// Compress the bugger down a bit
$js = str_replace(' ', '', $js);
$action->inlineScript($js);
}
}
/**
* Add in an additional Facebook Connect script that's supposed to
* appear as close as possible to </body>
*
* @param Action $action the current action
*
* @return void
*
*/
function onEndShowFooter($action)
{
if ($this->reqFbScripts($action)) {
$action->script('http://static.ak.connect.facebook.com' .
'/js/api_lib/v0.4/FeatureLoader.js.php');
}
}
/**
* Output Facebook Connect specific CSS link
*
* @param Action $action the current action
*
* @return void
*
*/
function onEndShowStatusNetStyles($action)
{
if ($this->reqFbScripts($action)) {
$action->cssLink('plugins/Facebook/FBConnect.css');
}
}
/**
* Does the Action we're plugged into require the FB Scripts? We only
* want to output FB namespace, scripts, CSS, etc. on the pages that
* really need them.
*
* @param Action $action the current action
*
* @return boolean true
*/
function reqFbScripts($action)
{
if (!self::hasKeys()) {
return false;
}
// If you're logged in w/FB Connect, you always need the FB stuff
$fbuid = $this->loggedIn();
if (!empty($fbuid)) {
return true;
}
// List of actions that require FB stuff
$needy = array('FBConnectLoginAction',
'FBConnectauthAction',
'FBConnectSettingsAction');
if (in_array(get_class($action), $needy)) {
return true;
}
return false;
}
/**
* Is the user currently logged in with FB Connect?
*
* @return mixed $fbuid the Facebook ID of the logged in user, or null
*/
function loggedIn()
{
$user = common_current_user();
if (!empty($user)) {
$flink = Foreign_link::getByUserId($user->id,
FACEBOOK_CONNECT_SERVICE);
$fbuid = 0;
if (!empty($flink)) {
try {
$facebook = getFacebook();
$fbuid = $facebook->get_loggedin_user();
} catch (Exception $e) {
common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
'Problem getting Facebook user: ' .
$e->getMessage());
}
if ($fbuid > 0) {
return $fbuid;
}
}
}
return null;
}
/**
* Add in a Facebook Connect avatar to the primary nav menu
*
* @param Action $action the current action
*
* @return void
*
*/
function onStartPrimaryNav($action)
{
if (self::hasKeys()) {
$user = common_current_user();
if (!empty($user)) {
$fbuid = $this->loggedIn();
if (!empty($fbuid)) {
/* Default FB silhouette pic for FB users who haven't
uploaded a profile pic yet. */
$silhouetteUrl =
'http://static.ak.fbcdn.net/pics/q_silhouette.gif';
$url = $this->getProfilePicURL($fbuid);
$action->elementStart('li', array('id' => 'nav_fb'));
$action->element('img', array('id' => 'fbc_profile-pic',
'src' => (!empty($url)) ? $url : $silhouetteUrl,
'alt' => _m('Facebook Connect User'),
'width' => '16'), '');
$iconurl = common_path('plugins/Facebook/fbfavicon.ico');
$action->element('img', array('id' => 'fb_favicon',
'src' => $iconurl));
$action->elementEnd('li');
}
}
}
return true;
}
/*
* Add a login tab for Facebook Connect
*
* @param Action $action the current action
*
* @return void
*/
function onEndLoginGroupNav($action)
{
if (self::hasKeys()) {
$action_name = $action->trimmed('action');
$action->menuItem(common_local_url('FBConnectLogin'),
// @todo CHECKME: Should be 'Facebook Login'?
// TRANS: Menu item.
_m('MENU','Facebook'),
// TRANS: Tooltip for menu item "Facebook".
_m('Login or register using Facebook'),
'FBConnectLogin' === $action_name);
}
return true;
}
/*
* Add a tab for managing Facebook Connect settings
*
* @param Action $action the current action
*
* @return void
*/
function onEndConnectSettingsNav($action)
{
if (self::hasKeys()) {
$action_name = $action->trimmed('action');
$action->menuItem(common_local_url('FBConnectSettings'),
// @todo CHECKME: Should be 'Facebook Connect'?
// TRANS: Menu item tab.
_m('MENU','Facebook'),
// TRANS: Tooltip for menu item "Facebook".
_m('Facebook Connect Settings'),
$action_name === 'FBConnectSettings');
}
return true;
}
/**
* Have the logout process do some Facebook Connect cookie cleanup
*
* @param Action $action the current action
*
* @return void
*/
function onStartLogout($action)
{
if (self::hasKeys()) {
$action->logout();
$fbuid = $this->loggedIn();
if (!empty($fbuid)) {
try {
$facebook = getFacebook();
$facebook->expire_session();
} catch (Exception $e) {
common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
'Could\'t logout of Facebook: ' .
$e->getMessage());
}
}
}
return true;
}
/**
* Get the URL of the user's Facebook avatar
*
* @param int $fbuid the Facebook user ID
*
* @return string $url the url for the user's Facebook avatar
*/
function getProfilePicURL($fbuid)
{
$facebook = getFacebook();
$url = null;
try {
$fqry = 'SELECT pic_square FROM user WHERE uid = %s';
$result = $facebook->api_client->fql_query(sprintf($fqry, $fbuid));
if (!empty($result)) {
$url = $result[0]['pic_square'];
}
} catch (Exception $e) {
common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
"Facebook client failure requesting profile pic!");
}
return $url;
}
/**
* Add a Facebook queue item for each notice
*
* @param Notice $notice the notice
* @param array &$transports the list of transports (queues)
*
* @return boolean hook return
*/
function onStartEnqueueNotice($notice, &$transports)
{
if (self::hasKeys() && $notice->isLocal()) {
array_push($transports, 'facebook');
}
return true;
}
/**
* Register Facebook notice queue handler
*
* @param QueueManager $manager
*
* @return boolean hook return
*/
function onEndInitializeQueueManager($manager)
{
if (self::hasKeys()) {
$manager->connect('facebook', 'FacebookQueueHandler');
}
return true;
}
function onPluginVersion(&$versions)
{
$versions[] = array(
'name' => 'Facebook',
'version' => self::VERSION,
'author' => 'Zach Copley',
'homepage' => 'http://status.net/wiki/Plugin:Facebook',
// TRANS: Plugin description.
'rawdescription' => _m(
'The Facebook plugin allows integrating ' .
'StatusNet instances with ' .
'<a href="http://facebook.com/">Facebook</a> ' .
'and Facebook Connect.'
)
);
return true;
}
}

View File

@ -1,163 +0,0 @@
*** WARNING ***
This plugin is deprecated as of StatusNet 0.9.7, and will soon be removed
completely from the StatusNet codebase. Please install or upgrade to the
new "Facebook Bridge" (plugins/FacebookBridge) plugin ASAP.
***************
Facebook Plugin
===============
This plugin allows you to use Facebook Connect with StatusNet, provides
a Facebook canvas application for your users, and allows them to update
their Facebook statuses from StatusNet.
Facebook Connect
----------------
Facebook connect allows users to register and login using nothing but their
Facebook credentials. With Facebook Connect, your users can:
- Authenticate (register/login/logout -- works similar to OpenID)
- Associate an existing StatusNet account with a Facebook account
- Disconnect a Facebook account from a StatusNet account
Built-in Facebook Application
-----------------------------
The plugin also installs a StatusNet Facebook canvas application that
allows your users to automatically update their Facebook status with
their latest notices, invite their friends to use the app (and thus your
site), view their notice timelines and post notices -- all from within
Facebook. The application is built into the StatusNet Facebook plugin
and runs on your host.
Quick setup instructions*
-------------------------
Install the Facebook Developer application on Facebook:
http://www.facebook.com/developers/
Use it to create a new application and generate an API key and secret.
You will need the key and secret so cut-n-paste them into your text
editor or write them down.
In Facebook's application editor, specify the following URLs for your app:
- Canvas Callback URL : http://example.net/mublog/facebook/app/
- Post-Remove Callback URL : http://example.net/mublog/facebook/app/remove
- Post-Authorize Redirect URL : http://apps.facebook.com/yourapp/
- Canvas Page URL : http://apps.facebook.com/yourapp/
- Connect URL : http://example.net/mublog/
*** ATTENTION ***
These URLs have changed slightly since StatusNet version 0.8.1,
so if you have been using the Facebook app previously, you will
need to update your configuration!
Replace "example.net" with your host's URL, "mublog" with the path to your
StatusNet installation, and 'yourapp' with the name of the Facebook
application you created. (If you don't have "Fancy URLs" on, you'll need to
change http://example.net/mublog/ to http://example.net/mublog/index.php/).
Additionally, Choose "Web" for Application type in the Advanced tab. In the
"Canvas setting" section, choose the "FBML" for Render Method, "Smart Size"
for IFrame size, and "Full width (760px)" for Canvas Width. Everything else
can be left with default values.
* NOTE: For more under-the-hood detailed instructions about setting up a
Facebook application and getting an API key, check out the
following pages on the Facebook wiki:
http://wiki.developers.facebook.com/index.php/Connect/Setting_Up_Your_Site
http://wiki.developers.facebook.com/index.php/Creating_your_first_application
Finally you must activate the plugin by adding it in your config.php
(this is where you'll need the API key and secret generated earlier):
addPlugin(
'Facebook',
array(
'apikey' => 'YOUR_APIKEY',
'secret' => 'YOUR_SECRET'
)
);
Administration Panel
--------------------
As of StatusNet 0.9.0 you can alternatively specify the key and secret
via a Facebook administration panel from within StatusNet, in which case
you can just add:
addPlugin('Facebook');
to activate the plugin.
NOTE: To enable the administration panel you'll need to add it to the
list of active administration panels, e.g.:
$config['admin']['panels'][] = 'facebook';
and of course you'll need a user with the administrative role to access
it and input the API key and secret (see: scripts/userrole.php).
Testing It Out
--------------
If the Facebook plugin is enabled and working, there will be a new Facebook
Connect Settings tab under each user's Connect menu. Users can connect and
disconnect* to their Facebook accounts from it.
To try out the plugin, fire up your browser and connect to:
http://example.net/mublog/main/facebooklogin
or, if you do not have fancy URLs turned on:
http://example.net/mublog/index.php/main/facebooklogin
You should see a page with a blue button that says: "Connect with Facebook"
and you should be able to login or register.
From within Facebook, you should also be able to get to the Facebook
application, and run it by hitting the link you specified above when
configuring it:
http://apps.facebook.com/yourapp/
That link should be present you with a login screen. After logging in to
the app, you are given the option to update their Facebook status via
StatusNet.
* Note: Before a user can disconnect from Facebook, she must set a normal
StatusNet password. Otherwise, she might not be able to login in to her
account in the future. This is usually only required for users who have
used Facebook Connect to register their StatusNet account, and therefore
haven't already set a local password.
Offline Queue Handling
----------------------
For larger sites needing better performance it's possible to enable
queuing and have users' notices posted to Facebook via a separate
"offline" process -- FacebookQueueHandler (facebookqueuhandler.php in
the Facebook plugin directory). It will run automatically if you have
enabled StatusNet's offline queueing subsystem. See the "Queues and
daemons" section in the StatusNet README for more about queuing.
TODO
----
- Make Facebook Connect work for authentication for multi-site setups
(e.g.: *.status.net)
- Posting to Facebook user streams using only Facebook Connect
- Invite Facebook friends to use your StatusNet installation via Facebook
Connect
- Auto-subscribe Facebook friends already using StatusNet
- Share StatusNet favorite notices to your Facebook stream
- Allow users to update their Facebook statuses once they have authenticated
with Facebook Connect (no need for them to use the Facebook app if they
don't want to).
- Import a user's Facebook updates into StatusNet

View File

@ -1,609 +0,0 @@
<?php
// Copyright 2004-2009 Facebook. All Rights Reserved.
//
// +---------------------------------------------------------------------------+
// | Facebook Platform PHP5 client |
// +---------------------------------------------------------------------------+
// | Copyright (c) 2007 Facebook, Inc. |
// | All rights reserved. |
// | |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | |
// | 1. Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | 2. Redistributions in binary form must reproduce the above copyright |
// | notice, this list of conditions and the following disclaimer in the |
// | documentation and/or other materials provided with the distribution. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
// | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
// | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
// | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
// | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
// +---------------------------------------------------------------------------+
// | For help with this library, contact developers-help@facebook.com |
// +---------------------------------------------------------------------------+
include_once 'facebookapi_php5_restlib.php';
define('FACEBOOK_API_VALIDATION_ERROR', 1);
class Facebook {
public $api_client;
public $api_key;
public $secret;
public $generate_session_secret;
public $session_expires;
public $fb_params;
public $user;
public $profile_user;
public $canvas_user;
public $ext_perms = array();
protected $base_domain;
/*
* Create a Facebook client like this:
*
* $fb = new Facebook(API_KEY, SECRET);
*
* This will automatically pull in any parameters, validate them against the
* session signature, and chuck them in the public $fb_params member variable.
*
* @param api_key your Developer API key
* @param secret your Developer API secret
* @param generate_session_secret whether to automatically generate a session
* if the user doesn't have one, but
* there is an auth token present in the url,
*/
public function __construct($api_key, $secret, $generate_session_secret=false) {
$this->api_key = $api_key;
$this->secret = $secret;
$this->generate_session_secret = $generate_session_secret;
$this->api_client = new FacebookRestClient($api_key, $secret, null);
$this->validate_fb_params();
// Set the default user id for methods that allow the caller to
// pass an explicit uid instead of using a session key.
$defaultUser = null;
if ($this->user) {
$defaultUser = $this->user;
} else if ($this->profile_user) {
$defaultUser = $this->profile_user;
} else if ($this->canvas_user) {
$defaultUser = $this->canvas_user;
}
$this->api_client->set_user($defaultUser);
if (isset($this->fb_params['friends'])) {
$this->api_client->friends_list =
array_filter(explode(',', $this->fb_params['friends']));
}
if (isset($this->fb_params['added'])) {
$this->api_client->added = $this->fb_params['added'];
}
if (isset($this->fb_params['canvas_user'])) {
$this->api_client->canvas_user = $this->fb_params['canvas_user'];
}
}
/*
* Validates that the parameters passed in were sent from Facebook. It does so
* by validating that the signature matches one that could only be generated
* by using your application's secret key.
*
* Facebook-provided parameters will come from $_POST, $_GET, or $_COOKIE,
* in that order. $_POST and $_GET are always more up-to-date than cookies,
* so we prefer those if they are available.
*
* For nitty-gritty details of when each of these is used, check out
* http://wiki.developers.facebook.com/index.php/Verifying_The_Signature
*/
public function validate_fb_params() {
$this->fb_params = $this->get_valid_fb_params($_POST, 48 * 3600, 'fb_sig');
// note that with preload FQL, it's possible to receive POST params in
// addition to GET, so use a different prefix to differentiate them
if (!$this->fb_params) {
$fb_params = $this->get_valid_fb_params($_GET, 48 * 3600, 'fb_sig');
$fb_post_params = $this->get_valid_fb_params($_POST,
48 * 3600, // 48 hours
'fb_post_sig');
$this->fb_params = array_merge($fb_params, $fb_post_params);
}
// Okay, something came in via POST or GET
if ($this->fb_params) {
$user = isset($this->fb_params['user']) ?
$this->fb_params['user'] : null;
$this->profile_user = isset($this->fb_params['profile_user']) ?
$this->fb_params['profile_user'] : null;
$this->canvas_user = isset($this->fb_params['canvas_user']) ?
$this->fb_params['canvas_user'] : null;
$this->base_domain = isset($this->fb_params['base_domain']) ?
$this->fb_params['base_domain'] : null;
$this->ext_perms = isset($this->fb_params['ext_perms']) ?
explode(',', $this->fb_params['ext_perms'])
: array();
if (isset($this->fb_params['session_key'])) {
$session_key = $this->fb_params['session_key'];
} else if (isset($this->fb_params['profile_session_key'])) {
$session_key = $this->fb_params['profile_session_key'];
} else {
$session_key = null;
}
$expires = isset($this->fb_params['expires']) ?
$this->fb_params['expires'] : null;
$this->set_user($user,
$session_key,
$expires);
} else if ($cookies =
$this->get_valid_fb_params($_COOKIE, null, $this->api_key)) {
// if no Facebook parameters were found in the GET or POST variables,
// then fall back to cookies, which may have cached user information
// Cookies are also used to receive session data via the Javascript API
$base_domain_cookie = 'base_domain_' . $this->api_key;
if (isset($_COOKIE[$base_domain_cookie])) {
$this->base_domain = $_COOKIE[$base_domain_cookie];
}
// use $api_key . '_' as a prefix for the cookies in case there are
// multiple facebook clients on the same domain.
$expires = isset($cookies['expires']) ? $cookies['expires'] : null;
$this->set_user($cookies['user'],
$cookies['session_key'],
$expires);
}
return !empty($this->fb_params);
}
// Store a temporary session secret for the current session
// for use with the JS client library
public function promote_session() {
try {
$session_secret = $this->api_client->auth_promoteSession();
if (!$this->in_fb_canvas()) {
$this->set_cookies($this->user, $this->api_client->session_key, $this->session_expires, $session_secret);
}
return $session_secret;
} catch (FacebookRestClientException $e) {
// API_EC_PARAM means we don't have a logged in user, otherwise who
// knows what it means, so just throw it.
if ($e->getCode() != FacebookAPIErrorCodes::API_EC_PARAM) {
throw $e;
}
}
}
public function do_get_session($auth_token) {
try {
return $this->api_client->auth_getSession($auth_token, $this->generate_session_secret);
} catch (FacebookRestClientException $e) {
// API_EC_PARAM means we don't have a logged in user, otherwise who
// knows what it means, so just throw it.
if ($e->getCode() != FacebookAPIErrorCodes::API_EC_PARAM) {
throw $e;
}
}
}
// Invalidate the session currently being used, and clear any state associated
// with it. Note that the user will still remain logged into Facebook.
public function expire_session() {
try {
if ($this->api_client->auth_expireSession()) {
$this->clear_cookie_state();
return true;
} else {
return false;
}
} catch (Exception $e) {
$this->clear_cookie_state();
}
}
/** Logs the user out of all temporary application sessions as well as their
* Facebook session. Note this will only work if the user has a valid current
* session with the application.
*
* @param string $next URL to redirect to upon logging out
*
*/
public function logout($next) {
$logout_url = $this->get_logout_url($next);
// Clear any stored state
$this->clear_cookie_state();
$this->redirect($logout_url);
}
/**
* Clears any persistent state stored about the user, including
* cookies and information related to the current session in the
* client.
*
*/
public function clear_cookie_state() {
if (!$this->in_fb_canvas() && isset($_COOKIE[$this->api_key . '_user'])) {
$cookies = array('user', 'session_key', 'expires', 'ss');
foreach ($cookies as $name) {
setcookie($this->api_key . '_' . $name,
false,
time() - 3600,
'',
$this->base_domain);
unset($_COOKIE[$this->api_key . '_' . $name]);
}
setcookie($this->api_key, false, time() - 3600, '', $this->base_domain);
unset($_COOKIE[$this->api_key]);
}
// now, clear the rest of the stored state
$this->user = 0;
$this->api_client->session_key = 0;
}
public function redirect($url) {
if ($this->in_fb_canvas()) {
echo '<fb:redirect url="' . $url . '"/>';
} else if (preg_match('/^https?:\/\/([^\/]*\.)?facebook\.com(:\d+)?/i', $url)) {
// make sure facebook.com url's load in the full frame so that we don't
// get a frame within a frame.
echo "<script type=\"text/javascript\">\ntop.location.href = \"$url\";\n</script>";
} else {
header('Location: ' . $url);
}
exit;
}
public function in_frame() {
return isset($this->fb_params['in_canvas'])
|| isset($this->fb_params['in_iframe']);
}
public function in_fb_canvas() {
return isset($this->fb_params['in_canvas']);
}
public function get_loggedin_user() {
return $this->user;
}
public function get_canvas_user() {
return $this->canvas_user;
}
public function get_profile_user() {
return $this->profile_user;
}
public static function current_url() {
return 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
// require_add and require_install have been removed.
// see http://developer.facebook.com/news.php?blog=1&story=116 for more details
public function require_login($required_permissions = '') {
$user = $this->get_loggedin_user();
$has_permissions = true;
if ($required_permissions) {
$this->require_frame();
$permissions = array_map('trim', explode(',', $required_permissions));
foreach ($permissions as $permission) {
if (!in_array($permission, $this->ext_perms)) {
$has_permissions = false;
break;
}
}
}
if ($user && $has_permissions) {
return $user;
}
$this->redirect(
$this->get_login_url(self::current_url(), $this->in_frame(),
$required_permissions));
}
public function require_frame() {
if (!$this->in_frame()) {
$this->redirect($this->get_login_url(self::current_url(), true));
}
}
public static function get_facebook_url($subdomain='www') {
return 'http://' . $subdomain . '.facebook.com';
}
public function get_install_url($next=null) {
// this was renamed, keeping for compatibility's sake
return $this->get_add_url($next);
}
public function get_add_url($next=null) {
$page = self::get_facebook_url().'/add.php';
$params = array('api_key' => $this->api_key);
if ($next) {
$params['next'] = $next;
}
return $page . '?' . http_build_query($params);
}
public function get_login_url($next, $canvas, $req_perms = '') {
$page = self::get_facebook_url().'/login.php';
$params = array('api_key' => $this->api_key,
'v' => '1.0',
'req_perms' => $req_perms);
if ($next) {
$params['next'] = $next;
}
if ($canvas) {
$params['canvas'] = '1';
}
return $page . '?' . http_build_query($params);
}
public function get_logout_url($next) {
$page = self::get_facebook_url().'/logout.php';
$params = array('app_key' => $this->api_key,
'session_key' => $this->api_client->session_key);
if ($next) {
$params['connect_next'] = 1;
$params['next'] = $next;
}
return $page . '?' . http_build_query($params);
}
public function set_user($user, $session_key, $expires=null, $session_secret=null) {
if (!$this->in_fb_canvas() && (!isset($_COOKIE[$this->api_key . '_user'])
|| $_COOKIE[$this->api_key . '_user'] != $user)) {
$this->set_cookies($user, $session_key, $expires, $session_secret);
}
$this->user = $user;
$this->api_client->session_key = $session_key;
$this->session_expires = $expires;
}
public function set_cookies($user, $session_key, $expires=null, $session_secret=null) {
$cookies = array();
$cookies['user'] = $user;
$cookies['session_key'] = $session_key;
if ($expires != null) {
$cookies['expires'] = $expires;
}
if ($session_secret != null) {
$cookies['ss'] = $session_secret;
}
foreach ($cookies as $name => $val) {
setcookie($this->api_key . '_' . $name, $val, (int)$expires, '', $this->base_domain);
$_COOKIE[$this->api_key . '_' . $name] = $val;
}
$sig = self::generate_sig($cookies, $this->secret);
setcookie($this->api_key, $sig, (int)$expires, '', $this->base_domain);
$_COOKIE[$this->api_key] = $sig;
if ($this->base_domain != null) {
$base_domain_cookie = 'base_domain_' . $this->api_key;
setcookie($base_domain_cookie, $this->base_domain, (int)$expires, '', $this->base_domain);
$_COOKIE[$base_domain_cookie] = $this->base_domain;
}
}
/**
* Tries to undo the badness of magic quotes as best we can
* @param string $val Should come directly from $_GET, $_POST, etc.
* @return string val without added slashes
*/
public static function no_magic_quotes($val) {
if (get_magic_quotes_gpc()) {
return stripslashes($val);
} else {
return $val;
}
}
/*
* Get the signed parameters that were sent from Facebook. Validates the set
* of parameters against the included signature.
*
* Since Facebook sends data to your callback URL via unsecured means, the
* signature is the only way to make sure that the data actually came from
* Facebook. So if an app receives a request at the callback URL, it should
* always verify the signature that comes with against your own secret key.
* Otherwise, it's possible for someone to spoof a request by
* pretending to be someone else, i.e.:
* www.your-callback-url.com/?fb_user=10101
*
* This is done automatically by verify_fb_params.
*
* @param assoc $params a full array of external parameters.
* presumed $_GET, $_POST, or $_COOKIE
* @param int $timeout number of seconds that the args are good for.
* Specifically good for forcing cookies to expire.
* @param string $namespace prefix string for the set of parameters we want
* to verify. i.e., fb_sig or fb_post_sig
*
* @return assoc the subset of parameters containing the given prefix,
* and also matching the signature associated with them.
* OR an empty array if the params do not validate
*/
public function get_valid_fb_params($params, $timeout=null, $namespace='fb_sig') {
$prefix = $namespace . '_';
$prefix_len = strlen($prefix);
$fb_params = array();
if (empty($params)) {
return array();
}
foreach ($params as $name => $val) {
// pull out only those parameters that match the prefix
// note that the signature itself ($params[$namespace]) is not in the list
if (strpos($name, $prefix) === 0) {
$fb_params[substr($name, $prefix_len)] = self::no_magic_quotes($val);
}
}
// validate that the request hasn't expired. this is most likely
// for params that come from $_COOKIE
if ($timeout && (!isset($fb_params['time']) || time() - $fb_params['time'] > $timeout)) {
return array();
}
// validate that the params match the signature
$signature = isset($params[$namespace]) ? $params[$namespace] : null;
if (!$signature || (!$this->verify_signature($fb_params, $signature))) {
return array();
}
return $fb_params;
}
/**
* Validates the account that a user was trying to set up an
* independent account through Facebook Connect.
*
* @param user The user attempting to set up an independent account.
* @param hash The hash passed to the reclamation URL used.
* @return bool True if the user is the one that selected the
* reclamation link.
*/
public function verify_account_reclamation($user, $hash) {
return $hash == md5($user . $this->secret);
}
/**
* Validates that a given set of parameters match their signature.
* Parameters all match a given input prefix, such as "fb_sig".
*
* @param $fb_params an array of all Facebook-sent parameters,
* not including the signature itself
* @param $expected_sig the expected result to check against
*/
public function verify_signature($fb_params, $expected_sig) {
return self::generate_sig($fb_params, $this->secret) == $expected_sig;
}
/**
* Validate the given signed public session data structure with
* public key of the app that
* the session proof belongs to.
*
* @param $signed_data the session info that is passed by another app
* @param string $public_key Optional public key of the app. If this
* is not passed, function will make an API call to get it.
* return true if the session proof passed verification.
*/
public function verify_signed_public_session_data($signed_data,
$public_key = null) {
// If public key is not already provided, we need to get it through API
if (!$public_key) {
$public_key = $this->api_client->auth_getAppPublicKey(
$signed_data['api_key']);
}
// Create data to verify
$data_to_serialize = $signed_data;
unset($data_to_serialize['sig']);
$serialized_data = implode('_', $data_to_serialize);
// Decode signature
$signature = base64_decode($signed_data['sig']);
$result = openssl_verify($serialized_data, $signature, $public_key,
OPENSSL_ALGO_SHA1);
return $result == 1;
}
/*
* Generate a signature using the application secret key.
*
* The only two entities that know your secret key are you and Facebook,
* according to the Terms of Service. Since nobody else can generate
* the signature, you can rely on it to verify that the information
* came from Facebook.
*
* @param $params_array an array of all Facebook-sent parameters,
* NOT INCLUDING the signature itself
* @param $secret your app's secret key
*
* @return a hash to be checked against the signature provided by Facebook
*/
public static function generate_sig($params_array, $secret) {
$str = '';
ksort($params_array);
// Note: make sure that the signature parameter is not already included in
// $params_array.
foreach ($params_array as $k=>$v) {
$str .= "$k=$v";
}
$str .= $secret;
return md5($str);
}
public function encode_validationError($summary, $message) {
return json_encode(
array('errorCode' => FACEBOOK_API_VALIDATION_ERROR,
'errorTitle' => $summary,
'errorMessage' => $message));
}
public function encode_multiFeedStory($feed, $next) {
return json_encode(
array('method' => 'multiFeedStory',
'content' =>
array('next' => $next,
'feed' => $feed)));
}
public function encode_feedStory($feed, $next) {
return json_encode(
array('method' => 'feedStory',
'content' =>
array('next' => $next,
'feed' => $feed)));
}
public function create_templatizedFeedStory($title_template, $title_data=array(),
$body_template='', $body_data = array(), $body_general=null,
$image_1=null, $image_1_link=null,
$image_2=null, $image_2_link=null,
$image_3=null, $image_3_link=null,
$image_4=null, $image_4_link=null) {
return array('title_template'=> $title_template,
'title_data' => $title_data,
'body_template'=> $body_template,
'body_data' => $body_data,
'body_general' => $body_general,
'image_1' => $image_1,
'image_1_link' => $image_1_link,
'image_2' => $image_2,
'image_2_link' => $image_2_link,
'image_3' => $image_3,
'image_3_link' => $image_3_link,
'image_4' => $image_4,
'image_4_link' => $image_4_link);
}
}

View File

@ -1,104 +0,0 @@
<?php
// Copyright 2004-2009 Facebook. All Rights Reserved.
//
// +---------------------------------------------------------------------------+
// | Facebook Platform PHP5 client |
// +---------------------------------------------------------------------------+
// | Copyright (c) 2007 Facebook, Inc. |
// | All rights reserved. |
// | |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | |
// | 1. Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | 2. Redistributions in binary form must reproduce the above copyright |
// | notice, this list of conditions and the following disclaimer in the |
// | documentation and/or other materials provided with the distribution. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
// | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
// | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
// | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
// | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
// +---------------------------------------------------------------------------+
// | For help with this library, contact developers-help@facebook.com |
// +---------------------------------------------------------------------------+
//
/**
* This class extends and modifies the "Facebook" class to better
* suit desktop apps.
*/
class FacebookDesktop extends Facebook {
// the application secret, which differs from the session secret
public $app_secret;
public $verify_sig;
public function __construct($api_key, $secret) {
$this->app_secret = $secret;
$this->verify_sig = false;
parent::__construct($api_key, $secret);
}
public function do_get_session($auth_token) {
$this->api_client->secret = $this->app_secret;
$this->api_client->session_key = null;
$session_info = parent::do_get_session($auth_token);
if (!empty($session_info['secret'])) {
// store the session secret
$this->set_session_secret($session_info['secret']);
}
return $session_info;
}
public function set_session_secret($session_secret) {
$this->secret = $session_secret;
$this->api_client->use_session_secret($session_secret);
}
public function require_login() {
if ($this->get_loggedin_user()) {
try {
// try a session-based API call to ensure that we have the correct
// session secret
$user = $this->api_client->users_getLoggedInUser();
// now that we have a valid session secret, verify the signature
$this->verify_sig = true;
if ($this->validate_fb_params(false)) {
return $user;
} else {
// validation failed
return null;
}
} catch (FacebookRestClientException $ex) {
if (isset($_GET['auth_token'])) {
// if we have an auth_token, use it to establish a session
$session_info = $this->do_get_session($_GET['auth_token']);
if ($session_info) {
return $session_info['uid'];
}
}
}
}
// if we get here, we need to redirect the user to log in
$this->redirect($this->get_login_url(self::current_url(), $this->in_fb_canvas()));
}
public function verify_signature($fb_params, $expected_sig) {
// we don't want to verify the signature until we have a valid
// session secret
if ($this->verify_sig) {
return parent::verify_signature($fb_params, $expected_sig);
} else {
return true;
}
}
}

View File

@ -1,260 +0,0 @@
<?php
// Copyright 2004-2009 Facebook. All Rights Reserved.
//
// +---------------------------------------------------------------------------+
// | Facebook Platform PHP5 client |
// +---------------------------------------------------------------------------+
// | Copyright (c) 2007 Facebook, Inc. |
// | All rights reserved. |
// | |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | |
// | 1. Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | 2. Redistributions in binary form must reproduce the above copyright |
// | notice, this list of conditions and the following disclaimer in the |
// | documentation and/or other materials provided with the distribution. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
// | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
// | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
// | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
// | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
// +---------------------------------------------------------------------------+
// | For help with this library, contact developers-help@facebook.com |
// +---------------------------------------------------------------------------+
//
/**
* This class extends and modifies the "Facebook" class to better suit wap
* apps. Since there is no javascript support, we need to use server redirect
* to implement Facebook connect functionalities such as authenticate,
* authorize, feed form etc.. This library provide many helper functions for
* wap developer to locate the right wap url. The url here is targed at
* facebook wap site or wap-friendly url.
*/
class FacebookMobile extends Facebook {
// the application secret, which differs from the session secret
public function __construct($api_key, $secret, $generate_session_secret=false) {
parent::__construct($api_key, $secret, $generate_session_secret);
}
public function redirect($url) {
header('Location: '. $url);
}
public function get_m_url($action, $params) {
$page = parent::get_facebook_url('m'). '/' .$action;
foreach($params as $key => $val) {
if (!$val) {
unset($params[$key]);
}
}
return $page . '?' . http_build_query($params);
}
public function get_www_url($action, $params) {
$page = parent::get_facebook_url('www'). '/' .$action;
foreach($params as $key => $val) {
if (!$val) {
unset($params[$key]);
}
}
return $page . '?' . http_build_query($params);
}
public function get_add_url($next=null) {
return $this->get_m_url('add.php', array('api_key' => $this->api_key,
'next' => $next));
}
public function get_tos_url($next=null, $cancel = null, $canvas=null) {
return $this->get_m_url('tos.php', array('api_key' => $this->api_key,
'v' => '1.0',
'next' => $next,
'canvas' => $canvas,
'cancel' => $cancel));
}
public function get_logout_url($next=null) {
$params = array('api_key' => $this->api_key,
'session_key' => $this->api_client->session_key,
);
if ($next) {
$params['connect_next'] = 1;
$params['next'] = $next;
}
return $this->get_m_url('logout.php', $params);
}
public function get_register_url($next=null, $cancel_url=null) {
return $this->get_m_url('r.php',
array('fbconnect' => 1,
'api_key' => $this->api_key,
'next' => $next ? $next : parent::current_url(),
'cancel_url' => $cancel_url ? $cancel_url : parent::current_url()));
}
/**
* These set of fbconnect style url redirect back to the application current
* page when the action is done. Developer can also use the non fbconnect
* style url and provide their own redirect link by giving the right parameter
* to $next and/or $cancel_url
*/
public function get_fbconnect_register_url() {
return $this->get_register_url(parent::current_url(), parent::current_url());
}
public function get_fbconnect_tos_url() {
return $this->get_tos_url(parent::current_url(), parent::current_url(), $this->in_frame());
}
public function get_fbconnect_logout_url() {
return $this->get_logout_url(parent::current_url());
}
public function logout_user() {
$this->user = null;
}
public function get_prompt_permissions_url($ext_perm,
$next=null,
$cancel_url=null) {
return $this->get_www_url('connect/prompt_permissions.php',
array('api_key' => $this->api_key,
'ext_perm' => $ext_perm,
'next' => $next ? $next : parent::current_url(),
'cancel' => $cancel_url ? $cancel_url : parent::current_url(),
'display' => 'wap'));
}
/**
* support both prompt_permissions.php and authorize.php for now.
* authorized.php is to be deprecate though.
*/
public function get_extended_permission_url($ext_perm,
$next=null,
$cancel_url=null) {
$next = $next ? $next : parent::current_url();
$cancel_url = $cancel_url ? $cancel_url : parent::current_url();
return $this->get_m_url('authorize.php',
array('api_key' => $this->api_key,
'ext_perm' => $ext_perm,
'next' => $next,
'cancel_url' => $cancel_url));
}
public function render_prompt_feed_url($action_links=NULL,
$target_id=NULL,
$message='',
$user_message_prompt='',
$caption=NULL,
$callback ='',
$cancel='',
$attachment=NULL,
$preview=true) {
$params = array('api_key' => $this->api_key,
'session_key' => $this->api_client->session_key,
);
if (!empty($attachment)) {
$params['attachment'] = urlencode(json_encode($attachment));
} else {
$attachment = new stdClass();
$app_display_info = $this->api_client->admin_getAppProperties(array('application_name',
'callback_url',
'description',
'logo_url'));
$app_display_info = $app_display_info;
$attachment->name = $app_display_info['application_name'];
$attachment->caption = !empty($caption) ? $caption : 'Just see what\'s new!';
$attachment->description = $app_display_info['description'];
$attachment->href = $app_display_info['callback_url'];
if (!empty($app_display_info['logo_url'])) {
$logo = new stdClass();
$logo->type = 'image';
$logo->src = $app_display_info['logo_url'];
$logo->href = $app_display_info['callback_url'];
$attachment->media = array($logo);
}
$params['attachment'] = urlencode(json_encode($attachment));
}
$params['preview'] = $preview;
$params['message'] = $message;
$params['user_message_prompt'] = $user_message_prompt;
if (!empty($callback)) {
$params['callback'] = $callback;
} else {
$params['callback'] = $this->current_url();
}
if (!empty($cancel)) {
$params['cancel'] = $cancel;
} else {
$params['cancel'] = $this->current_url();
}
if (!empty($target_id)) {
$params['target_id'] = $target_id;
}
if (!empty($action_links)) {
$params['action_links'] = urlencode(json_encode($action_links));
}
$params['display'] = 'wap';
header('Location: '. $this->get_www_url('connect/prompt_feed.php', $params));
}
//use template_id
public function render_feed_form_url($template_id=NULL,
$template_data=NULL,
$user_message=NULL,
$body_general=NULL,
$user_message_prompt=NULL,
$target_id=NULL,
$callback=NULL,
$cancel=NULL,
$preview=true) {
$params = array('api_key' => $this->api_key);
$params['preview'] = $preview;
if (isset($template_id) && $template_id) {
$params['template_id'] = $template_id;
}
$params['message'] = $user_message ? $user_message['value'] : '';
if (isset($body_general) && $body_general) {
$params['body_general'] = $body_general;
}
if (isset($user_message_prompt) && $user_message_prompt) {
$params['user_message_prompt'] = $user_message_prompt;
}
if (isset($callback) && $callback) {
$params['callback'] = $callback;
} else {
$params['callback'] = $this->current_url();
}
if (isset($cancel) && $cancel) {
$params['cancel'] = $cancel;
} else {
$params['cancel'] = $this->current_url();
}
if (isset($template_data) && $template_data) {
$params['template_data'] = $template_data;
}
if (isset($target_id) && $target_id) {
$params['to_ids'] = $target_id;
}
$params['display'] = 'wap';
header('Location: '. $this->get_www_url('connect/prompt_feed.php', $params));
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,806 +0,0 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Converts to and from JSON format.
*
* JSON (JavaScript Object Notation) is a lightweight data-interchange
* format. It is easy for humans to read and write. It is easy for machines
* to parse and generate. It is based on a subset of the JavaScript
* Programming Language, Standard ECMA-262 3rd Edition - December 1999.
* This feature can also be found in Python. JSON is a text format that is
* completely language independent but uses conventions that are familiar
* to programmers of the C-family of languages, including C, C++, C#, Java,
* JavaScript, Perl, TCL, and many others. These properties make JSON an
* ideal data-interchange language.
*
* This package provides a simple encoder and decoder for JSON notation. It
* is intended for use with client-side Javascript applications that make
* use of HTTPRequest to perform server communication functions - data can
* be encoded into JSON notation for use in a client-side javascript, or
* decoded from incoming Javascript requests. JSON format is native to
* Javascript, and can be directly eval()'ed with no further parsing
* overhead
*
* All strings should be in ASCII or UTF-8 format!
*
* LICENSE: Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the following
* conditions are met: Redistributions of source code must retain the
* above copyright notice, this list of conditions and the following
* disclaimer. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* @category
* @package Services_JSON
* @author Michal Migurski <mike-json@teczno.com>
* @author Matt Knapp <mdknapp[at]gmail[dot]com>
* @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
* @copyright 2005 Michal Migurski
* @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
* @license http://www.opensource.org/licenses/bsd-license.php
* @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
*/
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_SLICE', 1);
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_STR', 2);
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_ARR', 3);
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_OBJ', 4);
/**
* Marker constant for Services_JSON::decode(), used to flag stack state
*/
define('SERVICES_JSON_IN_CMT', 5);
/**
* Behavior switch for Services_JSON::decode()
*/
define('SERVICES_JSON_LOOSE_TYPE', 16);
/**
* Behavior switch for Services_JSON::decode()
*/
define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
/**
* Converts to and from JSON format.
*
* Brief example of use:
*
* <code>
* // create a new instance of Services_JSON
* $json = new Services_JSON();
*
* // convert a complexe value to JSON notation, and send it to the browser
* $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
* $output = $json->encode($value);
*
* print($output);
* // prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
*
* // accept incoming POST data, assumed to be in JSON notation
* $input = file_get_contents('php://input', 1000000);
* $value = $json->decode($input);
* </code>
*/
class Services_JSON
{
/**
* constructs a new JSON instance
*
* @param int $use object behavior flags; combine with boolean-OR
*
* possible values:
* - SERVICES_JSON_LOOSE_TYPE: loose typing.
* "{...}" syntax creates associative arrays
* instead of objects in decode().
* - SERVICES_JSON_SUPPRESS_ERRORS: error suppression.
* Values which can't be encoded (e.g. resources)
* appear as NULL instead of throwing errors.
* By default, a deeply-nested resource will
* bubble up with an error, so all return values
* from encode() should be checked with isError()
*/
function Services_JSON($use = 0)
{
$this->use = $use;
}
/**
* convert a string from one UTF-16 char to one UTF-8 char
*
* Normally should be handled by mb_convert_encoding, but
* provides a slower PHP-only method for installations
* that lack the multibye string extension.
*
* @param string $utf16 UTF-16 character
* @return string UTF-8 character
* @access private
*/
function utf162utf8($utf16)
{
// oh please oh please oh please oh please oh please
if(function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
}
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
switch(true) {
case ((0x7F & $bytes) == $bytes):
// this case should never be reached, because we are in ASCII range
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr(0x7F & $bytes);
case (0x07FF & $bytes) == $bytes:
// return a 2-byte UTF-8 character
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr(0xC0 | (($bytes >> 6) & 0x1F))
. chr(0x80 | ($bytes & 0x3F));
case (0xFFFF & $bytes) == $bytes:
// return a 3-byte UTF-8 character
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr(0xE0 | (($bytes >> 12) & 0x0F))
. chr(0x80 | (($bytes >> 6) & 0x3F))
. chr(0x80 | ($bytes & 0x3F));
}
// ignoring UTF-32 for now, sorry
return '';
}
/**
* convert a string from one UTF-8 char to one UTF-16 char
*
* Normally should be handled by mb_convert_encoding, but
* provides a slower PHP-only method for installations
* that lack the multibye string extension.
*
* @param string $utf8 UTF-8 character
* @return string UTF-16 character
* @access private
*/
function utf82utf16($utf8)
{
// oh please oh please oh please oh please oh please
if(function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
}
switch(strlen($utf8)) {
case 1:
// this case should never be reached, because we are in ASCII range
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return $utf8;
case 2:
// return a UTF-16 character from a 2-byte UTF-8 char
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr(0x07 & (ord($utf8{0}) >> 2))
. chr((0xC0 & (ord($utf8{0}) << 6))
| (0x3F & ord($utf8{1})));
case 3:
// return a UTF-16 character from a 3-byte UTF-8 char
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
return chr((0xF0 & (ord($utf8{0}) << 4))
| (0x0F & (ord($utf8{1}) >> 2)))
. chr((0xC0 & (ord($utf8{1}) << 6))
| (0x7F & ord($utf8{2})));
}
// ignoring UTF-32 for now, sorry
return '';
}
/**
* encodes an arbitrary variable into JSON format
*
* @param mixed $var any number, boolean, string, array, or object to be encoded.
* see argument 1 to Services_JSON() above for array-parsing behavior.
* if var is a strng, note that encode() always expects it
* to be in ASCII or UTF-8 format!
*
* @return mixed JSON string representation of input var or an error if a problem occurs
* @access public
*/
function encode($var)
{
switch (gettype($var)) {
case 'boolean':
return $var ? 'true' : 'false';
case 'NULL':
return 'null';
case 'integer':
return (int) $var;
case 'double':
case 'float':
return (float) $var;
case 'string':
// STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
$ascii = '';
$strlen_var = strlen($var);
/*
* Iterate over every character in the string,
* escaping with a slash or encoding to UTF-8 where necessary
*/
for ($c = 0; $c < $strlen_var; ++$c) {
$ord_var_c = ord($var{$c});
switch (true) {
case $ord_var_c == 0x08:
$ascii .= '\b';
break;
case $ord_var_c == 0x09:
$ascii .= '\t';
break;
case $ord_var_c == 0x0A:
$ascii .= '\n';
break;
case $ord_var_c == 0x0C:
$ascii .= '\f';
break;
case $ord_var_c == 0x0D:
$ascii .= '\r';
break;
case $ord_var_c == 0x22:
case $ord_var_c == 0x2F:
case $ord_var_c == 0x5C:
// double quote, slash, slosh
$ascii .= '\\'.$var{$c};
break;
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
// characters U-00000000 - U-0000007F (same as ASCII)
$ascii .= $var{$c};
break;
case (($ord_var_c & 0xE0) == 0xC0):
// characters U-00000080 - U-000007FF, mask 110XXXXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
$c += 1;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
break;
case (($ord_var_c & 0xF0) == 0xE0):
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}));
$c += 2;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
break;
case (($ord_var_c & 0xF8) == 0xF0):
// characters U-00010000 - U-001FFFFF, mask 11110XXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}));
$c += 3;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
break;
case (($ord_var_c & 0xFC) == 0xF8):
// characters U-00200000 - U-03FFFFFF, mask 111110XX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}),
ord($var{$c + 4}));
$c += 4;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
break;
case (($ord_var_c & 0xFE) == 0xFC):
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}),
ord($var{$c + 4}),
ord($var{$c + 5}));
$c += 5;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
break;
}
}
return '"'.$ascii.'"';
case 'array':
/*
* As per JSON spec if any array key is not an integer
* we must treat the the whole array as an object. We
* also try to catch a sparsely populated associative
* array with numeric keys here because some JS engines
* will create an array with empty indexes up to
* max_index which can cause memory issues and because
* the keys, which may be relevant, will be remapped
* otherwise.
*
* As per the ECMA and JSON specification an object may
* have any string as a property. Unfortunately due to
* a hole in the ECMA specification if the key is a
* ECMA reserved word or starts with a digit the
* parameter is only accessible using ECMAScript's
* bracket notation.
*/
// treat as a JSON object
if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
$properties = array_map(array($this, 'name_value'),
array_keys($var),
array_values($var));
foreach($properties as $property) {
if(Services_JSON::isError($property)) {
return $property;
}
}
return '{' . join(',', $properties) . '}';
}
// treat it like a regular array
$elements = array_map(array($this, 'encode'), $var);
foreach($elements as $element) {
if(Services_JSON::isError($element)) {
return $element;
}
}
return '[' . join(',', $elements) . ']';
case 'object':
$vars = get_object_vars($var);
$properties = array_map(array($this, 'name_value'),
array_keys($vars),
array_values($vars));
foreach($properties as $property) {
if(Services_JSON::isError($property)) {
return $property;
}
}
return '{' . join(',', $properties) . '}';
default:
return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS)
? 'null'
: new Services_JSON_Error(gettype($var)." can not be encoded as JSON string");
}
}
/**
* array-walking function for use in generating JSON-formatted name-value pairs
*
* @param string $name name of key to use
* @param mixed $value reference to an array element to be encoded
*
* @return string JSON-formatted name-value pair, like '"name":value'
* @access private
*/
function name_value($name, $value)
{
$encoded_value = $this->encode($value);
if(Services_JSON::isError($encoded_value)) {
return $encoded_value;
}
return $this->encode(strval($name)) . ':' . $encoded_value;
}
/**
* reduce a string by removing leading and trailing comments and whitespace
*
* @param $str string string value to strip of comments and whitespace
*
* @return string string value stripped of comments and whitespace
* @access private
*/
function reduce_string($str)
{
$str = preg_replace(array(
// eliminate single line comments in '// ...' form
'#^\s*//(.+)$#m',
// eliminate multi-line comments in '/* ... */' form, at start of string
'#^\s*/\*(.+)\*/#Us',
// eliminate multi-line comments in '/* ... */' form, at end of string
'#/\*(.+)\*/\s*$#Us'
), '', $str);
// eliminate extraneous space
return trim($str);
}
/**
* decodes a JSON string into appropriate variable
*
* @param string $str JSON-formatted string
*
* @return mixed number, boolean, string, array, or object
* corresponding to given JSON input string.
* See argument 1 to Services_JSON() above for object-output behavior.
* Note that decode() always returns strings
* in ASCII or UTF-8 format!
* @access public
*/
function decode($str)
{
$str = $this->reduce_string($str);
switch (strtolower($str)) {
case 'true':
return true;
case 'false':
return false;
case 'null':
return null;
default:
$m = array();
if (is_numeric($str)) {
// Lookie-loo, it's a number
// This would work on its own, but I'm trying to be
// good about returning integers where appropriate:
// return (float)$str;
// Return float or int, as appropriate
return ((float)$str == (integer)$str)
? (integer)$str
: (float)$str;
} elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) {
// STRINGS RETURNED IN UTF-8 FORMAT
$delim = substr($str, 0, 1);
$chrs = substr($str, 1, -1);
$utf8 = '';
$strlen_chrs = strlen($chrs);
for ($c = 0; $c < $strlen_chrs; ++$c) {
$substr_chrs_c_2 = substr($chrs, $c, 2);
$ord_chrs_c = ord($chrs{$c});
switch (true) {
case $substr_chrs_c_2 == '\b':
$utf8 .= chr(0x08);
++$c;
break;
case $substr_chrs_c_2 == '\t':
$utf8 .= chr(0x09);
++$c;
break;
case $substr_chrs_c_2 == '\n':
$utf8 .= chr(0x0A);
++$c;
break;
case $substr_chrs_c_2 == '\f':
$utf8 .= chr(0x0C);
++$c;
break;
case $substr_chrs_c_2 == '\r':
$utf8 .= chr(0x0D);
++$c;
break;
case $substr_chrs_c_2 == '\\"':
case $substr_chrs_c_2 == '\\\'':
case $substr_chrs_c_2 == '\\\\':
case $substr_chrs_c_2 == '\\/':
if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
($delim == "'" && $substr_chrs_c_2 != '\\"')) {
$utf8 .= $chrs{++$c};
}
break;
case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)):
// single, escaped unicode character
$utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))
. chr(hexdec(substr($chrs, ($c + 4), 2)));
$utf8 .= $this->utf162utf8($utf16);
$c += 5;
break;
case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
$utf8 .= $chrs{$c};
break;
case ($ord_chrs_c & 0xE0) == 0xC0:
// characters U-00000080 - U-000007FF, mask 110XXXXX
//see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$utf8 .= substr($chrs, $c, 2);
++$c;
break;
case ($ord_chrs_c & 0xF0) == 0xE0:
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$utf8 .= substr($chrs, $c, 3);
$c += 2;
break;
case ($ord_chrs_c & 0xF8) == 0xF0:
// characters U-00010000 - U-001FFFFF, mask 11110XXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$utf8 .= substr($chrs, $c, 4);
$c += 3;
break;
case ($ord_chrs_c & 0xFC) == 0xF8:
// characters U-00200000 - U-03FFFFFF, mask 111110XX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$utf8 .= substr($chrs, $c, 5);
$c += 4;
break;
case ($ord_chrs_c & 0xFE) == 0xFC:
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$utf8 .= substr($chrs, $c, 6);
$c += 5;
break;
}
}
return $utf8;
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
// array, or object notation
if ($str{0} == '[') {
$stk = array(SERVICES_JSON_IN_ARR);
$arr = array();
} else {
if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
$stk = array(SERVICES_JSON_IN_OBJ);
$obj = array();
} else {
$stk = array(SERVICES_JSON_IN_OBJ);
$obj = new stdClass();
}
}
array_push($stk, array('what' => SERVICES_JSON_SLICE,
'where' => 0,
'delim' => false));
$chrs = substr($str, 1, -1);
$chrs = $this->reduce_string($chrs);
if ($chrs == '') {
if (reset($stk) == SERVICES_JSON_IN_ARR) {
return $arr;
} else {
return $obj;
}
}
//print("\nparsing {$chrs}\n");
$strlen_chrs = strlen($chrs);
for ($c = 0; $c <= $strlen_chrs; ++$c) {
$top = end($stk);
$substr_chrs_c_2 = substr($chrs, $c, 2);
if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
// found a comma that is not inside a string, array, etc.,
// OR we've reached the end of the character list
$slice = substr($chrs, $top['where'], ($c - $top['where']));
array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false));
//print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
if (reset($stk) == SERVICES_JSON_IN_ARR) {
// we are in an array, so just push an element onto the stack
array_push($arr, $this->decode($slice));
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
// we are in an object, so figure
// out the property name and set an
// element in an associative array,
// for now
$parts = array();
if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
// "name":value pair
$key = $this->decode($parts[1]);
$val = $this->decode($parts[2]);
if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
$obj[$key] = $val;
} else {
$obj->$key = $val;
}
} elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
// name:value pair, where name is unquoted
$key = $parts[1];
$val = $this->decode($parts[2]);
if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
$obj[$key] = $val;
} else {
$obj->$key = $val;
}
}
}
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
// found a quote, and we are not inside a string
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
//print("Found start of string at {$c}\n");
} elseif (($chrs{$c} == $top['delim']) &&
($top['what'] == SERVICES_JSON_IN_STR) &&
((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
// found a quote, we're in a string, and it's not escaped
// we know that it's not escaped becase there is _not_ an
// odd number of backslashes at the end of the string so far
array_pop($stk);
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
} elseif (($chrs{$c} == '[') &&
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
// found a left-bracket, and we are in an array, object, or slice
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
//print("Found start of array at {$c}\n");
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
// found a right-bracket, and we're in an array
array_pop($stk);
//print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
} elseif (($chrs{$c} == '{') &&
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
// found a left-brace, and we are in an array, object, or slice
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
//print("Found start of object at {$c}\n");
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
// found a right-brace, and we're in an object
array_pop($stk);
//print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
} elseif (($substr_chrs_c_2 == '/*') &&
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
// found a comment start, and we are in an array, object, or slice
array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false));
$c++;
//print("Found start of comment at {$c}\n");
} elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) {
// found a comment end, and we're in one now
array_pop($stk);
$c++;
for ($i = $top['where']; $i <= $c; ++$i)
$chrs = substr_replace($chrs, ' ', $i, 1);
//print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
}
}
if (reset($stk) == SERVICES_JSON_IN_ARR) {
return $arr;
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
return $obj;
}
}
}
}
/**
* @todo Ultimately, this should just call PEAR::isError()
*/
function isError($data, $code = null)
{
if (class_exists('pear')) {
return PEAR::isError($data, $code);
} elseif (is_object($data) && (get_class($data) == 'services_json_error' ||
is_subclass_of($data, 'services_json_error'))) {
return true;
}
return false;
}
}
if (class_exists('PEAR_Error')) {
class Services_JSON_Error extends PEAR_Error
{
function Services_JSON_Error($message = 'unknown error', $code = null,
$mode = null, $options = null, $userinfo = null)
{
parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
}
}
} else {
/**
* @todo Ultimately, this class shall be descended from PEAR_Error
*/
class Services_JSON_Error
{
function Services_JSON_Error($message = 'unknown error', $code = null,
$mode = null, $options = null, $userinfo = null)
{
}
}
}
?>

View File

@ -1,21 +0,0 @@
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -1,6 +0,0 @@
<?php
# In PHP 5.2 or higher we don't need to bring this in
if (!function_exists('json_encode')) {
require_once 'jsonwrapper_inner.php';
}
?>

View File

@ -1,23 +0,0 @@
<?php
require_once 'JSON/JSON.php';
function json_encode($arg)
{
global $services_json;
if (!isset($services_json)) {
$services_json = new Services_JSON();
}
return $services_json->encode($arg);
}
function json_decode($arg)
{
global $services_json;
if (!isset($services_json)) {
$services_json = new Services_JSON();
}
return $services_json->decode($arg);
}
?>

View File

@ -1,531 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Base Facebook Action
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Faceboook
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @copyright 2008-2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php';
require_once INSTALLDIR . '/plugins/Facebook/facebooknoticeform.php';
class FacebookAction extends Action
{
var $facebook = null;
var $fbuid = null;
var $flink = null;
var $action = null;
var $app_uri = null;
var $app_name = null;
function __construct($output='php://output', $indent=null, $facebook=null, $flink=null)
{
parent::__construct($output, $indent);
$this->facebook = $facebook;
$this->flink = $flink;
if ($this->flink) {
$this->fbuid = $flink->foreign_id;
$this->user = $flink->getUser();
}
$this->args = array();
}
function prepare($argarray)
{
parent::prepare($argarray);
$this->facebook = getFacebook();
$this->fbuid = $this->facebook->require_login();
$this->action = $this->trimmed('action');
$app_props = $this->facebook->api_client->Admin_getAppProperties(
array('canvas_name', 'application_name'));
$this->app_uri = 'http://apps.facebook.com/' . $app_props['canvas_name'];
$this->app_name = $app_props['application_name'];
$this->flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_SERVICE);
return true;
}
function showStylesheets()
{
// Loading CSS via files in Facebook FBML Canvas apps is still busted as of 1/31/11
// See: http://bugs.developers.facebook.net/show_bug.cgi?id=10052
$this->cssLink('css/display.css', 'base');
$this->cssLink('css/display.css', null, 'screen, projection, tv');
$this->cssLink('plugins/Facebook/facebookapp.css');
// Also, Facebook refuses to let me do this... gar!
/*
$baseCss = file_get_contents(INSTALLDIR . '/theme/base/css/display.css');
$this->style($baseCss);
$facebookCss = file_get_contents(INSTALLDIR . '/plugins/Facebook/facebookapp.css');
$this->style($facebookCss);
*/
}
function showScripts()
{
$this->script('plugins/Facebook/facebookapp.js');
}
/**
* Start an Facebook ready HTML document
*
* For Facebook we don't want to actually output any headers,
* DTD info, etc. Just Stylesheet and JavaScript links.
*
* @param string $type MIME type to use; default is to do negotation.
*
* @return void
*/
function startHTML($type=null)
{
$this->showStylesheets();
$this->showScripts();
$this->elementStart('div', array('class' => 'facebook-page'));
}
/**
* Ends a Facebook ready HTML document
*
* @return void
*/
function endHTML()
{
$this->elementEnd('div');
$this->endXML();
}
/**
* Show notice form.
*
* @return nothing
*/
function showNoticeForm()
{
// don't do it for most of the Facebook pages
}
function showBody()
{
$this->elementStart('div', array('id' => 'wrap'));
$this->showHeader();
$this->showCore();
$this->showFooter();
$this->elementEnd('div');
}
function showHead($error, $success)
{
if ($error) {
$this->element("h1", null, $error);
}
if ($success) {
$this->element("h1", null, $success);
}
$this->elementStart('fb:if-section-not-added', array('section' => 'profile'));
$this->elementStart('span', array('id' => 'add_to_profile'));
$this->element('fb:add-section-button', array('section' => 'profile'));
$this->elementEnd('span');
$this->elementEnd('fb:if-section-not-added');
}
// Make this into a widget later
function showLocalNav()
{
$this->elementStart('ul', array('class' => 'nav'));
$this->elementStart('li', array('class' =>
($this->action == 'facebookhome') ? 'current' : 'facebook_home'));
$this->element('a',
// TRANS: Link description for 'Home' link that leads to a start page.
array('href' => 'index.php', 'title' => _m('MENU','Home')),
// TRANS: Tooltip for 'Home' link that leads to a start page.
_m('Home'));
$this->elementEnd('li');
if (common_config('invite', 'enabled')) {
$this->elementStart('li',
array('class' =>
($this->action == 'facebookinvite') ? 'current' : 'facebook_invite'));
$this->element('a',
// TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
array('href' => 'invite.php', 'title' => _m('MENU','Invite')),
// TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
_m('Invite'));
$this->elementEnd('li');
}
$this->elementStart('li',
array('class' =>
($this->action == 'facebooksettings') ? 'current' : 'facebook_settings'));
$this->element('a',
array('href' => 'settings.php',
// TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
'title' => _m('MENU','Settings')),
// TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
_m('Settings'));
$this->elementEnd('li');
$this->elementEnd('ul');
}
/**
* Show header of the page.
*
* @return nothing
*/
function showHeader()
{
$this->elementStart('div', array('id' => 'header'));
$this->showLogo();
$this->showNoticeForm();
$this->elementEnd('div');
}
/**
* Show page, a template method.
*
* @return nothing
*/
function showPage($error = null, $success = null)
{
$this->startHTML();
$this->showHead($error, $success);
$this->showBody();
$this->endHTML();
}
function showInstructions()
{
$this->elementStart('div', array('class' => 'facebook_guide'));
$this->elementStart('dl', array('class' => 'system_notice'));
$this->element('dt', null, 'Page Notice');
$loginmsg_part1 = _m('To use the %s Facebook Application you need to login ' .
'with your username and password. Don\'t have a username yet?');
$loginmsg_part2 = _m(' a new account.');
$this->elementStart('dd');
$this->elementStart('p');
$this->text(sprintf($loginmsg_part1, common_config('site', 'name')));
// @todo FIXME: Bad i18n. Patchwork message in two parts.
$this->element('a',
array('href' => common_local_url('register')), _m('Register'));
$this->text( " " . $loginmsg_part2);
$this->elementEnd('p');
$this->elementEnd('dd');
$this->elementEnd('dl');
$this->elementEnd('div');
}
function showLoginForm($msg = null)
{
$this->elementStart('div', array('id' => 'content'));
$this->element('h1', null, _m('Login'));
if ($msg) {
$this->element('fb:error', array('message' => $msg));
}
$this->showInstructions();
$this->elementStart('div', array('id' => 'content_inner'));
$this->elementStart('form', array('method' => 'post',
'class' => 'form_settings',
'id' => 'login',
'action' => 'index.php'));
$this->elementStart('fieldset');
$this->elementStart('ul', array('class' => 'form_datas'));
$this->elementStart('li');
$this->input('nickname', _m('Nickname'));
$this->elementEnd('li');
$this->elementStart('li');
$this->password('password', _m('Password'));
$this->elementEnd('li');
$this->elementEnd('ul');
// TRANS: Login button.
$this->submit('submit', _m('BUTTON','Login'));
$this->elementEnd('fieldset');
$this->elementEnd('form');
$this->elementStart('p');
$this->element('a', array('href' => common_local_url('recoverpassword')),
_m('Lost or forgotten password?'));
$this->elementEnd('p');
$this->elementEnd('div');
$this->elementEnd('div');
}
/**
* Generate pagination links
*
* @param boolean $have_before is there something before?
* @param boolean $have_after is there something after?
* @param integer $page current page
* @param string $action current action
* @param array $args rest of query arguments
*
* @return nothing
*/
function pagination($have_before, $have_after, $page, $action, $args=null)
{
// Does a little before-after block for next/prev page
if ($have_before || $have_after) {
$this->elementStart('dl', 'pagination');
$this->element('dt', null, _m('Pagination'));
$this->elementStart('dd', null);
$this->elementStart('ul', array('class' => 'nav'));
}
if ($have_before) {
$pargs = array('page' => $page-1);
$newargs = $args ? array_merge($args, $pargs) : $pargs;
$this->elementStart('li', array('class' => 'nav_prev'));
$this->element('a', array('href' => "$this->app_uri/$action?page=$newargs[page]", 'rel' => 'prev'),
_m('After'));
$this->elementEnd('li');
}
if ($have_after) {
$pargs = array('page' => $page+1);
$newargs = $args ? array_merge($args, $pargs) : $pargs;
$this->elementStart('li', array('class' => 'nav_next'));
$this->element('a', array('href' => "$this->app_uri/$action?page=$newargs[page]", 'rel' => 'next'),
_m('Before'));
$this->elementEnd('li');
}
if ($have_before || $have_after) {
$this->elementEnd('ul');
$this->elementEnd('dd');
$this->elementEnd('dl');
}
}
function saveNewNotice()
{
$user = $this->flink->getUser();
$content = $this->trimmed('status_textarea');
if (!$content) {
$this->showPage(_m('No notice content!'));
return;
} else {
$content_shortened = $user->shortenLinks($content);
if (Notice::contentTooLong($content_shortened)) {
// @todo FIXME: i18n: Needs plural.
$this->showPage(sprintf(_m('That\'s too long. Max notice size is %d chars.'),
Notice::maxContent()));
return;
}
}
$inter = new CommandInterpreter();
$cmd = $inter->handle_command($user, $content_shortened);
if ($cmd) {
// XXX fix this
$cmd->execute(new WebChannel());
return;
}
$replyto = $this->trimmed('inreplyto');
try {
$notice = Notice::saveNew($user->id, $content, 'web',
array('reply_to' => ($replyto == 'false') ? null : $replyto));
} catch (Exception $e) {
$this->showPage($e->getMessage());
return;
}
}
}
class FacebookNoticeList extends NoticeList
{
/**
* constructor
*
* @param Notice $notice stream of notices from DB_DataObject
*/
function __construct($notice, $out=null)
{
parent::__construct($notice, $out);
}
/**
* show the list of notices
*
* "Uses up" the stream by looping through it. So, probably can't
* be called twice on the same list.
*
* @return int count of notices listed.
*/
function show()
{
$this->out->elementStart('div', array('id' =>'notices_primary'));
$this->out->element('h2', null, _m('Notices'));
$this->out->elementStart('ul', array('class' => 'notices'));
$cnt = 0;
while ($this->notice->fetch() && $cnt <= NOTICES_PER_PAGE) {
$cnt++;
if ($cnt > NOTICES_PER_PAGE) {
break;
}
$item = $this->newListItem($this->notice);
$item->show();
}
$this->out->elementEnd('ul');
$this->out->elementEnd('div');
return $cnt;
}
/**
* returns a new list item for the current notice
*
* Overridden to return a Facebook specific list item.
*
* @param Notice $notice the current notice
*
* @return FacebookNoticeListItem a list item for displaying the notice
* formatted for display in the Facebook App.
*/
function newListItem($notice)
{
return new FacebookNoticeListItem($notice, $this);
}
}
class FacebookNoticeListItem extends NoticeListItem
{
/**
* constructor
*
* Also initializes the profile attribute.
*
* @param Notice $notice The notice we'll display
*/
function __construct($notice, $out=null)
{
parent::__construct($notice, $out);
}
/**
* recipe function for displaying a single notice in the Facebook App.
*
* Overridden to strip out some of the controls that we don't
* want to be available.
*
* @return void
*/
function show()
{
$this->showStart();
$this->showNotice();
$this->showNoticeInfo();
// XXX: Need to update to show attachements and controls
$this->showEnd();
}
}
class FacebookProfileBoxNotice extends FacebookNoticeListItem
{
/**
* constructor
*
* Also initializes the profile attribute.
*
* @param Notice $notice The notice we'll display
*/
function __construct($notice, $out=null)
{
parent::__construct($notice, $out);
}
/**
* Recipe function for displaying a single notice in the
* Facebook App profile notice box
*
* @return void
*/
function show()
{
$this->showNotice();
$this->showNoticeInfo();
$this->showAppLink();
}
function showAppLink()
{
$this->facebook = getFacebook();
$app_props = $this->facebook->api_client->Admin_getAppProperties(
array('canvas_name', 'application_name'));
$this->app_uri = 'http://apps.facebook.com/' . $app_props['canvas_name'];
$this->app_name = $app_props['application_name'];
$this->out->elementStart('a', array('id' => 'facebook_statusnet_app',
'href' => $this->app_uri));
$this->out->text($this->app_name);
$this->out->elementEnd('a');
}
}

View File

@ -1,212 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Facebook integration administration panel
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Settings
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Administer global Facebook integration settings
*
* @category Admin
* @package StatusNet
* @author Zach Copley <zach@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
class FacebookadminpanelAction extends AdminPanelAction
{
/**
* Returns the page title
*
* @return string page title
*/
function title()
{
return _m('Facebook');
}
/**
* Instructions for using this form.
*
* @return string instructions
*/
function getInstructions()
{
return _m('Facebook integration settings');
}
/**
* Show the Facebook admin panel form
*
* @return void
*/
function showForm()
{
$form = new FacebookAdminPanelForm($this);
$form->show();
return;
}
/**
* Save settings from the form
*
* @return void
*/
function saveSettings()
{
static $settings = array(
'facebook' => array('apikey', 'secret'),
);
$values = array();
foreach ($settings as $section => $parts) {
foreach ($parts as $setting) {
$values[$section][$setting]
= $this->trimmed($setting);
}
}
// This throws an exception on validation errors
$this->validate($values);
// assert(all values are valid);
$config = new Config();
$config->query('BEGIN');
foreach ($settings as $section => $parts) {
foreach ($parts as $setting) {
Config::save($section, $setting, $values[$section][$setting]);
}
}
$config->query('COMMIT');
return;
}
function validate(&$values)
{
// Validate consumer key and secret (can't be too long)
if (mb_strlen($values['facebook']['apikey']) > 255) {
$this->clientError(
_m("Invalid Facebook API key. Max length is 255 characters.")
);
}
if (mb_strlen($values['facebook']['secret']) > 255) {
$this->clientError(
_m("Invalid Facebook API secret. Max length is 255 characters.")
);
}
}
}
class FacebookAdminPanelForm extends AdminForm
{
/**
* ID of the form
*
* @return int ID of the form
*/
function id()
{
return 'facebookadminpanel';
}
/**
* class of the form
*
* @return string class of the form
*/
function formClass()
{
return 'form_settings';
}
/**
* Action of the form
*
* @return string URL of the action
*/
function action()
{
return common_local_url('facebookadminpanel');
}
/**
* Data elements of the form
*
* @return void
*/
function formData()
{
$this->out->elementStart(
'fieldset',
array('id' => 'settings_facebook-application')
);
$this->out->element('legend', null, _m('Facebook application settings'));
$this->out->elementStart('ul', 'form_data');
$this->li();
$this->input(
'apikey',
_m('API key'),
_m('API key provided by Facebook'),
'facebook'
);
$this->unli();
$this->li();
$this->input(
'secret',
_m('Secret'),
_m('API secret provided by Facebook'),
'facebook'
);
$this->unli();
$this->out->elementEnd('ul');
$this->out->elementEnd('fieldset');
}
/**
* Action elements
*
* @return void
*/
function formActions()
{
$this->out->submit('submit', _m('Save'), 'submit', null, _m('Save Facebook settings'));
}
}

View File

@ -1,115 +0,0 @@
* {
font-size:14px;
font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif;
}
#wrap {
background-color:#F0F2F5;
padding-left:1.795%;
padding-right:1.795%;
width:auto;
}
p,label,
h1,h2,h3,h4,h5,h6 {
color:#000;
}
#header {
width:131%;
}
#content {
width:92.7%;
}
#aside_primary {
display:none;
}
#site_nav_local_views a {
background-color:#D0DFE7;
}
#site_nav_local_views a:hover {
background-color:#FAFBFC;
}
#form_notice .form_note + label,
#form_notice #notice_data-attach {
display:none;
}
#form_notice #notice_action-submit {
height:47px !important;
}
span.facebook-button {
border: 2px solid #aaa;
padding: 3px;
display: block;
float: left;
margin-right: 20px;
-moz-border-radius: 4px;
border-radius:4px;
-webkit-border-radius:4px;
font-weight: bold;
background-color:#A9BF4F;
color:#fff;
font-size:1.2em
}
span.facebook-button a { color:#fff }
.facebook_guide {
margin-bottom:18px;
}
.facebook_guide p {
font-weight:bold;
}
input {
height:auto !important;
}
#facebook-friends {
float:left;
width:100%;
}
#facebook-friends li {
float:left;
margin-right:2%;
margin-bottom:11px;
width:18%;
height:115px;
}
#facebook-friends li a {
float:left;
}
#add_to_profile {
position:absolute;
right:18px;
top:10px;
z-index:2;
}
.notice div.entry-content dl,
.notice div.entry-content dt,
.notice div.entry-content dd {
margin-right:5px;
}
#content_inner p {
margin-bottom:18px;
}
#content_inner ul {
list-style-type:none;
}
.form_settings label {
margin-right:18px;
}

View File

@ -1,33 +0,0 @@
/*
* StatusNet - a distributed open-source microblogging tool
* Copyright (C) 2008, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
var max = 140;
var noticeBox = document.getElementById('notice_data-text');
if (noticeBox) {
noticeBox.addEventListener('keyup', keypress);
noticeBox.addEventListener('keydown', keypress);
noticeBox.addEventListener('keypress', keypress);
noticeBox.addEventListener('change', keypress);
}
// Do our the countdown
function keypress(evt) {
document.getElementById('notice_text-count').setTextValue(
max - noticeBox.getValue().length);
}

View File

@ -1,246 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
class FacebookhomeAction extends FacebookAction
{
var $page = null;
function prepare($argarray)
{
parent::prepare($argarray);
$this->page = $this->trimmed('page');
if (!$this->page) {
$this->page = 1;
}
return true;
}
function handle($args)
{
parent::handle($args);
if (!empty($this->flink)) {
$this->user = $this->flink->getUser();
// If this is the first time the user has started the app
// prompt for Facebook status update permission
if (!$this->facebook->api_client->users_hasAppPermission('publish_stream')) {
$this->getUpdatePermission();
return;
}
if ($this->arg('status_submit') == 'Send') {
$this->saveNewNotice();
}
// User is authenticated and has already been prompted once for
// Facebook status update permission? Then show the main page
// of the app
$this->showPage();
} else {
// User hasn't authenticated yet, prompt for creds
$this->login();
}
}
function login()
{
$this->showStylesheets();
$nickname = common_canonical_nickname($this->trimmed('nickname'));
$password = $this->arg('password');
$msg = null;
if ($nickname) {
if (common_check_user($nickname, $password)) {
$user = User::staticGet('nickname', $nickname);
if (!$user) {
$this->showLoginForm(_m("Server error: Couldn't get user!"));
}
$flink = DB_DataObject::factory('foreign_link');
$flink->user_id = $user->id;
$flink->foreign_id = $this->fbuid;
$flink->service = FACEBOOK_SERVICE;
$flink->created = common_sql_now();
$flink->set_flags(true, false, false, false);
$flink_id = $flink->insert();
// XXX: Do some error handling here
$this->getUpdatePermission();
return;
} else {
$msg = _m('Incorrect username or password.');
}
}
$this->showLoginForm($msg);
$this->showFooter();
}
function showNoticeForm()
{
$post_action = "$this->app_uri/index.php";
$notice_form = new FacebookNoticeForm($this, $post_action, null,
$post_action, $this->user);
$notice_form->show();
}
function title()
{
if ($this->page > 1) {
// @todo FIXME: Core should have methods to get "Full name (nickname)" in a localised form
// so that this can be used consistenly throughout StatusNet without having to implement it
// over and over..
// TRANS: Page title.
// TRANS: %1$s is a user nickname, %2$s is a page number.
return sprintf(_m('%1$s and friends, page %2$d'), $this->user->nickname, $this->page);
} else {
// TRANS: Page title.
// TRANS: %s is a user nickname
return sprintf(_m("%s and friends"), $this->user->nickname);
}
}
function showContent()
{
$notice = $this->user->noticeInbox(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
$nl = new NoticeList($notice, $this);
$cnt = $nl->show();
$this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
$this->page, 'index.php', array('nickname' => $this->user->nickname));
}
function showNoticeList($notice)
{
$nl = new NoticeList($notice, $this);
return $nl->show();
}
function getUpdatePermission() {
$this->showStylesheets();
$this->elementStart('div', array('class' => 'facebook_guide'));
// TRANS: Instructions. %s is the application name.
$instructions = sprintf(_m('If you would like the %s app to automatically update ' .
'your Facebook status with your latest notice, you need ' .
'to give it permission.'), $this->app_name);
$this->elementStart('p');
$this->element('span', array('id' => 'permissions_notice'), $instructions);
$this->elementEnd('p');
$this->elementStart('form', array('method' => 'post',
'action' => "index.php",
'id' => 'facebook-skip-permissions'));
$this->elementStart('ul', array('id' => 'fb-permissions-list'));
$this->elementStart('li', array('id' => 'fb-permissions-item'));
$next = urlencode("$this->app_uri/index.php");
$api_key = common_config('facebook', 'apikey');
$auth_url = 'http://www.facebook.com/authorize.php?api_key=' .
$api_key . '&v=1.0&ext_perm=publish_stream&next=' . $next .
'&next_cancel=' . $next . '&submit=skip';
$this->elementStart('span', array('class' => 'facebook-button'));
// @todo FIXME: sprintf not needed here?
$this->element('a', array('href' => $auth_url),
sprintf(_m('Okay, do it!'), $this->app_name));
$this->elementEnd('span');
$this->elementEnd('li');
$this->elementStart('li', array('id' => 'fb-permissions-item'));
// TRANS: Button text. Clicking the button will skip updating Facebook permissions.
$this->submit('skip', _m('BUTTON','Skip'));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->elementEnd('form');
$this->elementEnd('div');
}
/**
* Generate pagination links
*
* @param boolean $have_before is there something before?
* @param boolean $have_after is there something after?
* @param integer $page current page
* @param string $action current action
* @param array $args rest of query arguments
*
* @return nothing
*/
function pagination($have_before, $have_after, $page, $action, $args=null)
{
// Does a little before-after block for next/prev page
// XXX: Fix so this uses common_local_url() if possible.
if ($have_before || $have_after) {
$this->elementStart('dl', 'pagination');
$this->element('dt', null, _m('Pagination'));
$this->elementStart('dd', null);
$this->elementStart('ul', array('class' => 'nav'));
}
if ($have_before) {
$pargs = array('page' => $page-1);
$newargs = $args ? array_merge($args, $pargs) : $pargs;
$this->elementStart('li', array('class' => 'nav_prev'));
$this->element('a', array('href' => "$action?page=$newargs[page]", 'rel' => 'prev'),
// TRANS: Pagination link.
_m('After'));
$this->elementEnd('li');
}
if ($have_after) {
$pargs = array('page' => $page+1);
$newargs = $args ? array_merge($args, $pargs) : $pargs;
$this->elementStart('li', array('class' => 'nav_next'));
$this->element('a', array('href' => "$action?page=$newargs[page]", 'rel' => 'next'),
// TRANS: Pagination link.
_m('Before'));
$this->elementEnd('li');
}
if ($have_before || $have_after) {
$this->elementEnd('ul');
$this->elementEnd('dd');
$this->elementEnd('dl');
}
}
}

View File

@ -1,145 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
class FacebookinviteAction extends FacebookAction
{
function handle($args)
{
parent::handle($args);
$this->showForm();
}
/**
* Wrapper for showing a page
*
* Stores an error and shows the page
*
* @param string $error Error, if any
*
* @return void
*/
function showForm($error=null)
{
$this->error = $error;
$this->showPage();
}
/**
* Show the page content
*
* Either shows the registration form or, if registration was successful,
* instructions for using the site.
*
* @return void
*/
function showContent()
{
if ($this->arg('ids')) {
$this->showSuccessContent();
} else {
$this->showFormContent();
}
}
function showSuccessContent()
{
// TRANS: %s is the name of the site.
$this->element('h2', null, sprintf(_m('Thanks for inviting your friends to use %s.'),
common_config('site', 'name')));
// TRANS: Followed by an unordered list with invited friends.
$this->element('p', null, _m('Invitations have been sent to the following users:'));
$friend_ids = $_POST['ids']; // XXX: Hmm... is this the best way to access the list?
$this->elementStart('ul', array('id' => 'facebook-friends'));
foreach ($friend_ids as $friend) {
$this->elementStart('li');
$this->element('fb:profile-pic', array('uid' => $friend, 'size' => 'square'));
$this->element('fb:name', array('uid' => $friend,
'capitalize' => 'true'));
$this->elementEnd('li');
}
$this->elementEnd('ul');
}
function showFormContent()
{
$content = sprintf(_m('You have been invited to %s'), common_config('site', 'name')) .
htmlentities('<fb:req-choice url="' . $this->app_uri . '" label="Add"/>');
$this->elementStart('fb:request-form', array('action' => 'invite.php',
'method' => 'post',
'invite' => 'true',
'type' => common_config('site', 'name'),
'content' => $content));
$this->hidden('invite', 'true');
// TRANS: %s is the name of the site.
$actiontext = sprintf(_m('Invite your friends to use %s'), common_config('site', 'name'));
$multi_params = array('showborder' => 'false');
$multi_params['actiontext'] = $actiontext;
$multi_params['bypass'] = 'cancel';
$multi_params['cols'] = 4;
// Get a list of users who are already using the app for exclusion
$exclude_ids = $this->facebook->api_client->friends_getAppUsers();
$exclude_ids_csv = null;
// fbml needs these as a csv string, not an array
if ($exclude_ids) {
$exclude_ids_csv = implode(',', $exclude_ids);
$multi_params['exclude_ids'] = $exclude_ids_csv;
}
$this->element('fb:multi-friend-selector', $multi_params);
$this->elementEnd('fb:request-form');
if ($exclude_ids) {
// TRANS: %s is the name of the site.
$this->element('h2', null, sprintf(_m('Friends already using %s:'),
common_config('site', 'name')));
$this->elementStart('ul', array('id' => 'facebook-friends'));
foreach ($exclude_ids as $friend) {
$this->elementStart('li');
$this->element('fb:profile-pic', array('uid' => $friend, 'size' => 'square'));
$this->element('fb:name', array('uid' => $friend,
'capitalize' => 'true'));
$this->elementEnd('li');
}
$this->elementEnd("ul");
}
}
function title()
{
// TRANS: Page title.
return sprintf(_m('Send invitations'));
}
}

View File

@ -1,97 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
class FacebookinviteAction extends FacebookAction
{
function handle($args)
{
parent::handle($args);
$this->error = $error;
if ($this->flink) {
if (!$this->facebook->api_client->users_hasAppPermission('publish_stream') &&
$this->facebook->api_client->data_getUserPreference(
FACEBOOK_PROMPTED_UPDATE_PREF) == 'true') {
// @todo FIXME: Missing i18n?
echo '<h1>REDIRECT TO HOME</h1>';
}
} else {
$this->showPage();
}
}
function showContent()
{
// If the user has opted not to initially allow the app to have
// Facebook status update permission, store that preference. Only
// promt the user the first time she uses the app
if ($this->arg('skip')) {
$this->facebook->api_client->data_setUserPreference(
FACEBOOK_PROMPTED_UPDATE_PREF, 'true');
}
if ($this->flink) {
$this->user = $this->flink->getUser();
// If this is the first time the user has started the app
// prompt for Facebook status update permission
if (!$this->facebook->api_client->users_hasAppPermission('publish_stream')) {
if ($this->facebook->api_client->data_getUserPreference(
FACEBOOK_PROMPTED_UPDATE_PREF) != 'true') {
$this->getUpdatePermission();
return;
}
}
} else {
$this->showLoginForm();
}
}
function showSuccessContent()
{
}
function showFormContent()
{
}
function title()
{
// @todo FIXME: Give a more precise description? Suggestion: "Login with Facebook Connect"
// TRANS: Page title.
return sprintf(_m('Login'));
}
function redirectHome()
{
}
}

View File

@ -1,198 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Form for posting a notice from within the Facebook App.
*
* This is a stripped down version of the normal NoticeForm (sans
* location stuff and media upload stuff). I'm not sure we can share the
* location (from FB) and they don't allow posting multipart form data
* to Facebook canvas pages, so that won't work anyway. --Zach
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @author Sarven Capadisli <csarven@status.net>
* @author Zach Copley <zach@status.net>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/lib/form.php';
/**
* Form for posting a notice from within the Facebook app
*
* @category Form
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @author Sarven Capadisli <csarven@status.net>
* @author Zach Copey <zach@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see HTMLOutputter
*/
class FacebookNoticeForm extends Form
{
/**
* Current action, used for returning to this page.
*/
var $action = null;
/**
* Pre-filled content of the form
*/
var $content = null;
/**
* The current user
*/
var $user = null;
/**
* The notice being replied to
*/
var $inreplyto = null;
/**
* Constructor
*
* @param HTMLOutputter $out output channel
* @param string $action action to return to, if any
* @param string $content content to pre-fill
*/
function __construct($out=null, $action=null, $content=null, $post_action=null, $user=null, $inreplyto=null)
{
parent::__construct($out);
$this->action = $action;
$this->post_action = $post_action;
$this->content = $content;
$this->inreplyto = $inreplyto;
if ($user) {
$this->user = $user;
} else {
$this->user = common_current_user();
}
// Note: Facebook doesn't allow multipart/form-data posting to
// canvas pages, so don't try to set it--no file uploads, at
// least not this way. It can be done using multiple servers
// and iFrames, but it's a pretty hacky process.
}
/**
* ID of the form
*
* @return string ID of the form
*/
function id()
{
return 'form_notice';
}
/**
* Class of the form
*
* @return string class of the form
*/
function formClass()
{
return 'form_notice';
}
/**
* Action of the form
*
* @return string URL of the action
*/
function action()
{
return $this->post_action;
}
/**
* Legend of the Form
*
* @return void
*/
function formLegend()
{
// TRANS: Legend.
$this->out->element('legend', null, _m('Send a notice'));
}
/**
* Data elements
*
* @return void
*/
function formData()
{
if (Event::handle('StartShowNoticeFormData', array($this))) {
$this->out->element('label', array('for' => 'notice_data-text'),
// TRANS: Field label.
sprintf(_m('What\'s up, %s?'), $this->user->nickname));
// XXX: vary by defined max size
$this->out->element('textarea', array('id' => 'notice_data-text',
'cols' => 35,
'rows' => 4,
'name' => 'status_textarea'),
($this->content) ? $this->content : '');
$contentLimit = Notice::maxContent();
if ($contentLimit > 0) {
$this->out->elementStart('dl', 'form_note');
$this->out->element('dt', null, _m('Available characters'));
$this->out->element('dd', array('id' => 'notice_text-count'),
$contentLimit);
$this->out->elementEnd('dl');
}
if ($this->action) {
$this->out->hidden('notice_return-to', $this->action, 'returnto');
}
$this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto');
Event::handle('StartShowNoticeFormData', array($this));
}
}
/**
* Action elements
*
* @return void
*/
function formActions()
{
$this->out->element('input', array('id' => 'notice_action-submit',
'class' => 'submit',
'name' => 'status_submit',
'type' => 'submit',
// TRANS: Button text.
'value' => _m('BUTTON','Send')));
}
}

View File

@ -1,51 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php';
class FacebookQueueHandler extends QueueHandler
{
function transport()
{
return 'facebook';
}
function handle($notice)
{
if ($this->_isLocal($notice)) {
return facebookBroadcastNotice($notice);
}
return true;
}
/**
* Determine whether the notice was locally created
*
* @param Notice $notice the notice
*
* @return boolean locality
*/
function _isLocal($notice)
{
return ($notice->is_local == Notice::LOCAL_PUBLIC ||
$notice->is_local == Notice::LOCAL_NONPUBLIC);
}
}

View File

@ -1,73 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
class FacebookremoveAction extends FacebookAction
{
function handle($args)
{
parent::handle($args);
$secret = common_config('facebook', 'secret');
$sig = '';
ksort($_POST);
foreach ($_POST as $key => $val) {
if (substr($key, 0, 7) == 'fb_sig_') {
$sig .= substr($key, 7) . '=' . $val;
}
}
$sig .= $secret;
$verify = md5($sig);
if ($verify == $this->arg('fb_sig')) {
$flink = Foreign_link::getByForeignID($this->arg('fb_sig_user'), 2);
if (!$flink) {
common_log(LOG_ERR, "Tried to delete missing foreign_link entry with Facebook ID " . $this->arg('fb_sig_user'));
$this->serverError(_m('Couldn\'t remove Facebook user: already deleted.'));
return;
}
common_debug("Removing foreign link to Facebook - local user ID: $flink->user_id, Facebook ID: $flink->foreign_id");
$result = $flink->delete();
if (!$result) {
common_log_db_error($flink, 'DELETE', __FILE__);
$this->serverError(_m('Couldn\'t remove Facebook user.'));
return;
}
} else {
# Someone bad tried to remove facebook link?
common_log(LOG_ERR, "Someone from $_SERVER[REMOTE_ADDR] " .
'unsuccessfully tried to remove a foreign link to Facebook!');
}
}
}

View File

@ -1,136 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
class FacebooksettingsAction extends FacebookAction
{
function handle($args)
{
parent::handle($args);
$this->showPage();
}
/**
* Show the page content
*
* Either shows the registration form or, if registration was successful,
* instructions for using the site.
*
* @return void
*/
function showContent()
{
if ($this->arg('save')) {
$this->saveSettings();
} else {
$this->showForm();
}
}
function saveSettings() {
$noticesync = $this->boolean('noticesync');
$replysync = $this->boolean('replysync');
$original = clone($this->flink);
$this->flink->set_flags($noticesync, false, $replysync, false);
$result = $this->flink->update($original);
if ($result === false) {
$this->showForm(_m('There was a problem saving your sync preferences!'));
} else {
// TRANS: Confirmation that synchronisation settings have been saved into the system.
$this->showForm(_m('Sync preferences saved.'), true);
}
}
function showForm($msg = null, $success = false) {
if ($msg) {
if ($success) {
$this->element('fb:success', array('message' => $msg));
} else {
$this->element('fb:error', array('message' => $msg));
}
}
if ($this->facebook->api_client->users_hasAppPermission('publish_stream')) {
$this->elementStart('form', array('method' => 'post',
'id' => 'facebook_settings'));
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
$this->checkbox('noticesync', _m('Automatically update my Facebook status with my notices.'),
($this->flink) ? ($this->flink->noticesync & FOREIGN_NOTICE_SEND) : true);
$this->elementEnd('li');
$this->elementStart('li');
$this->checkbox('replysync', _m('Send "@" replies to Facebook.'),
($this->flink) ? ($this->flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true);
$this->elementEnd('li');
$this->elementStart('li');
// TRANS: Submit button to save synchronisation settings.
$this->submit('save', _m('BUTTON','Save'));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->elementEnd('form');
} else {
// TRANS: %s is the application name.
$instructions = sprintf(_m('If you would like %s to automatically update ' .
'your Facebook status with your latest notice, you need ' .
'to give it permission.'), $this->app_name);
$this->elementStart('p');
$this->element('span', array('id' => 'permissions_notice'), $instructions);
$this->elementEnd('p');
$this->elementStart('ul', array('id' => 'fb-permissions-list'));
$this->elementStart('li', array('id' => 'fb-permissions-item'));
$this->elementStart('fb:prompt-permission', array('perms' => 'publish_stream',
'next_fbjs' => 'document.setLocation(\'' . "$this->app_uri/settings.php" . '\')'));
$this->element('span', array('class' => 'facebook-button'),
sprintf(_m('Allow %s to update my Facebook status'), common_config('site', 'name')));
$this->elementEnd('fb:prompt-permission');
$this->elementEnd('li');
$this->elementEnd('ul');
}
}
function title()
{
// TRANS: Page title for synchronisation settings.
return _m('Sync preferences');
}
}

View File

@ -1,409 +0,0 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET')) {
exit(1);
}
require_once INSTALLDIR . '/plugins/Facebook/facebook/facebook.php';
require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
require_once INSTALLDIR . '/lib/noticelist.php';
define("FACEBOOK_SERVICE", 2); // Facebook is foreign_service ID 2
define("FACEBOOK_NOTICE_PREFIX", 1);
define("FACEBOOK_PROMPTED_UPDATE_PREF", 2);
function getFacebook()
{
static $facebook = null;
$apikey = common_config('facebook', 'apikey');
$secret = common_config('facebook', 'secret');
if ($facebook === null) {
$facebook = new Facebook($apikey, $secret);
}
if (empty($facebook)) {
common_log(LOG_ERR, 'Could not make new Facebook client obj!',
__FILE__);
}
return $facebook;
}
function isFacebookBound($notice, $flink) {
if (empty($flink)) {
common_debug("QQQQQ empty flink");
return false;
}
// Avoid a loop
if ($notice->source == 'Facebook') {
common_log(LOG_INFO, "Skipping notice $notice->id because its " .
'source is Facebook.');
return false;
}
// If the user does not want to broadcast to Facebook, move along
if (!($flink->noticesync & FOREIGN_NOTICE_SEND == FOREIGN_NOTICE_SEND)) {
common_log(LOG_INFO, "Skipping notice $notice->id " .
'because user has FOREIGN_NOTICE_SEND bit off.');
return false;
}
// If it's not a reply, or if the user WANTS to send @-replies,
// then, yeah, it can go to Facebook.
if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) ||
($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) {
return true;
}
return false;
}
function facebookBroadcastNotice($notice)
{
$facebook = getFacebook();
$flink = Foreign_link::getByUserID(
$notice->profile_id,
FACEBOOK_SERVICE
);
if (isFacebookBound($notice, $flink)) {
// Okay, we're good to go, update the FB status
$fbuid = $flink->foreign_id;
$user = $flink->getUser();
try {
// Check permissions
common_debug(
'FacebookPlugin - checking for publish_stream permission for user '
. "$user->nickname ($user->id), Facebook UID: $fbuid"
);
// NOTE: $facebook->api_client->users_hasAppPermission('publish_stream', $fbuid)
// has been returning bogus results, so we're using FQL to check for
// publish_stream permission now
$fql = "SELECT publish_stream FROM permissions WHERE uid = $fbuid";
$result = $facebook->api_client->fql_query($fql);
$canPublish = 0;
if (!empty($result)) {
$canPublish = $result[0]['publish_stream'];
}
if ($canPublish == 1) {
common_debug(
"FacebookPlugin - $user->nickname ($user->id), Facebook UID: $fbuid "
. 'has publish_stream permission.'
);
} else {
common_debug(
"FacebookPlugin - $user->nickname ($user->id), Facebook UID: $fbuid "
. 'does NOT have publish_stream permission. Facebook '
. 'returned: ' . var_export($result, true)
);
}
common_debug(
'FacebookPlugin - checking for status_update permission for user '
. "$user->nickname ($user->id), Facebook UID: $fbuid. "
);
$canUpdate = $facebook->api_client->users_hasAppPermission(
'status_update',
$fbuid
);
if ($canUpdate == 1) {
common_debug(
"FacebookPlugin - $user->nickname ($user->id), Facebook UID: $fbuid "
. 'has status_update permission.'
);
} else {
common_debug(
"FacebookPlugin - $user->nickname ($user->id), Facebook UID: $fbuid "
.'does NOT have status_update permission. Facebook '
. 'returned: ' . var_export($canPublish, true)
);
}
// Post to Facebook
if ($notice->hasAttachments() && $canPublish == 1) {
publishStream($notice, $user, $fbuid);
} elseif ($canUpdate == 1 || $canPublish == 1) {
statusUpdate($notice, $user, $fbuid);
} else {
$msg = "FacebookPlugin - Not sending notice $notice->id to Facebook " .
"because user $user->nickname has not given the " .
'Facebook app \'status_update\' or \'publish_stream\' permission.';
common_log(LOG_WARNING, $msg);
}
} catch (FacebookRestClientException $e) {
return handleFacebookError($e, $notice, $flink);
}
}
return true;
}
function handleFacebookError($e, $notice, $flink)
{
$fbuid = $flink->foreign_id;
$user = $flink->getUser();
$code = $e->getCode();
$errmsg = $e->getMessage();
// XXX: Check for any others?
switch($code) {
case 100: // Invalid parameter
$msg = "FacebookPlugin - Facebook claims notice %d was posted with an invalid parameter (error code 100):"
. "\"%s\" (Notice details: nickname=%s, user ID=%d, Facebook ID=%d, notice content=\"%s\"). "
. "Removing notice from the Facebook queue for safety.";
common_log(
LOG_ERR, sprintf(
$msg,
$notice->id,
$errmsg,
$user->nickname,
$user->id,
$fbuid,
$notice->content
)
);
return true;
break;
case 200: // Permissions error
case 250: // Updating status requires the extended permission status_update
remove_facebook_app($flink);
return true; // dequeue
break;
case 341: // Feed action request limit reached
$msg = "FacebookPlugin - User %s (User ID=%d, Facebook ID=%d) has exceeded "
. "his/her limit for posting notices to Facebook today. Dequeuing "
. "notice %d.";
common_log(
LOG_INFO, sprintf(
$msg,
$user->nickname,
$user->id,
$fbuid,
$notice->id
)
);
// @fixme: We want to rety at a later time when the throttling has expired
// instead of just giving up.
return true;
break;
default:
$msg = "FacebookPlugin - Facebook returned an error we don't know how to deal with while trying to "
. "post notice %d. Error code: %d, error message: \"%s\". (Notice details: "
. "nickname=%s, user ID=%d, Facebook ID=%d, notice content=\"%s\"). Removing notice "
. "from the Facebook queue for safety.";
common_log(
LOG_ERR, sprintf(
$msg,
$notice->id,
$code,
$errmsg,
$user->nickname,
$user->id,
$fbuid,
$notice->content
)
);
return true; // dequeue
break;
}
}
function statusUpdate($notice, $user, $fbuid)
{
common_debug(
"FacebookPlugin - Attempting to post notice $notice->id "
. "as a status update for $user->nickname ($user->id), "
. "Facebook UID: $fbuid"
);
$facebook = getFacebook();
$result = $facebook->api_client->users_setStatus(
$notice->content,
$fbuid,
false,
true
);
common_debug('Facebook returned: ' . var_export($result, true));
common_log(
LOG_INFO,
"FacebookPlugin - Posted notice $notice->id as a status "
. "update for $user->nickname ($user->id), "
. "Facebook UID: $fbuid"
);
}
function publishStream($notice, $user, $fbuid)
{
common_debug(
"FacebookPlugin - Attempting to post notice $notice->id "
. "as stream item with attachment for $user->nickname ($user->id), "
. "Facebook UID: $fbuid"
);
$fbattachment = format_attachments($notice->attachments());
$facebook = getFacebook();
$facebook->api_client->stream_publish(
$notice->content,
$fbattachment,
null,
null,
$fbuid
);
common_log(
LOG_INFO,
"FacebookPlugin - Posted notice $notice->id as a stream "
. "item with attachment for $user->nickname ($user->id), "
. "Facebook UID: $fbuid"
);
}
function format_attachments($attachments)
{
$fbattachment = array();
$fbattachment['media'] = array();
foreach($attachments as $attachment)
{
if($enclosure = $attachment->getEnclosure()){
$fbmedia = get_fbmedia_for_attachment($enclosure);
}else{
$fbmedia = get_fbmedia_for_attachment($attachment);
}
if($fbmedia){
$fbattachment['media'][]=$fbmedia;
}else{
$fbattachment['name'] = ($attachment->title ?
$attachment->title : $attachment->url);
$fbattachment['href'] = $attachment->url;
}
}
if(count($fbattachment['media'])>0){
unset($fbattachment['name']);
unset($fbattachment['href']);
}
return $fbattachment;
}
/**
* given an File objects, returns an associative array suitable for Facebook media
*/
function get_fbmedia_for_attachment($attachment)
{
$fbmedia = array();
if (strncmp($attachment->mimetype, 'image/', strlen('image/')) == 0) {
$fbmedia['type'] = 'image';
$fbmedia['src'] = $attachment->url;
$fbmedia['href'] = $attachment->url;
} else if ($attachment->mimetype == 'audio/mpeg') {
$fbmedia['type'] = 'mp3';
$fbmedia['src'] = $attachment->url;
}else if ($attachment->mimetype == 'application/x-shockwave-flash') {
$fbmedia['type'] = 'flash';
// http://wiki.developers.facebook.com/index.php/Attachment_%28Streams%29
// says that imgsrc is required... but we have no value to put in it
// $fbmedia['imgsrc']='';
$fbmedia['swfsrc'] = $attachment->url;
}else{
return false;
}
return $fbmedia;
}
function remove_facebook_app($flink)
{
$user = $flink->getUser();
common_log(LOG_INFO, 'Removing Facebook App Foreign link for ' .
"user $user->nickname (user id: $user->id).");
$result = $flink->delete();
if (empty($result)) {
common_log(LOG_ERR, 'Could not remove Facebook App ' .
"Foreign_link for $user->nickname (user id: $user->id)!");
common_log_db_error($flink, 'DELETE', __FILE__);
}
// Notify the user that we are removing their FB app access
$result = mail_facebook_app_removed($user);
if (!$result) {
$msg = 'Unable to send email to notify ' .
"$user->nickname (user id: $user->id) " .
'that their Facebook app link was ' .
'removed!';
common_log(LOG_WARNING, $msg);
}
}
/**
* Send a mail message to notify a user that her Facebook Application
* access has been removed.
*
* @param User $user user whose Facebook app link has been removed
*
* @return boolean success flag
*/
function mail_facebook_app_removed($user)
{
$profile = $user->getProfile();
$site_name = common_config('site', 'name');
common_switch_locale($user->language);
$subject = sprintf(
_m('Your %1$s Facebook application access has been disabled.',
$site_name));
$body = sprintf(_m("Hi, %1\$s. We're sorry to inform you that we are " .
'unable to update your Facebook status from %2$s, and have disabled ' .
'the Facebook application for your account. This may be because ' .
'you have removed the Facebook application\'s authorization, or ' .
'have deleted your Facebook account. You can re-enable the ' .
'Facebook application and automatic status updating by ' .
"re-installing the %2\$s Facebook application.\n\nRegards,\n\n%2\$s"),
$user->nickname, $site_name);
common_switch_locale();
return mail_to_user($user, $subject, $body);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,535 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr ""
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr ""
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr ""
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr ""
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr ""
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr ""
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr ""
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr ""
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr ""
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr ""
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr ""
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr ""
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr ""
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr ""
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr ""
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr ""
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr ""
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr ""
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr ""
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr ""
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr ""
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr ""
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr ""
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr ""
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr ""
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr ""
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr ""
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr ""
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr ""
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr ""
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr ""
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr ""
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr ""
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr ""
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr ""
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr ""
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr ""
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr ""
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr ""
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr ""
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr ""
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr ""
#: facebookaction.php:274
msgid "Nickname"
msgstr ""
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr ""
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr ""
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr ""
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr ""
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr ""
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr ""
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr ""
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,562 +0,0 @@
# Translation of StatusNet - Facebook to Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
# Author: Jim-by
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:42+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki."
"net/wiki/Portal:be-tarask>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: be-tarask\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Вітаем, %1$s!\n"
"\n"
"На жаль, мы вымушаныя паведаміць Вам, што ня можам абнавіць Ваш статус у "
"Facebook з %2$s, і выключаем дастасаваньне Facebook для Вашага рахунку. Гэта "
"магло здарыцца, таму што Вы выдалілі аўтарызацыю для дастасаваньня Facebook, "
"ці выдалілі Ваш рахунак на Facebook. Вы можаце зноў уключыць дастасаваньне "
"Facebook і аўтаматычнае абнаўленьне статусу пасьля паўторнага ўсталяваньня "
"дастасаваньне Facebook %2$s.\n"
"\n"
"З павагай,\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "Вам неабходна ўвайсьці ў Facebook для выкарыстаньня Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Ужо існуе лякальны карыстальнік злучаны з гэтым рахункам Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Узьнікла праблема з ключом Вашай сэсіі. Калі ласка, паспрабуйце зноў."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Вы ня можаце зарэгістравацца, калі Вы ня згодны з умовамі ліцэнзіі."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Узьнікла невядомая памылка."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Вы ўпершыню ўвайшлі ў %s, таму мы павінны злучыць Ваш рахунак на Facebook з "
"лякальным рахункам. Вы можаце стварыць новы рахунак, ці злучыць з ўжо "
"існуючым Вашым рахункам, калі Вы яго маеце."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Устаноўка рахунку на Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Устаноўкі злучэньня"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Мой тэкст і файлы даступныя на ўмовах %s за выключэньнем гэтых асабістых "
"зьвестак: пароль, адрас электроннай пошты, IM-адрас, і нумар тэлефона."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Стварыць новы рахунак"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Стварыць новага карыстальніка з гэтай мянушкай."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Новая мянушка"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1-64 малых літараў ці лічбаў, ніякай пунктуацыі ці прагалаў"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Стварыць"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Далучыць існуючы рахунак"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Калі Вы ўжо маеце рахунак, увайдзіце з Вашым імем карыстальніка і паролем, "
"каб далучыць яго да рахунку на Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Існуючая мянушка"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Пароль"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Злучыць"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Рэгістрацыя не дазволеная."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Няслушны код запрашэньня."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Мянушка забароненая."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Мянушка ўжо выкарыстоўваецца. Паспрабуйце іншую."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Памылка далучэньня карыстальніка да Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Няслушнае імя карыстальніка ці пароль."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Увайсьці"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Даслаць паведамленьне"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Як справы, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Даступныя сымбалі"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Даслаць"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Памылка сэрвэра: немагчыма атрымаць карыстальніка!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Няслушнае імя карыстальніка ці пароль."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s і сябры, старонка %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s і сябры"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Калі Вы жадаеце, каб дастасаваньне %s аўтаматычна абнаўляла Ваш статус у "
"Facebook з апошнімі паведамленьнямі, Вы павінны даць дазвол."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Так, зрабіць гэта!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Прапусьціць"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Нумарацыя старонак"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Пасьля"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Перад"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Дзякуем за запрашэньне Вашых сяброў карыстацца %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Запрашэньні былі дасланыя наступным карыстальнікам:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Вы былі запрошаныя ў %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Запрасіць Вашых сяброў карыстацца %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Сябры, якія ўжо карыстаюцца %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Даслаць запрашэньні"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Налады інтэграцыі Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Карыстальнік злучэньня Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Увайсьці ці зарэгістравацца з выкарыстаньнем Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr ""
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr ""
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr ""
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr ""
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr ""
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr ""
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr ""
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr ""
#: facebookaction.php:274
msgid "Nickname"
msgstr ""
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr ""
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr ""
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr ""
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr ""
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr ""
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr ""
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr ""
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,544 +0,0 @@
# Translation of StatusNet - Facebook to Breton (Brezhoneg)
# Exported from translatewiki.net
#
# Author: Fulup
# Author: Y-M D
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:42+0000\n"
"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
"Rankout a rit bezañ kevreet war Facebook evit implijout Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Un implijer lec'hel liammet d'ar gont Facebook-se a zo dija."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h. Mar plij adklaskit."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr ""
"Rankout a rit bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur "
"gont."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Ur gudenn dizanv a zo bet."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Kefluniadur ar gont Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Dibarzhioù kevreañ"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Krouiñ ur gont nevez"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Krouiñ un implijer nevez gant al lesanv-se."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Lesanv nevez"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Krouiñ"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Kevreañ d'ur gont a zo dioutañ"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Lesanv a zo dioutañ"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Ger-tremen"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Kevreañ"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "N'eo ket aotreet krouiñ kontoù."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "N'eo ket reizh ar c'hod pedadenn."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Lesanv nann-aotreet."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Implijet eo dija al lesanv-se. Klaskit unan all."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr ""
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Anv implijer pe ger-tremen direizh."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Kevreañ"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Kas un ali"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Penaos 'mañ kont, %s ?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Arouezennoù a chom"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Kas"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr ""
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Anv implijer pe ger-tremen direizh."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s hag e vignoned, pajenn %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s hag e vignoned"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Ok, en ober !"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Mont hebiou"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Pajennadur"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "War-lerc'h"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "A-raok"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Trugarez da bediñ ho mignoned da implijout %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Pedadennoù a zo bet kaset d'an implijerien da-heul :"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Pedet oc'h bet da %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Pedit ho mignoned da implijout %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Mignoned hag a implij dija %s :"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Kas pedadennoù"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr ""
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Implijer Facebook Connect"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Kevreañ pe en em enskrivañ dre Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Arventennoù evit Facebook Connect"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Kevreet oc'h dija."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Kevreit gant ho kont Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Kevreadenn Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Dibosupl eo dilemel an implijer Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Degemer"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Degemer"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Pediñ"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Pediñ"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Arventennoù"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Penndibaboù"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr "ur gont nevez."
#: facebookaction.php:242
msgid "Register"
msgstr "En em enskrivañ"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Lesanv"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Kevreañ"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Ha kollet ho peus ho ker-tremen ?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Danvez ebet en ali !"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn."
#: facebookaction.php:431
msgid "Notices"
msgstr "Alioù"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Arventennoù enframmañ Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Arventennoù poellad Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "Alc'hwez API"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Alc'hwez API pourchaset gant Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Kuzh"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "Alc'hwez API kuzh pourchaset gant Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Enrollañ"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Enrollañ arventennoù Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Merañ an doare ma kevre ho kont ouzh Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Implijer Facebook kevreet"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Digevreañ ma c'hont deus Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "Termeniñ ur ger-tremen"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr "da gentañ."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Digevrañ"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "N'eus ket bet gallet diverkañ al liamm war-du Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "N'omp ket sur eus ar pezh emaoc'h o klask ober aze."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Kas respontoù \"@\" da Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Enrollañ"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Penndibaboù ar c'hempredañ"

View File

@ -1,575 +0,0 @@
# Translation of StatusNet - Facebook to Catalan (Català)
# Exported from translatewiki.net
#
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-30 22:50+0000\n"
"PO-Revision-Date: 2011-01-30 22:53:17+0000\n"
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-29 22:24:12+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81224); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Hola, %1$s. lamentem informar-vos que no podem actualitzar l'estat del "
"vostre Facebook des de %2$s, i hem inhabilitat l'aplicació del Facebook del "
"vostre compte. Això pot ser perquè hagiu eliminat l'autorització de "
"l'aplicació al Facebook, o perquè hàgiu eliminat el vostre compte del "
"Facebook. Podeu tornar a habilitar l'aplicació del Facebook i "
"l'actualització automàtica d'estat reinstal·lant l'aplicació de Facebook de %"
"2$s.\n"
"\n"
"Atentament,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
"Heu d'iniciar una sessió al Facebook per fer servir el Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Ja hi ha un usuari local enllaçat amb aquest compte del Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
"S'ha produït un problema amb el testimoni de la vostre sessió. Torneu-ho a "
"provar."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "No us podeu registrar si no accepteu la llicència."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "S'ha produït un error desconegut."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"És la primera vegada que inicieu una sessió a %s, per tant hem de connectar "
"el vostre Facebook a un compte local. Podeu crear un compte nou, o bé "
"connectar-vos amb un ja existent si ja en teniu un."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Configuració del compte del Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Opcions de connexió"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"El meu text i fitxers es troben disponibles sota %s, excepte les dades "
"privades següents: contrasenya, adreça electrònica, adreça de MI i número de "
"telèfon."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Crea un compte nou"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Crea un compte nou amb aquest sobrenom."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Nou sobrenom"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
"1-64 lletres en minúscules o nombres, sense signes de puntuació o espais"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Crea"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Connecta un compte existent"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Si ja teniu un compte, inicieu una sessió amb el nom d'usuari i contrasenya "
"per connectar-lo al vostre Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Sobrenom ja existent"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Contrasenya"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Connecta"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "No es permet el registre"
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "No és un codi d'invitació vàlid."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "No es permet el sobrenom."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "El sobrenom ja és en ús. Proveu-ne un altre."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "S'ha produït un error en connectar l'usuari al Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Nom d'usuari o contrasenya no vàlids."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Inici de sessió"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Envia un avís"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Com va, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Caràcters disponibles"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Envia"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Error del servidor: no es pot obtenir l'usuari!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Usuari o contrasenya incorrectes."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s i amics, pàgina %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s i amics"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Si voleu que l'aplicació %s actualitzi automàticament el vostre estat del "
"Facebook amb el darrer avís, cal que li doneu permisos."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Endavant, fes-ho!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Omet"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Paginació"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Després"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Abans"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Gràcies per convidar els vostres amics perquè facin servir el %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "S'han enviat invitacions als usuaris següents:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Us han convidat a %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Convideu els vostres amics a fer servir %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Amics que ja fan servir %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Envia invitacions"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Configuració d'integració del Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Usuari de connexió del Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Inicieu una sessió o registreu-vos fent servir el Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Paràmetres de connexió del Facebook"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"El connector del Facebook permet integrar instàncies de l'StatusNet amb el "
"<a href=\"http://facebook.com/\">Facebook</a> i el Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Ja heu iniciat una sessió."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Inicieu una sessió amb el compte del Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Inici de sessió del Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr "No s'ha pogut eliminar l'usuari del Facebook: ja s'ha eliminat."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "No s'ha pogut eliminar l'usuari del Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Inici"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Inici"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Convida"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Convida"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Paràmetres"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Paràmetres"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Per fer servir l'aplicació del Facebook %s cal que inicieu una sessió amb el "
"vostre usuari i contrasenya. No teniu cap nom d'usuari encara?"
#: facebookaction.php:235
msgid " a new account."
msgstr " un compte nou."
#: facebookaction.php:242
msgid "Register"
msgstr "Registre"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Sobrenom"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Inici de sessió"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Heu perdut o oblidat la contrasenya?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "No hi ha contingut a l'avís!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr "És massa llarg. La mida màxima d'un avís són %d caràcters."
#: facebookaction.php:431
msgid "Notices"
msgstr "Avisos"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Paràmetres d'integració del Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr "Clau API del Facebook no vàlida. La longitud màxima són 255 caràcters."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
"Clau secreta API del Facebook no vàlida. La longitud màxima són 255 "
"caràcters."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Paràmetres d'aplicació del Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "Clau API"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Clau API proporcionada pel Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Clau secreta"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "Clau secreta API proporcionada pel Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Desa"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Desa els paràmetres del Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Gestiona com el vostre compte es connecta al Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "No hi ha cap usuari del Facebook connectat a aquest compte."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Usuari del Facebook connectat"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Desconnecta el meu compte del Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"Si desconnecteu el vostre Facebook, serà impossible iniciar una sessió!"
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "definiu una contrasenya"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " abans de res."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Desconnecta"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "No s'ha pogut eliminar l'enllaç al Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Us heu desconnectat del Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "No estic segur del que proveu de fer."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr "S'ha produït un problema en desar les preferències de sincronització!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "S'han desat les preferències de sincronització."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
"Actualitza automàticament el meu estat del Facebook amb els meus avisos."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Envia respostes «@» al Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Desa"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Si voleu que %s actualitzi automàticament el vostre estat del Facebook amb "
"el darrer avís, cal que li doneu permís."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Permet que %s actualitzi el meu estat del Facebook"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Preferències de sincronització"

View File

@ -1,578 +0,0 @@
# Translation of StatusNet - Facebook to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Michael
# Author: The Evil IP address
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Hallo %1$s. Wir konnten leider nicht deinen Facebook-Status von %2$s aus "
"aktualisieren und haben daher das Facebook-Programm für dein Benutzerkonto "
"deaktiviert. Dies könnte daran liegen, dass du die Erlaubnis des Facebook-"
"Programms entfernt hast oder dein Facebook-Benutzerkonto gelöscht hast. Du "
"kannst das Facebook-Programm und die automatische Aktualisierung des Status, "
"indem du das %2$s-Facebook-Programm neu installierst.\n"
"\n"
"Mit freundlichen Grüßen,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
"Du musst auf Facebook eingeloggt sein, um Facebook Connect benutzen zu "
"können."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
"Es gibt bereits einen lokalen Benutzer, der mit diesem Facebook-"
"Benutzerkonto verknüpft ist."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr ""
"Du kannst dich nicht registrieren, wenn du die Lizenz nicht akzeptierst."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Ein unbekannter Fehler ist aufgetreten."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Dies ist das erste Mal, dass du dich auf %s anmeldest, sodass wir dein "
"Facebook-Benutzerkonto mit einem lokalen Benutzerkonto verbinden müssen. Du "
"kannst entweder ein neues Benutzerkonto erstellen oder dich mit deinem "
"existierendem Benutzerkonto verbinden."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Verbindungsoptionen"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Abgesehen von den folgenden Daten: Passwort, E-Mail-Adresse, IM-Adresse und "
"Telefonnummer, sind all meine Texte und Dateien unter %s verfügbar."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Neues Benutzerkonto erstellen"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Neues Benutzerkonto mit diesem Benutzernamen erstellen."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Neuer Benutzername"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Erstellen"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Bestehendes Benutzerkonto verbinden"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Wenn du bereits ein Benutzerkonto hast, melde dich mit deinem Benutzernamen "
"und Passwort an, um ihn mit Facebook zu verbinden."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Bestehender Benutzername"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Passwort"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Verbinden"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Registrierung nicht erlaubt."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Kein gültiger Einladungscode."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Benutzername nicht erlaubt."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Benutzername wird bereits verwendet. Suche dir einen anderen aus."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Fehler beim Verbinden des Benutzers mit Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Benutzername oder Passwort falsch."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Anmelden"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Nachricht senden"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Was geht, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Verfügbare Zeichen"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Senden"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Server-Fehler: Konnte Benutzer nicht kriegen!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Falscher Benutzername oder Passwort."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s und Freunde, Seite %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s und Freunde"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Wenn du möchtest, dass das %s-Programm automatisch deinen Facebook-Status "
"mit deiner neuesten Nachricht aktualisiert, musst du ihm die Erlaubnis dazu "
"geben."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Okay, mach es!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Überspringen"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr ""
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Nach"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Vor"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Danke für das Einladen deiner Freunde auf %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Einladungen wurden an die folgenden Benutzer gesendet:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Du wurdest auf %s eingeladen"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Lade deine Freunde auf %s ein"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Auf %s bereits angemeldete Freunde"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Einladungen senden"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr ""
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Mit Facebook anmelden oder registrieren"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Das Facebook-Plugin integriert StatusNet mit <a href=\"http://facebook.com/"
"\">Facebook</a> und Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Bereits angemeldet."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Logge dich mit deinem Facebook-Benutzerkonto ein"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Facebook Login"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr "Konnte Facebook-Benutzer nicht entfernen: bereits gelöscht."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Konnte Facebook-Benutzer nicht entfernen."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Startseite"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Startseite"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Einladen"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Einladen"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Einstellungen"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Einstellungen"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Um das %s-Facebook-Programm zu benutzen, musst du dich mit deinem "
"Benutzernamen und Passwort einloggen. Hast du noch keinen Benutzernamen?"
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr "Registrieren"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Benutzername"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Anmelden"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Passwort vergessen?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Kein Nachrichten-Inhalt!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
"Das war zu lang. Die Länge einer Nachricht ist auf %d Zeichen beschränkt."
#: facebookaction.php:431
msgid "Notices"
msgstr "Nachrichten"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
"Ungültiger Facebook-API-Schlüssel. Die maximale Länge liegt bei 255 Zeichen."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr "API-Schlüssel"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Von Facebook bereitgestellter API-Schlüssel"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Geheim"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Speichern"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Facebook-Einstellungen speichern"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Verwalte, wie dein Benutzerkonto sich mit Facebook verbindet"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
"Es gibt keinen Facebook-Benutzer, der mit diesem Benutzerkonto verbunden ist."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Verbundener Facebook-Benutzer"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "Passwort vergeben"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Abmelden"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Link zu Facebook konnte nicht gelöscht werden."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Sie sind bei Facebook abgemeldet."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Prozess konnte nicht verarbeitet werden."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
"Es gab ein Problem beim Speichern deiner Synchronisierungs-Einstellungen!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Synchronisierungs-Einstellungen gespeichert."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
"Meinen Facebook-Status automatisch mit meinen Nachrichten aktualisieren."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "@-Antworten an Facebook versenden."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Speichern"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Wenn du möchtest, dass %s automatisch deinen Facebook-Status mit deiner "
"neuesten Nachricht aktualisiert, musst du ihm die Erlaubnis dazu geben."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "%s erlauben, meinen Facebook-Status zu aktualisieren"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Synchronisierungs-Einstellungen"

View File

@ -1,563 +0,0 @@
# Translation of StatusNet - Facebook to Spanish (Español)
# Exported from translatewiki.net
#
# Author: Locos epraix
# Author: Peter17
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, fuzzy, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Hola, %$1s: Lamentamos informarte que no podemos actualizar tu estado de "
"Facebook desde %$2s y hemos inhabilitado la aplicación de Facebook en tu "
"cuenta. Esto puede deberse a que has eliminado la autorización de Facebook o "
"porque hax borrado tu cuenta de Facebook. Puedes volver a habilitar la "
"aplicación de Facebook y la actualización automática de estados mediante la "
"reinstalación de la aplicación de Facebook %2$s."
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
"Debes haber iniciado sesión en Facebook para poder utilizar Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Ya hay un usuario local vinculado a esta cuenta de Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
"Hubo un problema con tu token de sesión. Por favor, inténtalo de nuevo."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "No puedes registrarte si no estás de acuerdo con la licencia."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Ha ocurrido un error desconocido."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Esta es la primera vez que inicias sesión en %s, así que debemos conectar "
"Facebook a una cuenta local. Puedes crear una cuenta nueva o conectarte con "
"tu cuenta, de tenerla."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Configuración de cuenta de Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Opciones de conexión"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Mi texto y archivos están disponibles en %s, salvo estos datos privados: "
"contraseña, dirección de correo electrónico, dirección de mensajería "
"instantánea y número de teléfono."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Crear cuenta nueva"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Crear un nuevo usuario con este nombre de usuario."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Nuevo nombre de usuario"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
"1-64 letras en minúscula o números, sin signos de puntuación o espacios"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Crear"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Conectar cuenta existente"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Si ya tienes una cuenta, ingresa con tu nombre de usuario y contraseña para "
"conectarte a tu Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "El nombre de usuario ya existe"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Contraseña"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Conectar"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Registro de usuario no permitido."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "No es un código de invitación válido."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Nombre de usuario no autorizado."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "El nombre de usuario ya existe. Prueba con otro."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Error de conexión del usuario a Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Nombre de usuario o contraseña inválidos."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Iniciar sesión"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Enviar un mensaje"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "¿Qué tal, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Caracteres disponibles"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Enviar"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Error de servidor: ¡No se pudo obtener el usuario!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr ""
"Nombre de usuario o contraseña incorrectos\n"
"."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, fuzzy, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%s y sus amistades"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s y sus amistades"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Si desesa que la aplicación %s actualice automáticamente tu estado de "
"Facebook con tu último mensaje, tienes que darle permiso."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Ok, ¡hazlo!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Omitir"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Paginación"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Después"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Antes"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Gracias por invitar a tus amistades a usar %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Se ha enviado invitaciones a los siguientes usuarios:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Te han invitado a %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Invita a tus amistades a usar %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Amistades que ya usan %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Enviar invitaciones"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Configuración de integración de Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr ""
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Pagina principal"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Pagina principal"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Invitar"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Invitar"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Preferencias"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Preferencias"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr "Registrarse"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Nickname"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Iniciar sesión"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr ""
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr "Avisos"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Configuración de integración de Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Secreto"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Guardar"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr ""
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "establecer una contraseña"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr ""
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Guardar"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,581 +0,0 @@
# Translation of StatusNet - Facebook to French (Français)
# Exported from translatewiki.net
#
# Author: Peter17
# Author: Verdy p
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Salut, %1$s. Nous sommes désolés de vous informer que nous ne sommes pas en "
"mesure de mettre à jour votre statut Facebook depuis %2$s et que nous avons "
"désactivé lapplication Facebook sur votre compte. Cest peut-être parce que "
"vous avez retiré lautorisation de lapplication Facebook, ou avez supprimé "
"votre compte Facebook. Vous pouvez réactiver lapplication Facebook et la "
"mise à jour détat automatique en réinstallant lapplication %2$s pour "
"Facebook.\n"
"\n"
"Cordialement,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "Vous devez être identifié sur Facebook pour utiliser Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Il existe déjà un utilisateur local lié à ce compte Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
"Un problème est survenu avec votre jeton de session. Veuillez essayer à "
"nouveau."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Vous ne pouvez pas vous inscrire si vous nacceptez pas la licence."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Une erreur inconnue sest produite."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Cest la première fois que vous êtes connecté à %s via Facebook, il nous "
"faut donc lier votre compte Facebook à un compte local. Vous pouvez soit "
"créer un nouveau compte, soit vous connecter avec votre compte local "
"existant si vous en avez un."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Configuration du compte Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Options de connexion"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Mon texte et mes fichiers sont disponibles sous licence %s, à lexception "
"des données privées suivantes : mot de passe, adresse courriel, adresse de "
"messagerie instantanée et numéro de téléphone."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Créer un nouveau compte"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Créer un nouvel utilisateur avec ce pseudonyme."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Nouveau pseudonyme"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Créer"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Se connecter à un compte existant"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Si vous avez déjà un compte ici, connectez-vous avec votre nom dutilisateur "
"et mot de passe pour lassocier à votre compte Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Pseudonyme existant"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Mot de passe"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Connexion"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Inscription non autorisée."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Le code dinvitation nest pas valide."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Pseudonyme non autorisé."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Pseudonyme déjà utilisé. Essayez-en un autre."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Erreur de connexion de lutilisateur à Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Nom dutilisateur ou mot de passe incorrect."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Connexion"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Envoyer un avis"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Quoi de neuf, %s ?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Caractères restants"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Envoyer"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Erreur de serveur : impossible dobtenir lutilisateur !"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Nom dutilisateur ou mot de passe incorrect."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s et ses amis, page %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s et ses amis"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Si vous souhaitez que lapplication %s mette à jour automatiquement votre "
"statut Facebook avec votre dernier avis, vous devez lui en donner "
"lautorisation."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Ok, le faire !"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Sauter cette étape"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Pagination"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Après"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Avant"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Merci dinviter vos amis à utiliser %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Des invitations ont été envoyées aux utilisateurs suivants :"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Vous avez été invité à %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Invitez vos amis à utiliser %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Amis utilisant déjà %s :"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Envoyer des invitations"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Configuration de lintégration Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Utilisateur de Facebook Connect"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Se connecter ou sinscrire via Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Paramètres pour Facebook Connect"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Le greffon Facebook permet dintégrer des instances StatusNet avec <a href="
"\"http://facebook.com/\">Facebook</a> et Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Déjà connecté."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Connectez-vous avec votre compte Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Connexion Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr "Impossible de supprimer lutilisateur Facebook : déjà supprimé."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Impossible de supprimer lutilisateur Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Accueil"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Accueil"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Inviter"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Inviter"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Paramètres"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Préférences de lutilisateur"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Pour utiliser lapplication %s pour Facebook, vous devez vous identifier "
"avec votre nom dutilisateur et mot de passe. Vous navez pas encore un nom "
"dutilisateur ?"
#: facebookaction.php:235
msgid " a new account."
msgstr "un nouveau compte."
#: facebookaction.php:242
msgid "Register"
msgstr "Sinscrire"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Pseudonyme"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Connexion"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Mot de passe perdu ou oublié ?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Aucun contenu dans lavis !"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr "Cest trop long ! La taille maximale de lavis est de %d caractères."
#: facebookaction.php:431
msgid "Notices"
msgstr "Avis publiés"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Paramètres dintégration Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
"Clé invalide pour lAPI Facebook. La longueur maximum est de 255 caractères."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
"Code secret invalide pour lAPI Facebook. La longueur maximum est de 255 "
"caractères."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Paramètres de lapplication Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "Clé API"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Clé API fournie par Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Code secret"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "Code secret pour lAPI fourni par Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Sauvegarder"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Sauvegarder les paramètres Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Gérez la façon dont votre compte se connecte à Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "Il ny a pas dutilisateur Facebook connecté à ce compte."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Utilisateur Facebook connecté"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Déconnecter mon compte de Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"La déconnexion de votre compte Facebook ne vous permettrait plus de vous "
"connecter ! Sil vous plaît "
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "définissez un mot de passe"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " tout dabord."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Déconnecter"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Impossible de supprimer le lien vers Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Vous avez été déconnecté de Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Pas certain de ce que vous essayez de faire."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
"Il y a eu un problème lors de la sauvegarde de vos préférences de "
"synchronisation !"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Préférences de synchronisation enregistrées."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr "Mettre à jour automatiquement mon statut Facebook avec mes avis."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Envoyez des réponses « @ » à Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Sauvegarder"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Si vous souhaitez que lapplication %s mette à jour automatiquement votre "
"statut Facebook avec votre dernier avis, vous devez lui en donner "
"lautorisation."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Autoriser %s à mettre à jour mon statut Facebook"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Préférences de synchronisation"

View File

@ -1,545 +0,0 @@
# Translation of StatusNet - Facebook to Galician (Galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Houbo un erro co seu pase. Inténteo de novo."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Non pode rexistrarse se non acepta a licenza."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Houbo un erro descoñecido."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Opcións de conexión"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Os meus textos e ficheiros están dispoñibles baixo %s, salvo os seguintes "
"datos privados: contrasinais, enderezos de correo electrónico e mensaxería "
"instantánea e números de teléfono."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Crear unha conta nova"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Crear un novo usuario con este alcume."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Novo alcume"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
"Entre 1 e 64 letras minúsculas ou números, sen signos de puntuación, "
"espazos, tiles ou eñes"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Crear"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr ""
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr ""
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Contrasinal"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Conectar"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Non se permite o rexistro."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "O código da invitación é incorrecto."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr ""
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Ese alcume xa está en uso. Probe con outro."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr ""
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "O nome de usuario ou contrasinal non son correctos."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Rexistro"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Enviar unha nota"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Que hai de novo, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Caracteres dispoñibles"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Enviar"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr ""
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Nome de usuario ou contrasinal incorrectos."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s e amigos, páxina %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s e amigos"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "De acordo, facédeo!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Saltar"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Paxinación"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Despois"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Antes"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr ""
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr ""
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr ""
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Enviar as invitacións"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Configuración de integración do Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Usuario do Facebook Connect"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Xa se identificou."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Inicio"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Inicio"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Convidar"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Convidar"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Parámetros"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Configuracións"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr " unha nova conta."
#: facebookaction.php:242
msgid "Register"
msgstr "Rexistrarse"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Alcume"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Rexistro"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Esqueceu ou perdeu o contrasinal?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr "Avisos"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr "Clave API"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Clave API proporcionada polo Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Gardar"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr ""
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr ""
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " primeiro."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Desconectarse"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Gardar"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,572 +0,0 @@
# Translation of StatusNet - Facebook to Interlingua (Interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Salute, %1$s. Nos regretta informar te que nos es incapace de actualisar tu "
"stato de Facebook ab %2$s, e que nos ha disactivate le application Facebook "
"pro tu conto. Isto pote esser proque tu ha removite le autorisation del "
"application Facebook, o ha delite tu conto de Facebook. Tu pote reactivar le "
"application Facebook e le actualisation automatic de tu stato per "
"reinstallar le application Facebook %2$s.\n"
"\n"
"Attentemente,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "Tu debe aperir un session a Facebook pro usar Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Il ha jam un usator local ligate a iste conto de Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Tu non pote crear un conto si tu non accepta le licentia."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Un error incognite ha occurrite."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Isto es le prime vice que tu ha aperite un session in %s, dunque nos debe "
"connecter tu Facebook a un conto local. Tu pote crear un nove conto, o "
"connecter con tu conto existente si tu ha un."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Configuration de conto Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Optiones de connexion"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Mi texto e files es disponibile sub %s excepte iste datos private: "
"contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de "
"telephono."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Crear nove conto"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Crear un nove usator con iste pseudonymo."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Nove pseudonymo"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1-64 minusculas o numeros, sin punctuation o spatios"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Crear"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Connecter conto existente"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno "
"pro connecter lo a tu Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Pseudonymo existente"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Contrasigno"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Connecter"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Creation de conto non permittite."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Le codice de invitation es invalide."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Pseudonymo non permittite."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Pseudonymo ja in uso. Proba un altere."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Error durante le connexion del usator a Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Nomine de usator o contrasigno invalide."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Aperir session"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Inviar un nota"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Como sta, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Characteres disponibile"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Inviar"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Error de servitor: Non poteva obtener le usator!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Nomine de usator o contrasigno incorrecte."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s e amicos, pagina %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s e amicos"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Si tu vole que le application %s actualisa automaticamente tu stato de "
"Facebook con tu ultim enota, tu debe dar permission a illo."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "OK, face lo!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Saltar"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Pagination"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Post"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Ante"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Gratias pro invitar tu amicos a usar %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Invitationes ha essite inviate al sequente usatores:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Tu ha essite invitate a %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Invita tu amicos a usar %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Amicos que jam usa %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Inviar invitationes"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Configuration del integration de Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Usator de Facebook Connect"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Aperir session o crear conto usante Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Configurationes de connexion a Facebook"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Le plug-in de Facebook permitte integrar installationes de StatusNet con <a "
"href=\"http://facebook.com/\">Facebook</a> e Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Tu es jam authenticate."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Aperir session con tu conto de Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Authentication con Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr "Non poteva remover usator de Facebook: jam delite."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Non poteva remover le usator de Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Initio"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Initio"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Invitar"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Invitar"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Configurationes"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Configurationes"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Pro usar le application Facebook %s tu debe aperir un session con tu nomine "
"de usator e contrasigno. Tu non ha ancora un nomine de usator?"
#: facebookaction.php:235
msgid " a new account."
msgstr " un nove conto."
#: facebookaction.php:242
msgid "Register"
msgstr "Crear conto"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Pseudonymo"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Aperir session"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Contrasigno perdite o oblidate?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Le nota non ha contento!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
"Isto es troppo longe. Le longitude maximal del notas es %d characteres."
#: facebookaction.php:431
msgid "Notices"
msgstr "Notas"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Configurationes de integration de Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr "Clave API de Facebook invalide. Longitude maximal es 255 characteres."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
"Secreto API de Facebook invalide. Longitude maximal es 255 characteres."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Configurationes del application de Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "Clave API"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Clave API providite per Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Secreto"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "Secreto API providite per Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Salveguardar"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Salveguardar configuration Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Configura como tu conto se connecte a Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "Il non ha un usator de Facebook connectite a iste conto."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Usator de Facebook connectite"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Disconnecter mi conto ab Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"Le disconnexion de tu Facebook renderea le authentication impossibile! Per "
"favor "
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "defini un contrasigno"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " primo."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Disconnecter"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Non poteva deler le ligamine a Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Tu te ha disconnectite de Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Non es clar lo que tu tenta facer."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
"Occurreva un problema durante le salveguarda de tu preferentias de "
"synchronisation!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Preferentias de synchronisation salveguardate."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr "Actualisar automaticamente mi stato de Facebook con mi notas."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Inviar responsas \"@\" a Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Salveguardar"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Si tu vole que %s actualisa automaticamente tu stato de Facebook con tu "
"ultime nota, tu debe dar permission a illo."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Permitter a %s de actualisar mi stato de Facebook"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Preferentias de synchronisation"

View File

@ -1,568 +0,0 @@
# Translation of StatusNet - Facebook to Macedonian (Македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Здраво, %1$s. Нажалост, не можеме да го смениме Вашиот статус на Facebook од "
"%2$s, и го имаме оневозможено програмчето за Facebook на Вашата сметка. Ова "
"можеби се должи на тоа што сте го отстраниле овластувањето на програмчето за "
"Facebook, или пак сте ја избришале самата сметка на Facebook. Можете "
"повторно да го овозможите програмчето за Facebook и автоматското менување на "
"статус со преинсталирање на програмчето %2$s - Facebook.\n"
"\n"
"Поздрав,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
"Мора да сте најавени на Facebook за да можете да користите Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Веќе постои локален корисник поврзан со оваа сметка на Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Се појави непозната грешка."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Ова е прв пат како се најавувате на %s, па затоа мораме да го поврземе "
"Вашиот профил на Facebook со локална сметка. Можете да создадете нова "
"сметка, или пак да се поврзете со Вашата постоечка сметка (ако ја имате)."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Поставки за сметка на Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Нагодувања за врска"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Мојот текст и податотеки се достапни под %s освен следниве приватни "
"податоци: лозинка, е-пошта, IM-адреса, и телефонскиот број."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Создај нова сметка"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Создај нов корисник со овој прекар."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Нов прекар"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Создај"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Поврзи постоечка сметка"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Ако веќе имате сметка, најавете се со корисничкото име и лозинката за да ја "
"поврзете со профилот на Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Постоечки прекар"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Лозинка"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Поврзи се"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Регистрацијата не е дозволена."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Ова не е важечки код за покана."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Прекарот не е дозволен."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Прекарот е зафатен. Одберете друг."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Грешка при поврзувањето на корисникот со Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Неважечко корисничко име или лозинка."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Најава"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Испрати забелешка"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Како е, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Расположиви знаци"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Испрати"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Грешка во опслужувачот: Не можев да го добијам корисникот!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Погрешно корисничко име или лозинка."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s и пријателите, страница %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s и пријателите"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Доколку сакате %s автоматски да Ви го менува Вашиот статус на Facebook "
"(прикажувајќи ја најновата забелешка), ќе морате да дадете дозвола."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Во ред, ајде!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Прескокни"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Прелом на страници"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Потоа"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Претходно"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Ви благодариме што ги поканивте пријателите да користат %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Испратени се покани до следениве корисници:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Поканети сте на %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Поканете ги пријателите да користат %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Пријатели што веќе користат %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Испрати покани"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Поставки за обединување со Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Поврзување на корисник со Facebook Connect"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Најава или регистрација со Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Нагодувања за поврзување со Facebook"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Приклучокот за Facebook овозможува соединување на примероци на StatusNet со "
"<a href=\"http://mk-mk.facebook.com/\">Facebook</a> и Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Веќе сте најавени."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Најавете се со Вашата сметка на Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Најава со Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr "Не можев да го отстранам корисникот на Facebook: веќе е избришан."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Не можев да го отстранам корисниот на Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Почетна"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Почетна"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Покани"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Покани"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Нагодувања"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Нагодувања"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"За да го користите програмчето %s - Facebook ќе мора да сте најавени со "
"Вашето корисничко име и лозинка. Сè уште немате корисничко име?"
#: facebookaction.php:235
msgid " a new account."
msgstr " нова сметка."
#: facebookaction.php:242
msgid "Register"
msgstr "Регистрација"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Прекар"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Најава"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Ја загубивте/заборавивте лозинката?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Нема содржина за забелешката!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr "Ова е предолго. Забелешката може да содржи највеќе %d знаци."
#: facebookaction.php:431
msgid "Notices"
msgstr "Забелешки"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Поставки за обединување со Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr "Неважечки API-клуч за Facebook. Дозволени се највеќе 255 знаци."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr "Неважечки API-тајна за Facebook. Дозволени се највеќе 255 знаци."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Нагодувања за прог. Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "API-клуч"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "API-клучот е обезбеден од Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Тајна"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "API-тајната е обезбедена од Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Зачувај"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Зачувај нагодувања за Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Раководење со начинот на поврзување на Вашата сметка со Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "Нема корисник на Facebook поврзан со оваа сметка."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Поврзан корисник на Facebook"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Исклучи ја мојата сметка од Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"Ако ја исклучите врската со Facebook нема да можете да се најавите! Затоа, "
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "ставете лозинка"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " пред да продолжите."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Прекини"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Не можев да ја избришам врската до Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Сега е исклучена врската со Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Не ми е јасно што сакате да направите."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
"Се појави проблем при зачувувањето на Вашите поставки за услогласување!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Поставките за усогласување се зачувани."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr "Автоматски заменувај ми го статусот на Facebook со моите забелешки."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Испрати „@“ одговори на Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Зачувај"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Ако сакате %s автоматски да го заменува Вашиот статус на Facebook со Вашата "
"најновата забелешка, ќе треба да дадете дозвола."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Дозволи %s да го менува мојот статус на Facebook"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Услогласи нагодувања"

View File

@ -1,540 +0,0 @@
# Translation of StatusNet - Facebook to Norwegian (bokmål) (Norsk (bokmål))
# Exported from translatewiki.net
#
# Author: Nghtwlkr
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:44+0000\n"
"Language-Team: Norwegian (bokmål) <http://translatewiki.net/wiki/Portal:no>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: no\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr ""
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr ""
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr ""
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Opprett ny konto"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Opprett en ny bruker med dette kallenavnet."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Nytt kallenavn"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1-64 små bokstaver eller tall, ingen punktum eller mellomrom"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Opprett"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr ""
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Eksisterende kallenavn"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Passord"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Koble til"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Registrering ikke tillatt."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Ikke en gyldig invitasjonskode."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Kallenavn er ikke tillatt."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Kallenavnet er allerede i bruk. Prøv et annet."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr ""
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Ugyldig brukernavn eller passord."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Logg inn"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Send en notis"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Hva skjer %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Tilgjengelige tegn"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Send"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Tjenerfeil: Kunne ikke hente bruker!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Feil brukernavn eller passord."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s og venner, side %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s og venner"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr ""
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Hopp over"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Paginering"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Etter"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Før"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Takk for at du inviterte vennene dine til å bruke %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Invitasjoner har blitt sendt til følgende brukere:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Du har blitt invitert til å %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Inviter vennene dine til å bruke %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr ""
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Send invitasjoner"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr ""
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Allerede innlogget."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Hjem"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Hjem"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Inviter"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Inviter"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Innstillinger"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Innstillinger"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr " en ny konto."
#: facebookaction.php:242
msgid "Register"
msgstr "Registrer"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Kallenavn"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Logg inn"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Mistet eller glemt passordet?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr ""
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Lagre"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr ""
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "angi et passord"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " først."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr ""
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Send «@»-svar til Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Lagre"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Tillat %s å oppdatere min Facebook-status"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,578 +0,0 @@
# Translation of StatusNet - Facebook to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:43+0000\n"
"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Hallo %1$s.\n"
"\n"
"Het spijt ons u te moeten meedelen dat het niet mogelijk is uw "
"Facebookstatus bij te werken vanuit %2$s. De Facebookapplicatie is "
"uitgeschakeld voor uw gebruiker. Dit kan komen doordat u de toegangsrechten "
"voor de Facebookapplicatie hebt ingetrokken of omdat u uw Facebookgebruiker "
"hebt verwijderd. U kunt deze Facebookapplicatie opnieuw inschakelen en "
"automatisch uw status laten bijwerken door de Facebookapplicatie van %2$s "
"opnieuw te installeren.\n"
"\n"
"\n"
"Met vriendelijke groet,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "U moet zijn aangemeld bij Facebook om Facebook Connect te gebruiken."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "Er is al een lokale gebruiker verbonden met deze Facebookgebruiker"
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, "
"alstublieft."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Er is een onbekende fout opgetreden."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Dit is de eerste keer dat u aanmeldt bij %s en dan moeten we uw "
"Facebookgebruiker koppelen met uw lokale gebruiker. U kunt een nieuwe "
"gebruiker aanmaken of koppelen met een bestaande gebruiker als u die al hebt."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Facebookgebruiker instellen"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Verbindingsinstellingen"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende "
"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Nieuwe gebruiker aanmaken"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Nieuwe gebruiker aanmaken met deze gebruikersnaam."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Nieuwe gebruikersnaam"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Aanmaken"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Verbinden met een bestaande gebruiker"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Als u al een gebruiker hebt, meld dan aan met uw gebruikersnaam en "
"wachtwoord om deze daarna te koppelen met uw Facebookgebruiker."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Bestaande gebruikersnaam"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Wachtwoord"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Koppelen"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Registratie is niet toegestaan."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "De uitnodigingscode is ongeldig."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Gebruikersnaam niet toegestaan."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr ""
"De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Fout bij het verbinden van de gebruiker met Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Ongeldige gebruikersnaam of wachtwoord."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Aanmelden"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Mededeling verzenden"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Hallo, %s."
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Beschikbare tekens"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Verzenden"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Serverfout: de gebruiker kon niet geladen worden."
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "De gebruikersnaam of wachtwoord is onjuist."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s en vrienden, pagina %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s en vrienden"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Als u wilt dat het programma %s automatisch uw Facebookstatus bijwerkt met "
"uw laatste bericht, dan moet u daarvoor toestemming geven."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Toestemming geven"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Overslaan"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Paginering"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Later"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Eerder"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Dank u wel voor het uitnodigen van uw vrienden om %s te gebruiken."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Er is een uitnodiging verstuurd naar de volgende gebruikers:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "U bent uitgenodigd bij %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Vrienden uitnodigen om %s te gebruiken"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Vrienden die %s al gebruiken:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Uitnodigingen verzenden"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Instellingen voor Facebookintegratie"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Facebook Connectgebruiker"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Aanmelden of registreren via Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Instellingen voor Facebook Connect"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Via de de Facebookplug-in is het mogelijk StatusNet-installaties te koppelen "
"met <a href=\"http://facebook.com/\">Facebook</a> en Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "U bent al aangemeld."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Aanmelden met uw Facebookgebruiker"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Aanmelden via Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
"Het was niet mogelijk om de Facebookgebruiker te verwijderen: gebruiker is "
"al verwijderd."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Het was niet mogelijk de Facebookgebruiker te verwijderen."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Hoofdmenu"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Hoofdmenu"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Uitnodigen"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Uitnodigen"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Instellingen"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Instellingen"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Om het Facebookprograma %s te gebruiken moet u aanmelden met uw "
"gebruikersnaam en wachtwoord. Hebt u nog geen gebruiker?"
#: facebookaction.php:235
msgid " a new account."
msgstr " een nieuwe gebruiker."
#: facebookaction.php:242
msgid "Register"
msgstr "Registreren"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Gebruikersnaam"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Aanmelden"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Wachtwoord kwijt of vergeten?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Geen berichtinhoud!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr "De mededeling is te lang. Gebruik maximaal %d tekens."
#: facebookaction.php:431
msgid "Notices"
msgstr "Mededelingen"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Instellingen voor Facebookkoppeling"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr "Ongeldige Facebook API-sleutel. De maximale lengte is 255 tekens."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr "Ongeldig Facebook API-geheim. De maximale lengte is 255 tekens."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Applicatieinstellingen voor Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "API-sleutel"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "API-sleutel die door Facebook is uitgeven"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Geheim"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "API-geheim dat door Facebook is uitgeven"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Opslaan"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Facebookinstellingen opslaan"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Beheren hoe uw gebruiker is gekoppeld met Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "Er is geen Facebookgebruiker gekoppeld met deze gebruiker."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Gekoppelde Facebookgebruiker"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Mijn gebruiker loskoppelen van Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"Loskoppelen van uw Facebookgebruiker zou ervoor zorgen dat u niet langer "
"kunt aanmelden. U moet eerst "
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "een wachtwoord instellen"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " voordat u verder kunt met deze handeling."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Loskoppelen"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Het was niet mogelijk de verwijzing naar Facebook te verwijderen."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "U bent losgekoppeld van Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Het is niet duidelijk wat u wilt bereiken."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
"Er is een fout opgetreden tijdens het opslaan van uw "
"synchronisatievoorkeuren!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Uw synchronisatievoorkeuren zijn opgeslagen."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr "Mijn Facebookstatus automatisch bijwerken met mijn mededelingen."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Antwoorden met \"@\" naar Facebook verzenden."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Opslaan"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Als u wilt dat %s automatisch uw Facebookstatus bijwerkt met uw laatste "
"mededeling, dat moet u daar toestemming voor geven."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "%s toestaan mijn Facebookstatus bij te werken"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Synchronisatievooreuren"

View File

@ -1,544 +0,0 @@
# Translation of StatusNet - Facebook to Brazilian Portuguese (Português do Brasil)
# Exported from translatewiki.net
#
# Author: Giro720
# Author: Luckas Blade
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:44+0000\n"
"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-"
"br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: pt-br\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Você não pode se registrar se não aceitar a licença."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Ocorreu um erro desconhecido."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Opções de conexão"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Criar nova conta"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Criar um novo usuário com este apelido."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Novo apelido"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Criar"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr ""
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr ""
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Senha"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Conectar"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Não é permitido o registro."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "O código de convite é inválido."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Apelido não permitido."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Este apelido já está em uso. Tente outro."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Erro ao conectar o usuário ao Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr ""
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Entrar"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr ""
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr ""
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Caracteres disponíveis"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Enviar"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr ""
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Nome de usuário e/ou senha incorreto(s)."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s e amigos, pág. %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s e amigos"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Se você deseja que o %s aplicativo atualize automaticamente seu estado no "
"Facebook com seus último anúncio, você deve autorizá-lo para isso."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr ""
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Avançar"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Paginação"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Depois"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Antes"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Obrigado por convidar seus amigos a usar %s"
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr ""
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Você foi convidado para %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Convidar seus amigos a usar %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Amigos já usando %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Enviar convites"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr ""
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Entrar ou se registrar usando o Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr ""
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Já está autenticado."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr ""
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr ""
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Convidar"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Convidar"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Configurações"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Configurações"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr "Registrar-se"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Apelido"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Entrar"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Perdeu ou esqueceu sua senha?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr ""
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr ""
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Salvar"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Salvar configurações do Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Desconectar minha conta do Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr ""
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Desconectar"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Salvar"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,583 +0,0 @@
# Translation of StatusNet - Facebook to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:44+0000\n"
"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Kumusta, %1$s. May pagpapaumanhin naming ipinababatid sa iyo na hindi namin "
"naisapanahon ang iyong katayuan ng Facebook mula %2$s, at hindi namin "
"pinagana ang aplikasyon ng Facebook para sa iyong akawnt. Maaaring dahil "
"ito sa inalis mo ang pahintulot sa aplikasyon ng Facebook, o pagbura ng "
"iyong akawnt sa Facebook. Maaari mong muling buhayin ang aplikasyon ng "
"Facebook at kusang pagsasapanahon ng kalagayan sa pamamagitan ng muling "
"pagtatalaga ng aplikasyon ng Facebook na %2$s.\n"
"\n"
"Nagpapahalaga,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "Dapat na nakalagda ka sa Facebook upang magamit ang Ugnay sa Facebook."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
"Mayroon nang isang katutubong tagagamit na nakakawing sa ganitong akawnt ng "
"Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "May isang suliranin sa iyong token ng sesyon. Paki subukan uli."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Hindi ka makapagpapatala kung hindi ka sumasang-ayon sa lisensiya."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Isang hindi nalalamang kamalian ang naganap."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Ito ang iyong unang pagkakataong lumagda sa %s kaya't kailangan naming "
"iugnay ang iyong Facebook sa isang katutubong akawnt. Maaari kang lumikha "
"ng isang bagong akawnt, o umugnay sa pamamagitan ng iyong umiiral na akawnt, "
"kung mayroon ka."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Pagtatakda ng Akawnt ng Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Mga pagpipilian na pang-ugnay"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Ang aking teksto at mga talaksan ay makukuha sa ilalim ng %s maliban sa "
"pribadong dato na ito: hudyat, tirahan ng e-liham, tirahan ng IM, at bilang "
"na pangtelepono."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Lumikha ng bagong akawnt"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Lumikha ng isang bagong tagagamit na may ganitong palayaw."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Bagong palayaw"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
"1 hanggang 64 na maliliit na mga titik o mga bilang, walang bantas o mga "
"patlang"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Likhain"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Umugnay sa umiiral na akawnt"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Kung mayroon ka nang akawnt, lumagda sa pamamagitan ng iyong pangalan ng "
"tagagamit at hudyat upang iugnay ito sa iyong Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Umiiral na palayaw"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Hudyat"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Umugnay"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Hindi pinapahintulutan ang pagpapatala."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Hindi isang tanggap na kodigo ng paanyaya."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Hindi pinapahintulutan ang palayaw."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Ginagamit na ang palayaw. Subukan ang iba."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "May kamalian sa pag-ugnay ng tagagamit sa Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Hindi tanggap na pangalan ng tagagamit o hudyat."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Lumagda"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Magpadala ng pabatid"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Anong balita, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Makukuhang mga panitik"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Ipadala"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Kamalian ng tapaghain: Hindi makuha ang tagagamit!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Hindi tamang pangalan ng tagagamit o hudyat."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s at mga kaibigan, pahina %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s at mga kaibigan"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Kung nais mong kusang isapanahon ng aplikasyong %s ang iyong katayuan ng "
"Facebook na may pinakabagong pabatid, kailangan mong bigyan ito ng "
"pahintulot."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Sige, gawin iyan!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Lagtawan"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Pagbilang ng pahina"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Pagkalipas ng"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Bago ang"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Salamat sa pag-anyaya sa iyong mga kaibigan na gamitin ang %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Ipinadala na ang mga paanyaya sa sumusunod ng mga tagagamit:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Inaanyayahan ka sa %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Anyayahan ang iyong mga kaibigan na gamitin ang %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Mga kaibigang gumagamit na ng %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Ipadala ang mga paanyaya"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Pagkakaayos ng integrasyon ng Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Tagagamit ng Ugnay sa Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Lumagda o magpatalang ginagamit ang Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Mga Pagtatakda sa Ugnay sa Facebook"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Ang pamasak na Facebook ay nagpapahintulot ng integrasyon ng mga pagkakataon "
"sa StatusNet sa pamamagitan ng <a href=\"http://facebook.com/\">Facebook</a> "
"at Ugnay sa Facebook."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Nakalagda na."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Lumagda sa pamamagitan ng iyong Akawnt sa Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Paglagda sa Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Hindi matanggal ang tagagamit ng Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Tahanan"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Tahanan"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Anyayahan"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Anyayahan"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Mga pagtatakda"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Mga pagtatakda"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Upang magamit ang Aplikasyon ng Facebook na %s kailangan mong lumagda sa "
"pamamagitan ng iyong pangalan ng tagagamit at hudyat. Wala ka pa bang "
"bansag?"
#: facebookaction.php:235
msgid " a new account."
msgstr "isang bagong akawnt."
#: facebookaction.php:242
msgid "Register"
msgstr "Magpatala"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Palayaw"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Lumagda"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Hudyat na nawala o nakalimutan?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Walang laman ang pabatid!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
"Napakahaba niyan. Ang pinakamataas na sukat ng pabatid ay %d mga panitik."
#: facebookaction.php:431
msgid "Notices"
msgstr "Mga pabatid"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Mga pagtatakda sa integrasyon ng Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
"Hindi tanggap na susi sa API ng Facebook. Ang pinakamataas na haba ay 255 "
"mga panitik."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
"Hindi tanggap na lihim sa API ng Facebook. Ang pinakamataas na haba ay 255 "
"mga panitik."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Mga pagtatakda sa aplikasyon ng Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "Susi ng API"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "Ang susi ng API ay ibinigay ng Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Lihim"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "Ang lihim ng API ay ibinigay ng Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Sagipin"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Sagipin ang mga katakdaan ng Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Pamahalaan kung paano umuugnay ang iyong akawnt sa Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "Walang tagagamit ng Facebook na nakaugnay sa akawnt na ito."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Nakaugnay na tagagamit ng Facebook"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Huwag iugnay ang aking akawnt mula sa Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"Ang pagtatanggal ng ugnay sa Facebook ay magsasanhi ng hindi mangyayaring "
"paglagda! Paki "
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "magtakda ng isang hudyat"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr "muna."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Huwag umugnay"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Hindi maalis ang pagkabit sa Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Hindi ka na nakaugnay sa Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Hindi sigurado kung ano ang sinusubok mong gawin."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr "May isang suliranin sa pagsagip ng iyong mga nais sa pagsabay!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Nasagip ang mga nais sa pagsabay."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
"Kusang isapanahon ang aking katayuan ng Facebook na may mga pabatid ko."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Ipadala ang mga tugong \"@\" sa Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Sagipin"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Kung nais mong kusang isapanahon ng %s ang iyong katayuan ng Facebook na may "
"pinakabagong mga pabatid mo, kailangan mo itong bigyan ng pahintulot."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Pahintulutan si %s na isapanahon ang aking katayuan ng Facebook"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Mga nais sa pagsabay"

View File

@ -1,573 +0,0 @@
# Translation of StatusNet - Facebook to Ukrainian (Українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:44+0000\n"
"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"Вітаємо, %1$s. Нам дуже прикро про це повідомляти, але ми не в змозі "
"оновлювати ваш статус у Facebook з %2$s і відключаємо додаток Facebook для "
"вашого акаунту. Таке могло статися тому, що ви, можливо, скасували "
"авторизацію для додатку Facebook або видалили ваш акаунт Facebook. Ви маєте "
"можливість перезапустити додаток для Facebook і автоматичний імпорт ваших "
"статусів з %2$s до Facebook буде поновлено.\n"
"\n"
"З повагою,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "Ви повинні увійти до Facebook або використати Facebook Connect."
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
"На даному сайті вже є користувач, котрий підключив цей акаунт Facebook."
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка."
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії."
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "Виникла якась незрозуміла помилка."
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш акаунт Facebook "
"до акаунту на даному сайті. Ви маєте можливість створити новий акаунт або "
"використати такий, що вже існує."
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Налаштування акаунту Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "Опції з’єднання"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, "
"електронна адреса, адреса IM, телефонний номер."
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "Створити новий акаунт"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "Створити нового користувача з цим нікнеймом."
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "Новий нікнейм"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Створити"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "Приєднати акаунт, який вже існує"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби "
"приєднати їх до Facebook."
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "Нікнейм, який вже існує"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Пароль"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Під’єднати"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "Реєстрацію не дозволено."
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "Це не дійсний код запрошення."
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "Нікнейм не допускається."
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "Цей нікнейм вже використовується. Спробуйте інший."
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "Помилка при підключенні до Facebook."
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "Невірне ім’я або пароль."
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Увійти"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "Надіслати допис"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "Що нового, %s?"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "Лишилось знаків"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Так"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "Помилка сервера: не вдалося отримати користувача!"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "Неточне ім’я або пароль."
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s з друзями, сторінка %2$d"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s з друзями"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"Якщо ви бажаєте, щоб додаток %s автоматично оновлював ваш статус у Facebook "
"останнім повідомленням, ви повинні надати дозвіл."
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "Так, зробіть це!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Проскочити"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "Нумерація сторінок"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Вперед"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Назад"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "Дякуємо, що запросили своїх друзів на %s."
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "Запрошення було надіслано таким користувачам:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "Вас було запрошено до %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "Запросіть своїх друзів до %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "Деякі друзі вже користуються %s:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "Розсилка запрошень"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Налаштування інтеграції з Facebook"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Facebook Connect"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "Увійти або зареєструватись з Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Налаштування Facebook Connect"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
"Додаток Facebook дозволяє інтегрувати StatusNet-сумісні сервіси з <a href="
"\"http://facebook.com/\">Facebook</a> та Facebook Connect."
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "Тепер ви увійшли."
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "Увійти з акаунтом Facebook"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Вхід Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr "Не вдалося видалити користувача Facebook: вже видалений."
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr "Не вдалося видалити користувача Facebook."
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Дім"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Дім"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "Запросити"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "Запросити"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Налаштування"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Налаштування"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
"Щоб використовувати додаток %s для Facebook, ви мусите увійти, "
"використовуючи своє ім’я користувача та пароль. Ще не маєте імені "
"користувача?"
#: facebookaction.php:235
msgid " a new account."
msgstr " новий акаунт."
#: facebookaction.php:242
msgid "Register"
msgstr "Зареєструвати"
#: facebookaction.php:274
msgid "Nickname"
msgstr "Нікнейм"
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Увійти"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr "Загубили або забули пароль?"
#: facebookaction.php:370
msgid "No notice content!"
msgstr "Повідомлення порожнє!"
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr "Надто довго. Максимальний розмір допису — %d знаків."
#: facebookaction.php:431
msgid "Notices"
msgstr "Дописи"
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr "Налаштування інтеграції з Facebook"
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
"Помилковий ключ Facebook API. Максимальна довжина ключа — 255 символів."
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
"Помилковий секретний код Facebook API. Максимальна довжина — 255 символів."
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Налаштування додатку для Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr "API-ключ"
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr "API-ключ, що був наданий Facebook"
#: facebookadminpanel.php:193
msgid "Secret"
msgstr "Секретний код"
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr "Секретний код API, що був наданий Facebook"
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Зберегти"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Зберегти налаштування Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr "Зазначте, яким чином ваш акаунт буде під’єднано до Facebook"
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr "Наразі жоден користувач Facebook не під’єднаний до цього акаунту."
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Під’єднаний користувач Facebook"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr "Від’єднати мій акаунт від Facebook"
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
"Якщо ви від’єднаєте свій Facebook, то це унеможливить вхід до системи у "
"майбутньому! Будь ласка, "
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr "встановіть пароль"
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr " спочатку."
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Від’єднати"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr "Не можу видалити посилання на Facebook."
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr "Ви від’єдналися від Facebook."
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr "Хто зна, що ви намагаєтеся зробити."
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr "Виникла проблема при збереженні параметрів синхронізації!"
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr "Параметри синхронізації збережено."
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr "Автоматично оновлювати статус у Facebook моїми дописами."
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr "Надсилати «@» відповіді до Facebook."
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Зберегти"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
"Якщо ви бажаєте, щоб додаток %s автоматично оновлював ваш статус у Facebook "
"останнім повідомленням, ви повинні надати дозвіл."
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr "Дозволити додатку %s оновлювати мій статус у Facebook"
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr "Параметри синхронізації"

View File

@ -1,540 +0,0 @@
# Translation of StatusNet - Facebook to Vietnamese (Tiếng Việt)
# Expored from translatewiki.net
#
# Author: Minh Nguyen
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-14 10:29+0000\n"
"PO-Revision-Date: 2011-01-14 10:33:07+0000\n"
"Language-Team: Vietnamese <http://translatewiki.net/wiki/Portal:vi>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-10 18:26:00+0000\n"
"X-Generator: MediaWiki 1.18alpha (r80246); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: vi\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr ""
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr ""
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr ""
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr ""
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr ""
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Thiết lập Tài khoản Facebook"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr ""
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr ""
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr ""
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr ""
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "Tạo"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr ""
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr ""
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr ""
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "Mật khẩu"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "Kết nối"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:237 FBConnectAuth.php:247
msgid "Registration not allowed."
msgstr ""
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:255
msgid "Not a valid invitation code."
msgstr ""
#: FBConnectAuth.php:267
msgid "Nickname not allowed."
msgstr ""
#: FBConnectAuth.php:272
msgid "Nickname already in use. Try another one."
msgstr ""
#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344
msgid "Error connecting user to Facebook."
msgstr ""
#: FBConnectAuth.php:310
msgid "Invalid username or password."
msgstr ""
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "Đăng nhập"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr ""
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr ""
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr ""
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "Gửi"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr ""
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr ""
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr ""
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s và bạn bè"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr ""
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "Bỏ qua"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr ""
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "Sau"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "Trước"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr ""
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr ""
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr ""
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr ""
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr ""
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr ""
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Người dùng Kết nối Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr ""
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Thiết lập Kết nối Facebook"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr ""
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr ""
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr "Đăng nhập vào Facebook"
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "Trang chủ"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "Trang chủ"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr ""
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr ""
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "Thiết lập"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "Thiết lập"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr "Đăng ký"
#: facebookaction.php:274
msgid "Nickname"
msgstr ""
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr "Đăng nhập"
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr ""
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr ""
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr "Facebook"
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr "Thiết lập ứng dụng Facebook"
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr "Lưu"
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr "Lưu các thiết lập Facebook"
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr "Người dùng Facebook kết nối"
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr ""
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr "Ngắt kết nối"
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr "Lưu"
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""

View File

@ -1,556 +0,0 @@
# Translation of StatusNet - Facebook to Simplified Chinese (‪中文(简体))
# Exported from translatewiki.net
#
# Author: Chenxiaoqino
# Author: Hydra
# Author: ZhengYiFeng
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Facebook\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-29 21:45+0000\n"
"PO-Revision-Date: 2011-01-29 21:49:44+0000\n"
"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-"
"hans>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-22 19:30:29+0000\n"
"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: zh-hans\n"
"X-Message-Group: #out-statusnet-plugin-facebook\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: facebookutil.php:429
#, php-format
msgid ""
"Hi, %1$s. We're sorry to inform you that we are unable to update your "
"Facebook status from %2$s, and have disabled the Facebook application for "
"your account. This may be because you have removed the Facebook "
"application's authorization, or have deleted your Facebook account. You can "
"re-enable the Facebook application and automatic status updating by re-"
"installing the %2$s Facebook application.\n"
"\n"
"Regards,\n"
"\n"
"%2$s"
msgstr ""
"你好,%1$s。我们很抱歉的通知你我们无法从%2$s更新你的Facebook状态并已禁用你"
"帐户的Facebook应用。这可能是因为你取消了Facebook应用的授权或者你删除了你的"
"Facebook帐户。通过重新安装Facebook应用你可以重新启用你的Facebook应用的自动状"
"态更新。\n"
"\n"
"祝好,\n"
"\n"
"%2$s"
#: FBConnectAuth.php:55
msgid "You must be logged into Facebook to use Facebook Connect."
msgstr "你必须使用Facebook Connect来登入Facebook帐号。"
#: FBConnectAuth.php:79
msgid "There is already a local user linked with this Facebook account."
msgstr "这里已经有一个用户连接了此Facebook帐号。"
#: FBConnectAuth.php:91 FBConnectSettings.php:166
msgid "There was a problem with your session token. Try again, please."
msgstr "你的session token出错了。请重试。"
#: FBConnectAuth.php:96
msgid "You can't register if you don't agree to the license."
msgstr "你必须同意许可协议才能注册。"
#: FBConnectAuth.php:106
msgid "An unknown error has occured."
msgstr "发生未知错误。"
#. TRANS: %s is the site name.
#: FBConnectAuth.php:121
#, php-format
msgid ""
"This is the first time you've logged into %s so we must connect your "
"Facebook to a local account. You can either create a new account, or connect "
"with your existing account, if you have one."
msgstr ""
" 这是你第一次登录到 %s我们需要将你的Facebook帐号与一个本地的帐号关联。你可"
"以新建一个帐号,或者使用你在本站已有的帐号。"
#. TRANS: Page title.
#: FBConnectAuth.php:128
msgid "Facebook Account Setup"
msgstr "Facebook帐号设置"
#. TRANS: Legend.
#: FBConnectAuth.php:162
msgid "Connection options"
msgstr "连接选项"
#. TRANS: %s is the name of the license used by the user for their status updates.
#: FBConnectAuth.php:172
#, php-format
msgid ""
"My text and files are available under %s except this private data: password, "
"email address, IM address, and phone number."
msgstr ""
" 我的文字和文件在%s下提供除了如下隐私内容密码、电子邮件地址、IM 地址和电"
"话号码。"
#. TRANS: Legend.
#: FBConnectAuth.php:189
msgid "Create new account"
msgstr "创建新帐户"
#: FBConnectAuth.php:191
msgid "Create a new user with this nickname."
msgstr "以此昵称创建新帐户"
#. TRANS: Field label.
#: FBConnectAuth.php:195
msgid "New nickname"
msgstr "新昵称"
#: FBConnectAuth.php:197
msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
msgstr "1 到 64 个小写字母或数字,不包含标点或空格"
#. TRANS: Submit button.
#: FBConnectAuth.php:201
msgctxt "BUTTON"
msgid "Create"
msgstr "创建"
#: FBConnectAuth.php:207
msgid "Connect existing account"
msgstr "连接现有帐号"
#: FBConnectAuth.php:209
msgid ""
"If you already have an account, login with your username and password to "
"connect it to your Facebook."
msgstr "如果你已有帐号请输入用户名和密码登录并连接至Facebook。"
#. TRANS: Field label.
#: FBConnectAuth.php:213
msgid "Existing nickname"
msgstr "已存在的昵称"
#: FBConnectAuth.php:216 facebookaction.php:277
msgid "Password"
msgstr "密码"
#. TRANS: Submit button.
#: FBConnectAuth.php:220
msgctxt "BUTTON"
msgid "Connect"
msgstr "连接"
#. TRANS: Client error trying to register with registrations not allowed.
#. TRANS: Client error trying to register with registrations 'invite only'.
#: FBConnectAuth.php:241 FBConnectAuth.php:251
msgid "Registration not allowed."
msgstr "不允许注册。"
#. TRANS: Client error trying to register with an invalid invitation code.
#: FBConnectAuth.php:259
msgid "Not a valid invitation code."
msgstr "对不起,无效的邀请码。"
#: FBConnectAuth.php:271
msgid "Nickname not allowed."
msgstr "昵称不被允许。"
#: FBConnectAuth.php:276
msgid "Nickname already in use. Try another one."
msgstr "昵称已被使用,换一个吧。"
#: FBConnectAuth.php:294 FBConnectAuth.php:330 FBConnectAuth.php:350
msgid "Error connecting user to Facebook."
msgstr "连接用户至Facebook时发生错误。"
#: FBConnectAuth.php:316
msgid "Invalid username or password."
msgstr "用户名或密码不正确。"
#. TRANS: Page title.
#: facebooklogin.php:90 facebookaction.php:255
msgid "Login"
msgstr "登录"
#. TRANS: Legend.
#: facebooknoticeform.php:144
msgid "Send a notice"
msgstr "发送一个通知"
#. TRANS: Field label.
#: facebooknoticeform.php:157
#, php-format
msgid "What's up, %s?"
msgstr "%s最近怎么样"
#: facebooknoticeform.php:169
msgid "Available characters"
msgstr "可用的字符"
#. TRANS: Button text.
#: facebooknoticeform.php:196
msgctxt "BUTTON"
msgid "Send"
msgstr "发送"
#: facebookhome.php:103
msgid "Server error: Couldn't get user!"
msgstr "服务器错误:无法获取用户。"
#: facebookhome.php:122
msgid "Incorrect username or password."
msgstr "用户名或密码不正确。"
#. TRANS: Page title.
#. TRANS: %1$s is a user nickname, %2$s is a page number.
#: facebookhome.php:153
#, php-format
msgid "%1$s and friends, page %2$d"
msgstr "%1$s 和页 %2$d 的朋友"
#. TRANS: Page title.
#. TRANS: %s is a user nickname
#: facebookhome.php:157
#, php-format
msgid "%s and friends"
msgstr "%s 和好友们"
#. TRANS: Instructions. %s is the application name.
#: facebookhome.php:185
#, php-format
msgid ""
"If you would like the %s app to automatically update your Facebook status "
"with your latest notice, you need to give it permission."
msgstr ""
"如果你希望 %s 应用自动更新你最新的状态到Facebook状态上你需要给它设置权限。"
#: facebookhome.php:210
msgid "Okay, do it!"
msgstr "好的!"
#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
#: facebookhome.php:217
msgctxt "BUTTON"
msgid "Skip"
msgstr "跳过"
#: facebookhome.php:244 facebookaction.php:336
msgid "Pagination"
msgstr "分页"
#. TRANS: Pagination link.
#: facebookhome.php:254 facebookaction.php:345
msgid "After"
msgstr "之后"
#. TRANS: Pagination link.
#: facebookhome.php:263 facebookaction.php:353
msgid "Before"
msgstr "之前"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:69
#, php-format
msgid "Thanks for inviting your friends to use %s."
msgstr "谢谢你邀请你的朋友们来使用 %s。"
#. TRANS: Followed by an unordered list with invited friends.
#: facebookinvite.php:72
msgid "Invitations have been sent to the following users:"
msgstr "邀请已发给一些的用户:"
#: facebookinvite.php:91
#, php-format
msgid "You have been invited to %s"
msgstr "你被邀请来到 %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:101
#, php-format
msgid "Invite your friends to use %s"
msgstr "邀请你的朋友们来使用 %s"
#. TRANS: %s is the name of the site.
#: facebookinvite.php:124
#, php-format
msgid "Friends already using %s:"
msgstr "已经使用 %s 的好友们:"
#. TRANS: Page title.
#: facebookinvite.php:143
msgid "Send invitations"
msgstr "发送邀请"
#. TRANS: Menu item.
#. TRANS: Menu item tab.
#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
msgctxt "MENU"
msgid "Facebook"
msgstr "Facebook"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:190
msgid "Facebook integration configuration"
msgstr "Facebook整合设置"
#: FacebookPlugin.php:431
msgid "Facebook Connect User"
msgstr "Facebook Connect 用户"
#. TRANS: Tooltip for menu item "Facebook".
#: FacebookPlugin.php:463
msgid "Login or register using Facebook"
msgstr "使用 Facebook 登陆或注册"
#. TRANS: Tooltip for menu item "Facebook".
#. TRANS: Page title.
#: FacebookPlugin.php:487 FBConnectSettings.php:55
msgid "Facebook Connect Settings"
msgstr "Facebook Connect 设置"
#: FacebookPlugin.php:591
msgid ""
"The Facebook plugin allows integrating StatusNet instances with <a href="
"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
msgstr ""
#: FBConnectLogin.php:33
msgid "Already logged in."
msgstr "已登录。"
#. TRANS: Instructions.
#: FBConnectLogin.php:42
msgid "Login with your Facebook Account"
msgstr "使用你的 Facebook 帐号登录"
#. TRANS: Page title.
#: FBConnectLogin.php:57
msgid "Facebook Login"
msgstr ""
#: facebookremove.php:53
msgid "Couldn't remove Facebook user: already deleted."
msgstr ""
#: facebookremove.php:63
msgid "Couldn't remove Facebook user."
msgstr ""
#. TRANS: Link description for 'Home' link that leads to a start page.
#: facebookaction.php:169
msgctxt "MENU"
msgid "Home"
msgstr "首页"
#. TRANS: Tooltip for 'Home' link that leads to a start page.
#: facebookaction.php:171
msgid "Home"
msgstr "首页"
#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:180
msgctxt "MENU"
msgid "Invite"
msgstr "邀请"
#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
#: facebookaction.php:182
msgid "Invite"
msgstr "邀请"
#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:192
msgctxt "MENU"
msgid "Settings"
msgstr "设置"
#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
#: facebookaction.php:194
msgid "Settings"
msgstr "设置"
#: facebookaction.php:233
#, php-format
msgid ""
"To use the %s Facebook Application you need to login with your username and "
"password. Don't have a username yet?"
msgstr ""
#: facebookaction.php:235
msgid " a new account."
msgstr ""
#: facebookaction.php:242
msgid "Register"
msgstr ""
#: facebookaction.php:274
msgid "Nickname"
msgstr ""
#. TRANS: Login button.
#: facebookaction.php:282
msgctxt "BUTTON"
msgid "Login"
msgstr ""
#: facebookaction.php:288
msgid "Lost or forgotten password?"
msgstr ""
#: facebookaction.php:370
msgid "No notice content!"
msgstr ""
#: facebookaction.php:377
#, php-format
msgid "That's too long. Max notice size is %d chars."
msgstr ""
#: facebookaction.php:431
msgid "Notices"
msgstr ""
#: facebookadminpanel.php:52
msgid "Facebook"
msgstr ""
#: facebookadminpanel.php:62
msgid "Facebook integration settings"
msgstr ""
#: facebookadminpanel.php:123
msgid "Invalid Facebook API key. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:129
msgid "Invalid Facebook API secret. Max length is 255 characters."
msgstr ""
#: facebookadminpanel.php:178
msgid "Facebook application settings"
msgstr ""
#: facebookadminpanel.php:184
msgid "API key"
msgstr ""
#: facebookadminpanel.php:185
msgid "API key provided by Facebook"
msgstr ""
#: facebookadminpanel.php:193
msgid "Secret"
msgstr ""
#: facebookadminpanel.php:194
msgid "API secret provided by Facebook"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save"
msgstr ""
#: facebookadminpanel.php:210
msgid "Save Facebook settings"
msgstr ""
#. TRANS: Instructions.
#: FBConnectSettings.php:66
msgid "Manage how your account connects to Facebook"
msgstr ""
#: FBConnectSettings.php:90
msgid "There is no Facebook user connected to this account."
msgstr ""
#: FBConnectSettings.php:98
msgid "Connected Facebook user"
msgstr ""
#. TRANS: Legend.
#: FBConnectSettings.php:118
msgid "Disconnect my account from Facebook"
msgstr ""
#. TRANS: Followed by a link containing text "set a password".
#: FBConnectSettings.php:125
msgid ""
"Disconnecting your Faceboook would make it impossible to log in! Please "
msgstr ""
#. TRANS: Preceded by "Please " and followed by " first."
#: FBConnectSettings.php:130
msgid "set a password"
msgstr ""
#. TRANS: Preceded by "Please set a password".
#: FBConnectSettings.php:132
msgid " first."
msgstr ""
#. TRANS: Submit button.
#: FBConnectSettings.php:145
msgctxt "BUTTON"
msgid "Disconnect"
msgstr ""
#: FBConnectSettings.php:180
msgid "Couldn't delete link to Facebook."
msgstr ""
#: FBConnectSettings.php:196
msgid "You have disconnected from Facebook."
msgstr ""
#: FBConnectSettings.php:199
msgid "Not sure what you're trying to do."
msgstr ""
#: facebooksettings.php:61
msgid "There was a problem saving your sync preferences!"
msgstr ""
#. TRANS: Confirmation that synchronisation settings have been saved into the system.
#: facebooksettings.php:64
msgid "Sync preferences saved."
msgstr ""
#: facebooksettings.php:87
msgid "Automatically update my Facebook status with my notices."
msgstr ""
#: facebooksettings.php:94
msgid "Send \"@\" replies to Facebook."
msgstr ""
#. TRANS: Submit button to save synchronisation settings.
#: facebooksettings.php:102
msgctxt "BUTTON"
msgid "Save"
msgstr ""
#. TRANS: %s is the application name.
#: facebooksettings.php:111
#, php-format
msgid ""
"If you would like %s to automatically update your Facebook status with your "
"latest notice, you need to give it permission."
msgstr ""
#: facebooksettings.php:124
#, php-format
msgid "Allow %s to update my Facebook status"
msgstr ""
#. TRANS: Page title for synchronisation settings.
#: facebooksettings.php:134
msgid "Sync preferences"
msgstr ""