Merge branch 'gettext' of https://github.com/fabrixxm/friendika into fabrixxm-gettext
This commit is contained in:
commit
9838245c6c
28 changed files with 5978 additions and 1266 deletions
41
boot.php
41
boot.php
|
@ -159,6 +159,11 @@ if (get_magic_quotes_gpc()) {
|
|||
unset($process);
|
||||
}
|
||||
|
||||
/*
|
||||
* translation system
|
||||
*/
|
||||
require_once("include/pgettext.php");
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -601,28 +606,6 @@ function replace_macros($s,$r) {
|
|||
}}
|
||||
|
||||
|
||||
// load string translation table for alternate language
|
||||
|
||||
if(! function_exists('load_translation_table')) {
|
||||
function load_translation_table($lang) {
|
||||
global $a;
|
||||
|
||||
if(file_exists("view/$lang/strings.php"))
|
||||
include("view/$lang/strings.php");
|
||||
}}
|
||||
|
||||
// translate string if translation exists
|
||||
|
||||
if(! function_exists('t')) {
|
||||
function t($s) {
|
||||
|
||||
$a = get_app();
|
||||
|
||||
if(x($a->strings,$s))
|
||||
return $a->strings[$s];
|
||||
return $s;
|
||||
}}
|
||||
|
||||
// curl wrapper. If binary flag is true, return binary
|
||||
// results.
|
||||
|
||||
|
@ -1845,10 +1828,14 @@ if(! function_exists('format_like')) {
|
|||
function format_like($cnt,$arr,$type,$id) {
|
||||
$o = '';
|
||||
if($cnt == 1)
|
||||
$o .= $arr[0] . (($type === 'like') ? t(' likes this.') : t(' doesn\'t like this.')) . EOL ;
|
||||
$o .= (($type === 'like') ? sprintf( t('%s likes this.'), $arr[0]) : sprintf( t('%s doesn\'t like this.'), $arr[0])) . EOL ;
|
||||
else {
|
||||
$o .= '<span class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');" >'
|
||||
. $cnt . ' ' . t('people') . '</span> ' . (($type === 'like') ? t('like this.') : t('don\'t like this.')) . EOL ;
|
||||
$spanatts = 'class="fakelink" onclick="openClose(\'' . $type . 'list-' . $id . '\');"';
|
||||
$o .= (($type === 'like') ?
|
||||
sprintf( t('<span %1$s>%2$d people</span> like this.'), $spanatts, $cnt)
|
||||
:
|
||||
sprintf( t('<span %1$s>%2$d people</span> don\'t like this.'), $spanatts, $cnt) );
|
||||
$o .= EOL ;
|
||||
$total = count($arr);
|
||||
if($total >= MAX_LIKERS)
|
||||
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
|
||||
|
@ -1856,8 +1843,8 @@ function format_like($cnt,$arr,$type,$id) {
|
|||
$arr[count($arr)-1] = t('and') . ' ' . $arr[count($arr)-1];
|
||||
$str = implode(', ', $arr);
|
||||
if($total >= MAX_LIKERS)
|
||||
$str .= t(', and ') . $total - MAX_LIKERS . t(' other people');
|
||||
$str .= (($type === 'like') ? t(' like this.') : t(' don\'t like this.'));
|
||||
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
|
||||
$str = (($type === 'like') ? sprintf( t('%s like this.'), $str) : sprintf( t('%s don\'t like this.'), $str));
|
||||
$o .= "\t" . '<div id="' . $type . 'list-' . $id . '" style="display: none;" >' . $str . '</div>';
|
||||
}
|
||||
return $o;
|
||||
|
|
46
include/pgettext.php
Normal file
46
include/pgettext.php
Normal file
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
/**
|
||||
* translation support
|
||||
*/
|
||||
|
||||
// load string translation table for alternate language
|
||||
|
||||
if(! function_exists('load_translation_table')) {
|
||||
function load_translation_table($lang) {
|
||||
global $a;
|
||||
|
||||
if(file_exists("view/$lang/strings.php"))
|
||||
include("view/$lang/strings.php");
|
||||
}}
|
||||
|
||||
// translate string if translation exists
|
||||
|
||||
if(! function_exists('t')) {
|
||||
function t($s) {
|
||||
|
||||
$a = get_app();
|
||||
|
||||
if(x($a->strings,$s)) {
|
||||
$t = $a->strings[$s];
|
||||
return is_array($t)?$t[0]:$t;
|
||||
}
|
||||
return $s;
|
||||
}}
|
||||
|
||||
if(! function_exists('tt')){
|
||||
function tt($singular, $plural, $count){
|
||||
|
||||
$a = get_app();
|
||||
|
||||
if(x($a->strings,$singular)) {
|
||||
$t = $a->strings[$singular];
|
||||
$k = string_plural_select($count);
|
||||
return is_array($t)?$t[$k]:$t;
|
||||
}
|
||||
|
||||
if ($count!=1){
|
||||
return $plural;
|
||||
} else {
|
||||
return $singular;
|
||||
}
|
||||
}}
|
|
@ -137,7 +137,8 @@ function contacts_content(&$a) {
|
|||
intval(local_user())
|
||||
);
|
||||
if($r) {
|
||||
notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
|
||||
//notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
|
||||
notice( (($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')) . EOL );
|
||||
}
|
||||
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
|
||||
return; // NOTREACHED
|
||||
|
@ -151,7 +152,7 @@ function contacts_content(&$a) {
|
|||
intval(local_user())
|
||||
);
|
||||
if($r) {
|
||||
notice( t('Contact has been ') . (($readonly) ? t('ignored') : t('unignored')) . EOL );
|
||||
notice( (($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')) . EOL );
|
||||
}
|
||||
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
|
||||
return; // NOTREACHED
|
||||
|
@ -364,13 +365,14 @@ function contacts_content(&$a) {
|
|||
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$img_hover' => t('Visit ') . $rr['name'] . t('\'s profile'),
|
||||
'$img_hover' => t('Visit $username\'s profile'),
|
||||
'$edit_hover' => t('Edit contact'),
|
||||
'$id' => $rr['id'],
|
||||
'$alt_text' => $alt_text,
|
||||
'$dir_icon' => $dir_icon,
|
||||
'$thumb' => $rr['thumb'],
|
||||
'$name' => substr($rr['name'],0,20),
|
||||
'$username' => $rr['name'],
|
||||
'$sparkle' => $sparkle,
|
||||
'$url' => $url
|
||||
));
|
||||
|
|
|
@ -491,7 +491,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
dbesc($node));
|
||||
|
||||
if(! count($r)) {
|
||||
$message = t('No user record found for ') . '\'' . $node . '\'';
|
||||
$message = sprintf(t('No user record found for \'%s\' '), $node);
|
||||
xml_status(3,$message); // failure
|
||||
// NOTREACHED
|
||||
}
|
||||
|
@ -645,7 +645,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
'$uid' => $newuid )
|
||||
);
|
||||
|
||||
$res = mail($r[0]['email'], t("Connection accepted at ") . $a->config['sitename'],
|
||||
$res = mail($r[0]['email'], sprintf( t("Connection accepted at %s") , $a->config['sitename']),
|
||||
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
|
||||
if(!$res) {
|
||||
// pointless throwing an error here and confusing the person at the other end of the wire.
|
||||
|
|
|
@ -385,7 +385,7 @@ function dfrn_notify_post(&$a) {
|
|||
'$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
|
||||
));
|
||||
|
||||
$res = mail($importer['email'], $from . t(' commented on an item at ') . $a->config['sitename'],
|
||||
$res = mail($importer['email'], sprintf(t('%s commented on an item at %s'), $from , $a->config['sitename']),
|
||||
$email_tpl, "From: " . t('Administrator') . '@' . $a->get_hostname() );
|
||||
}
|
||||
}
|
||||
|
@ -471,9 +471,8 @@ function dfrn_notify_post(&$a) {
|
|||
'$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
|
||||
));
|
||||
|
||||
$res = mail($importer['email'], $from . t(" commented on an item at ")
|
||||
. $a->config['sitename'],
|
||||
$email_tpl,t("From: Administrator@") . $a->get_hostname() );
|
||||
$res = mail($importer['email'], sprintf( t("%s commented on an item at %s") , $from ,$a->config['sitename']),
|
||||
$email_tpl, "From: ".t("Administrator") . "@". $a->get_hostname() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ function dfrn_poll_init(&$a) {
|
|||
$_SESSION['authenticated'] = 1;
|
||||
$_SESSION['visitor_id'] = $r[0]['id'];
|
||||
$_SESSION['visitor_home'] = $r[0]['url'];
|
||||
notice( $r[0]['username'] . t(' welcomes ') . $r[0]['name'] . EOL);
|
||||
notice( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
|
||||
// Visitors get 1 day session.
|
||||
$session_id = session_id();
|
||||
$expire = time() + 86400;
|
||||
|
@ -389,7 +389,7 @@ function dfrn_poll_content(&$a) {
|
|||
$_SESSION['authenticated'] = 1;
|
||||
$_SESSION['visitor_id'] = $r[0]['id'];
|
||||
$_SESSION['visitor_home'] = $r[0]['url'];
|
||||
notice( $r[0]['username'] . t(' welcomes ') . $r[0]['name'] . EOL);
|
||||
notice( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
|
||||
// Visitors get 1 day session.
|
||||
$session_id = session_id();
|
||||
$expire = time() + 86400;
|
||||
|
|
|
@ -123,9 +123,9 @@ function dfrn_request_post(&$a) {
|
|||
notice( t('Warning: profile location has no profile photo.') . EOL );
|
||||
$invalid = validate_dfrn($parms);
|
||||
if($invalid) {
|
||||
notice( $invalid . t(' required parameter')
|
||||
. (($invalid == 1) ? t(" was ") : t("s were ") )
|
||||
. t("not found at the given location.") . EOL ) ;
|
||||
notice( sprintf( tt("%d required parameter was not found at the given location",
|
||||
"%d required parameters were not found at the given location",
|
||||
$invalid), $invalid) . EOL );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ function dfrn_request_post(&$a) {
|
|||
intval($uid)
|
||||
);
|
||||
if(count($r) > $maxreq) {
|
||||
notice( $a->profile['name'] . t(' has received too many connection requests today.') . EOL);
|
||||
notice( sprintf( t('%s has received too many connection requests today.'), $a->profile['name']) . EOL);
|
||||
notice( t('Spam protection measures have been invoked.') . EOL);
|
||||
notice( t('Friends are advised to please try again in 24 hours.') . EOL);
|
||||
return;
|
||||
|
@ -306,7 +306,7 @@ function dfrn_request_post(&$a) {
|
|||
return;
|
||||
}
|
||||
elseif($ret[0]['rel'] == REL_BUD) {
|
||||
notice( t('Apparently you are already friends with .') . $a->profile['name'] . EOL);
|
||||
notice( sprintf( t('Apparently you are already friends with %s.'), $a->profile['name']) . EOL);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
|
@ -354,9 +354,9 @@ function dfrn_request_post(&$a) {
|
|||
notice( t('Warning: profile location has no profile photo.') . EOL );
|
||||
$invalid = validate_dfrn($parms);
|
||||
if($invalid) {
|
||||
notice( $invalid . t(' required parameter')
|
||||
. (($invalid == 1) ? t(" was ") : t("s were ") )
|
||||
. t("not found at the given location.") . EOL ) ;
|
||||
notice( sprintf( tt("%d required parameter was not found at the given location",
|
||||
"%d required parameters were not found at the given location",
|
||||
$invalid), $invalid) . EOL );
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ function home_content(&$a) {
|
|||
if(x($_SESSION,'theme'))
|
||||
unset($_SESSION['theme']);
|
||||
|
||||
$o .= '<h1>' . ((x($a->config,'sitename')) ? t("Welcome to ").$a->config['sitename'] : "" ) . '</h1>';
|
||||
$o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
|
||||
if(file_exists('home.html'))
|
||||
$o .= file_get_contents('home.html');
|
||||
|
||||
|
|
|
@ -25,21 +25,21 @@ function invite_post(&$a) {
|
|||
$recip = trim($recip);
|
||||
|
||||
if(! valid_email($recip)) {
|
||||
notice( $recip . t(' : ') . t('Not a valid email address.') . EOL);
|
||||
notice( sprintf( t('%s : Not a valid email address.'), $recip) . EOL);
|
||||
continue;
|
||||
}
|
||||
|
||||
$res = mail($recip, t('Please join my network on ') . $a->config['sitename'],
|
||||
$res = mail($recip, sprintf(t('Please join my network on %s'), $a->config['sitename']),
|
||||
$message, "From: " . $a->user['email']);
|
||||
if($res) {
|
||||
$total ++;
|
||||
}
|
||||
else {
|
||||
notice( $recip . t(' : ') . t('Message delivery failed.') . EOL);
|
||||
notice( sprintf( t('%s : Message delivery failed.'), $recip) . EOL);
|
||||
}
|
||||
|
||||
}
|
||||
notice( $total . t(' messages sent.') . EOL);
|
||||
notice( sprintf( tt("%d message sent.", "%d messages sent.", $total) , $total) . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ function invite_content(&$a) {
|
|||
'$invite' => t('Send invitations'),
|
||||
'$addr_text' => t('Enter email addresses, one per line:'),
|
||||
'$msg_text' => t('Your message:'),
|
||||
'$default_message' => t('Please join my social network on ') . $a->config['sitename'] . "\r\n" . "\r\n"
|
||||
'$default_message' => sprintf(t('Please join my social network on %s'), $a->config['sitename']) . "\r\n" . "\r\n"
|
||||
. t('To accept this invitation, please visit:') . "\r\n" . "\r\n" . $a->get_baseurl()
|
||||
. "\r\n" . "\r\n" . t('Once you have registered, please connect with me via my profile page at:')
|
||||
. "\r\n" . "\r\n" . $a->get_baseurl() . '/profile/' . $a->user['nickname'] ,
|
||||
|
|
14
mod/item.php
14
mod/item.php
|
@ -471,8 +471,8 @@ function item_post(&$a) {
|
|||
'$body' => strip_tags(bbcode($datarray['body']))
|
||||
));
|
||||
|
||||
$res = mail($user['email'], $from . t(" commented on your item at ") . $a->config['sitename'],
|
||||
$email_tpl,t("From: Administrator@") . $a->get_hostname() );
|
||||
$res = mail($user['email'], sprintf( t("%s commented on your item at %s") ,$from,$a->config['sitename']),
|
||||
$email_tpl,"From: " . t("Administrator") . "@" . $a->get_hostname() );
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -494,8 +494,8 @@ function item_post(&$a) {
|
|||
'$body' => strip_tags(bbcode($datarray['body']))
|
||||
));
|
||||
|
||||
$res = mail($user['email'], $from . t(" posted on your profile wall at ") . $a->config['sitename'],
|
||||
$email_tpl,t("From: Administrator@") . $a->get_hostname() );
|
||||
$res = mail($user['email'], sprintf( t("%s posted on your profile wall at %s") ,$from, $a->config['sitename']),
|
||||
$email_tpl,"From: " . t("Administrator") . "@" . $a->get_hostname() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -538,13 +538,13 @@ function item_post(&$a) {
|
|||
$addr = trim($recip);
|
||||
if(! strlen($addr))
|
||||
continue;
|
||||
$disclaimer = '<hr />' . t('This message was sent to you by ') . $a->user['username']
|
||||
. t(', a member of the Friendika social network.') . '<br />';
|
||||
$disclaimer = '<hr />' . sprintf(t('This message was sent to you by %s, a member of the Friendika social network.'),$a->user['username'])
|
||||
. '<br />';
|
||||
$disclaimer .= t('You may visit them online at') . ' '
|
||||
. $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '<br />';
|
||||
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . '<br />';
|
||||
|
||||
$subject = '[Friendika]' . ' ' . $a->user['username'] . ' ' . t('posted an update.');
|
||||
$subject = '[Friendika]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
|
||||
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
|
||||
$headers .= 'MIME-Version: 1.0' . "\n";
|
||||
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
|
||||
|
|
12
mod/like.php
12
mod/like.php
|
@ -124,9 +124,9 @@ function like_content(&$a) {
|
|||
</object>
|
||||
EOT;
|
||||
if($verb === 'like')
|
||||
$bodyverb = t('likes');
|
||||
$bodyverb = t('%1$s likes %2$s\'s %3$s');
|
||||
if($verb === 'dislike')
|
||||
$bodyverb = t('doesn\'t like');
|
||||
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
|
||||
|
||||
if(! isset($bodyverb))
|
||||
return;
|
||||
|
@ -147,9 +147,11 @@ EOT;
|
|||
$arr['author-name'] = $contact['name'];
|
||||
$arr['author-link'] = $contact['url'];
|
||||
$arr['author-avatar'] = $contact['thumb'];
|
||||
$arr['body'] = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]' . ' ' . $bodyverb . ' '
|
||||
. '[url=' . $item['author-link'] . ']' . $item['author-name'] . t('\'s') . '[/url]' . ' '
|
||||
. '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]' ;
|
||||
|
||||
$ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
|
||||
$alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
|
||||
$plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]';
|
||||
$arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
|
||||
|
||||
$arr['verb'] = $activity;
|
||||
$arr['object-type'] = $objtype;
|
||||
|
|
|
@ -35,7 +35,7 @@ function lostpass_post(&$a) {
|
|||
'$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password
|
||||
));
|
||||
|
||||
$res = mail($email, t('Password reset requested at ') . $a->config['sitename'],
|
||||
$res = mail($email, sprintf(t('Password reset requested at %s'),$a->config['sitename']),
|
||||
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER[SERVER_NAME]);
|
||||
|
||||
goaway($a->get_baseurl());
|
||||
|
|
|
@ -34,7 +34,7 @@ function manage_post(&$a) {
|
|||
$_SESSION['page_flags'] = $r[0]['page-flags'];
|
||||
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
|
||||
|
||||
notice( t("Welcome back ") . $r[0]['username'] . EOL);
|
||||
notice( sprintf( t("Welcome back %s") , $r[0]['username']) . EOL);
|
||||
$a->user = $r[0];
|
||||
|
||||
if(strlen($a->user['timezone'])) {
|
||||
|
|
|
@ -70,7 +70,7 @@ function openid_content(&$a) {
|
|||
$_SESSION['page_flags'] = $r[0]['page-flags'];
|
||||
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
|
||||
|
||||
notice( t("Welcome back ") . $r[0]['username'] . EOL);
|
||||
notice( sprintf( t("Welcome back "), $r[0]['username']) . EOL);
|
||||
$a->user = $r[0];
|
||||
|
||||
if(strlen($a->user['timezone'])) {
|
||||
|
|
|
@ -58,21 +58,21 @@ function profile_photo_post(&$a) {
|
|||
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, 1);
|
||||
|
||||
if($r === false)
|
||||
notice ( t('Image size reduction [175] failed.') . EOL );
|
||||
notice ( sprintf(t('Image size reduction [%s] failed.'),"175") . EOL );
|
||||
|
||||
$im->scaleImage(80);
|
||||
|
||||
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, 1);
|
||||
|
||||
if($r === false)
|
||||
notice( t('Image size reduction [80] failed.') . EOL );
|
||||
notice( sprintf(t('Image size reduction [%s] failed.'),"80") . EOL );
|
||||
|
||||
$im->scaleImage(48);
|
||||
|
||||
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 6, 1);
|
||||
|
||||
if($r === false)
|
||||
notice( t('Image size reduction [48] failed.') . EOL );
|
||||
notice( sprintf(t('Image size reduction [%s] failed.'),"48") . EOL );
|
||||
|
||||
// Unset the profile photo flag from any other photos I own
|
||||
|
||||
|
@ -106,7 +106,7 @@ function profile_photo_post(&$a) {
|
|||
$maximagesize = get_config('system','maximagesize');
|
||||
|
||||
if(($maximagesize) && ($filesize > $maximagesize)) {
|
||||
notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
|
||||
notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
|
||||
@unlink($src);
|
||||
return;
|
||||
}
|
||||
|
@ -234,7 +234,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
|
|||
$r = $ph->store(local_user(), 0 , $hash, $filename, t('Profile Photos'), 1 );
|
||||
|
||||
if($r === false)
|
||||
notice( t('Image size reduction [640] failed.') . EOL );
|
||||
notice( sprintf(t('Image size reduction [%s] failed.'),"640") . EOL );
|
||||
else
|
||||
$smallest = 1;
|
||||
}
|
||||
|
|
|
@ -307,7 +307,7 @@ function register_post(&$a) {
|
|||
'$password' => $new_password,
|
||||
'$uid' => $newuid ));
|
||||
|
||||
$res = mail($email, t('Registration details for ') . $a->config['sitename'],
|
||||
$res = mail($email, sprintf(t('Registration details for %s'), $a->config['sitename']),
|
||||
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
|
||||
|
||||
|
||||
|
@ -344,7 +344,7 @@ function register_post(&$a) {
|
|||
'$hash' => $hash
|
||||
));
|
||||
|
||||
$res = mail($a->config['admin_email'], t('Registration request at ') . $a->config['sitename'],
|
||||
$res = mail($a->config['admin_email'], sprintf(t('Registration request at %s'), $a->config['sitename']),
|
||||
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
|
||||
|
||||
if($res) {
|
||||
|
|
|
@ -51,7 +51,7 @@ function regmod_content(&$a) {
|
|||
$r = q("DELETE FROM `register` WHERE `hash` = '%s' LIMIT 1",
|
||||
dbesc($register[0]['hash'])
|
||||
);
|
||||
notice( t('Registration revoked for ') . $user[0]['username'] . EOL);
|
||||
notice( sprintf(t('Registration revoked for %s'), $user[0]['username']) . EOL);
|
||||
return;
|
||||
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ function regmod_content(&$a) {
|
|||
'$uid' => $user[0]['uid']
|
||||
));
|
||||
|
||||
$res = mail($user[0]['email'], t('Registration details for '). $a->config['sitename'],
|
||||
$res = mail($user[0]['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
|
||||
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
|
||||
|
||||
if($res) {
|
||||
|
|
|
@ -41,9 +41,10 @@ function viewcontacts_content(&$a) {
|
|||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$id' => $rr['id'],
|
||||
'$alt_text' => t('Visit ') . $rr['name'] . t('\'s profile'),
|
||||
'$alt_text' => t('Visit $username\'s profile'),
|
||||
'$thumb' => $rr['thumb'],
|
||||
'$name' => substr($rr['name'],0,20),
|
||||
'$username' => $rr['name'],
|
||||
'$url' => $rr['url']
|
||||
));
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ function wall_upload_post(&$a) {
|
|||
$maximagesize = get_config('system','maximagesize');
|
||||
|
||||
if(($maximagesize) && ($filesize > $maximagesize)) {
|
||||
notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
|
||||
notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
|
||||
@unlink($src);
|
||||
return;
|
||||
}
|
||||
|
|
72
util/README
72
util/README
|
@ -44,5 +44,77 @@ then relocate the files to the view directory. The files in the top-level view
|
|||
directory are template files which do not require translation.
|
||||
|
||||
|
||||
Placeholders
|
||||
|
||||
Do not translate placeholders in strings! Things like %s, %d, %1$s and $somename
|
||||
are used to add dynamic content to the string.
|
||||
|
||||
%s rappresent a dynamic string, like in "Welcome to %s"
|
||||
%d rappresent a dynamic number, like in "%d new messages"
|
||||
$somename is a variable like in php
|
||||
In %1$s %2$s, the numbers are the position index of multiple dynamic content.
|
||||
You could swap position in string of indexed placeholders.
|
||||
e.g.
|
||||
"%1$s's %2$s" => "John's photo", "John's item"
|
||||
"%2$s di %1$s" => "foto di John", "elemento di John"
|
||||
|
||||
|
||||
Plural
|
||||
|
||||
The tt() function supports plural form. Script extract.php write this in
|
||||
strings.php as an array, one string for every plural form language supports:
|
||||
|
||||
$a->string["%d message sent"] = Array(
|
||||
0 => "%d message sent",
|
||||
1 => "%d messages sent",
|
||||
);
|
||||
|
||||
The function string_plural_select($n) defined in strings.php, return the string
|
||||
index to use, related to the numbers of item (value of $n).
|
||||
|
||||
This is modelled after ngettext function of GNU gettext.
|
||||
More info at http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
|
||||
|
||||
|
||||
Xgettext and .po workflow
|
||||
|
||||
1. Run utils/run_xgettext.sh script (on *unix sistems, with GNU xgettext installed)
|
||||
This script runs xgettext on source tree, extracting strings from t() and tt()
|
||||
functions, and creates a utils/messages.po file.
|
||||
2. copy utils/messages.po to views/<langauage>/messages.po
|
||||
3. open views/<langauage>/messages.po with a text editor and fill in infos in
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
|
||||
(eg:
|
||||
"Last-Translator: Guybrush Threepwood <gb@host.com>"
|
||||
"Language-Team: Pirate Friendika <pirate-friendika-ml@host.com>\n"
|
||||
"Language: pi\n"
|
||||
)
|
||||
|
||||
For the line
|
||||
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||
read GNU gettext manual at
|
||||
http://www.gnu.org/software/hello/manual/gettext/Plural-forms.html
|
||||
|
||||
4. You could then translate the strings in text editor, but I suggest to use one
|
||||
of the many .po editors out there, like QtLinguist
|
||||
|
||||
5. run
|
||||
$ php utils/po2php.php views/<language>/messages.po
|
||||
to create the strings.php file
|
||||
|
||||
When strings are added or modified in source, you could run
|
||||
$ utils/run_xgettext.sh views/<language>/messages.po
|
||||
to extraxt strings from source files and join them with the existing .po file:
|
||||
new strings are added, the existing are not overwritten.
|
||||
|
||||
If you already translated Friendika using strings.php, you could import your old
|
||||
translation to messages.po. Run:
|
||||
$ php utils/php2po.php views/<language>/strings.php
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -10,26 +10,51 @@
|
|||
$str = file_get_contents($file);
|
||||
|
||||
$pat = '| t\(([^\)]*)\)|';
|
||||
$patt = '| tt\(([^\)]*)\)|';
|
||||
|
||||
preg_match_all($pat,$str,$matches);
|
||||
preg_match_all($patt, $str, $matchestt);
|
||||
|
||||
if(! count($matches))
|
||||
continue;
|
||||
|
||||
if(count($matches)){
|
||||
foreach($matches[1] as $match) {
|
||||
if(! in_array($match,$arr))
|
||||
$arr[] = $match;
|
||||
}
|
||||
}
|
||||
if(count($matchestt)){
|
||||
foreach($matchestt[1] as $match) {
|
||||
$matchtkns = preg_split("|[ \t\r\n]*,[ \t\r\n]*|",$match);
|
||||
if (count($matchtkns)==3 && !in_array($matchtkns,$arr)){
|
||||
$arr[] = $matchtkns;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$s = '<?php' . "\n";
|
||||
$s .= '
|
||||
function string_plural_select($n){
|
||||
return ($n != 1);
|
||||
}
|
||||
|
||||
';
|
||||
|
||||
foreach($arr as $a) {
|
||||
if (is_array($a)){
|
||||
if(substr($a[1],0,1) == '$')
|
||||
continue;
|
||||
$s .= '$a->strings[' . $a[0] . "] = array(\n";
|
||||
$s .= "\t0 => ". $a[0]. ",\n";
|
||||
$s .= "\t1 => ". $a[1]. ",\n";
|
||||
$s .= ");\n";
|
||||
} else {
|
||||
if(substr($a,0,1) == '$')
|
||||
continue;
|
||||
|
||||
$s .= '$a->strings[' . $a . '] = '. $a . ';' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
$zones = timezone_identifiers_list();
|
||||
foreach($zones as $zone)
|
||||
|
|
2411
util/messages.po
Normal file
2411
util/messages.po
Normal file
File diff suppressed because it is too large
Load diff
71
util/php2po.php
Normal file
71
util/php2po.php
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
if(! class_exists('App')) {
|
||||
class TmpA {
|
||||
public $strings = Array();
|
||||
}
|
||||
$a = new TmpA();
|
||||
}
|
||||
|
||||
if ($argc!=2) {
|
||||
print "Usage: ".$argv[0]." <strings.php>\n\n";
|
||||
return;
|
||||
}
|
||||
|
||||
$phpfile = $argv[1];
|
||||
$pofile = dirname($phpfile)."/messages.po";
|
||||
|
||||
if (!file_exists($phpfile)){
|
||||
print "Unable to find '$phpfile'\n";
|
||||
return;
|
||||
}
|
||||
|
||||
include_once($phpfile);
|
||||
|
||||
print "Out to '$pofile'\n";
|
||||
|
||||
$out = "";
|
||||
$infile = file($pofile);
|
||||
$k="";
|
||||
$ink = False;
|
||||
foreach ($infile as $l) {
|
||||
|
||||
if ($k!="" && substr($l,0,7)=="msgstr "){
|
||||
$ink = False;
|
||||
$v = '""';
|
||||
//echo "DBG: k:'$k'\n";
|
||||
if (isset($a->strings[$k])) {
|
||||
$v= '"'.$a->strings[$k].'"';
|
||||
//echo "DBG\n";
|
||||
//var_dump($k, $v, $a->strings[$k], $v);
|
||||
//echo "/DBG\n";
|
||||
|
||||
}
|
||||
//echo "DBG: v:'$v'\n";
|
||||
$l = "msgstr ".$v."\n";
|
||||
}
|
||||
|
||||
if (substr($l,0,6)=="msgid_" || substr($l,0,7)=="msgstr[" )$ink = False;;
|
||||
|
||||
if ($ink) {
|
||||
$k .= trim($l,"\"\r\n");
|
||||
$k = str_replace('\"','"',$k);
|
||||
}
|
||||
|
||||
if (substr($l,0,6)=="msgid "){
|
||||
$arr=False;
|
||||
$k = str_replace("msgid ","",$l);
|
||||
if ($k != '""' ) {
|
||||
$k = trim($k,"\"\r\n");
|
||||
$k = str_replace('\"','"',$k);
|
||||
} else {
|
||||
$k = "";
|
||||
}
|
||||
$ink = True;
|
||||
}
|
||||
|
||||
$out .= $l;
|
||||
}
|
||||
//echo $out;
|
||||
file_put_contents($pofile, $out);
|
||||
?>
|
103
util/po2php.php
Normal file
103
util/po2php.php
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
|
||||
|
||||
function po2php_run($argv, $argc) {
|
||||
|
||||
if ($argc!=2) {
|
||||
print "Usage: ".$argv[0]." <file.po>\n\n";
|
||||
return;
|
||||
}
|
||||
|
||||
$pofile = $argv[1];
|
||||
$outfile = dirname($pofile)."/strings.php";
|
||||
|
||||
if (!file_exists($pofile)){
|
||||
print "Unable to find '$pofile'\n";
|
||||
return;
|
||||
}
|
||||
|
||||
print "Out to '$outfile'\n";
|
||||
|
||||
$out="<?php\n\n";
|
||||
|
||||
$infile = file($pofile);
|
||||
$k="";
|
||||
$v="";
|
||||
$arr = False;
|
||||
$ink = False;
|
||||
$inv = False;
|
||||
foreach ($infile as $l) {
|
||||
$len = strlen($l);
|
||||
if ($l[0]=="#") $l="";
|
||||
if (substr($l,0,15)=='"Plural-Forms: '){
|
||||
$match=Array();
|
||||
preg_match("|nplurals=([0-9]*); plural=(.*);|", $l, $match);
|
||||
$cond = str_replace('n','$n',$match[2]);
|
||||
$out .= 'function string_plural_select($n){'."\n";
|
||||
$out .= ' return '.$cond.';'."\n";
|
||||
$out .= '}'."\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ($k!="" && substr($l,0,7)=="msgstr "){
|
||||
if ($ink) { $ink = False; $out .= '$a->strings["'.$k.'"] = '; }
|
||||
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||
|
||||
$v = substr($l,8,$len-10);
|
||||
$inv = True;
|
||||
//$out .= $v;
|
||||
}
|
||||
if ($k!="" && substr($l,0,7)=="msgstr["){
|
||||
if ($ink) { $ink = False; $out .= '$a->strings["'.$k.'"] = '; }
|
||||
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||
|
||||
if (!$arr) {
|
||||
$arr=True;
|
||||
$out .= "array(\n";
|
||||
}
|
||||
$match=Array();
|
||||
preg_match("|\[([0-9]*)\] (.*)|", $l, $match);
|
||||
$out .= "\t". $match[1]." => ". $match[2] .",\n";
|
||||
}
|
||||
|
||||
if (substr($l,0,6)=="msgid_") { $ink = False; $out .= '$a->strings["'.$k.'"] = '; };
|
||||
|
||||
|
||||
if ($ink) {
|
||||
$k .= trim($l,"\"\r\n");
|
||||
//$out .= '$a->strings['.$k.'] = ';
|
||||
}
|
||||
|
||||
if (substr($l,0,6)=="msgid "){
|
||||
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||
if ($k!="") $out .= $arr?");\n":";\n";
|
||||
$arr=False;
|
||||
$k = str_replace("msgid ","",$l);
|
||||
if ($k != '""' ) {
|
||||
$k = trim($k,"\"\r\n");
|
||||
} else {
|
||||
$k = "";
|
||||
}
|
||||
$ink = True;
|
||||
}
|
||||
|
||||
if ($inv && substr($l,0,6)!="msgstr") {
|
||||
$v .= trim($l,"\"\r\n");
|
||||
//$out .= '$a->strings['.$k.'] = ';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||
if ($k!="") $out .= $arr?");\n":";\n";
|
||||
|
||||
file_put_contents($outfile, $out);
|
||||
|
||||
}
|
||||
|
||||
if (array_search(__file__,get_included_files())===0){
|
||||
po2php_run($argv,$argc);
|
||||
}
|
36
util/run_xgettext.sh
Executable file
36
util/run_xgettext.sh
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
FULLPATH=$(dirname $(readlink -f "$0"))
|
||||
cd "$FULLPATH/../view/en/"
|
||||
|
||||
F9KVERSION=$(sed -n "s/.*'FRIENDIKA_VERSION'.*'\([0-9.]*\)'.*/\1/p" ../../boot.php);
|
||||
|
||||
echo "Friendika version $F9KVERSION"
|
||||
|
||||
OPTS=
|
||||
OUTFILE="$FULLPATH/messages.po"
|
||||
if [ "" != "$1" ]
|
||||
then
|
||||
OUTFILE="$(readlink -f ${FULLPATH}/$1)"
|
||||
if [ -e "$OUTFILE" ]
|
||||
then
|
||||
echo "join extracted strings"
|
||||
OPTS="-j"
|
||||
fi
|
||||
fi
|
||||
|
||||
KEYWORDS="-k -kt -ktt:1,2"
|
||||
|
||||
echo "extract strings to $OUTFILE.."
|
||||
find ../../ -name "*.php" | xargs xgettext $KEYWORDS $OPTS -o "$OUTFILE" --from-code=UTF-8
|
||||
|
||||
echo "setup base info.."
|
||||
sed -i "s/SOME DESCRIPTIVE TITLE./FRIENDIKA Distribuited Social Network/g" "$OUTFILE"
|
||||
sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2010, 2011 Mike Macgirvin/g" "$OUTFILE"
|
||||
sed -i "s/FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./Mike Macgirvin, 2010/g" "$OUTFILE"
|
||||
sed -i "s/PACKAGE VERSION/$F9KVERSION/g" "$OUTFILE"
|
||||
sed -i "s/PACKAGE/Friendika/g" "$OUTFILE"
|
||||
sed -i "s/CHARSET/UTF-8/g" "$OUTFILE"
|
||||
|
||||
|
||||
echo "done."
|
139
util/strings.php
139
util/strings.php
|
@ -1,4 +1,9 @@
|
|||
<?php
|
||||
|
||||
function string_plural_select($n){
|
||||
return ($n != 1);
|
||||
}
|
||||
|
||||
$a->strings['Not Found'] = 'Not Found';
|
||||
$a->strings['Page not found.' ] = 'Page not found.' ;
|
||||
$a->strings['Permission denied'] = 'Permission denied';
|
||||
|
@ -61,30 +66,6 @@ $a->strings['Birthdays this week:'] = 'Birthdays this week:';
|
|||
$a->strings["\x28Adjusted for local time\x29"] = "\x28Adjusted for local time\x29";
|
||||
$a->strings['[today]'] = '[today]';
|
||||
$a->strings['link to source'] = 'link to source';
|
||||
$a->strings['No recipient selected.'] = 'No recipient selected.';
|
||||
$a->strings['[no subject]'] = '[no subject]';
|
||||
$a->strings['Unable to locate contact information.'] = 'Unable to locate contact information.';
|
||||
$a->strings['Wall Photos'] = 'Wall Photos';
|
||||
$a->strings['Message sent.'] = 'Message sent.';
|
||||
$a->strings['Message could not be sent.'] = 'Message could not be sent.';
|
||||
$a->strings['Messages'] = 'Messages';
|
||||
$a->strings['Inbox'] = 'Inbox';
|
||||
$a->strings['Outbox'] = 'Outbox';
|
||||
$a->strings['New Message'] = 'New Message';
|
||||
$a->strings['Message deleted.'] = 'Message deleted.';
|
||||
$a->strings['Conversation removed.'] = 'Conversation removed.';
|
||||
$a->strings['Send Private Message'] = 'Send Private Message';
|
||||
$a->strings['To:'] = 'To:';
|
||||
$a->strings['Subject:'] = 'Subject:';
|
||||
$a->strings['Your message:'] = 'Your message:';
|
||||
$a->strings['Upload photo'] = 'Upload photo';
|
||||
$a->strings['Insert web link'] = 'Insert web link';
|
||||
$a->strings['Please wait'] = 'Please wait';
|
||||
$a->strings['No messages.'] = 'No messages.';
|
||||
$a->strings['Delete conversation'] = 'Delete conversation';
|
||||
$a->strings['Message not available.'] = 'Message not available.';
|
||||
$a->strings['Delete message'] = 'Delete message';
|
||||
$a->strings['Send Reply'] = 'Send Reply';
|
||||
$a->strings['Applications'] = 'Applications';
|
||||
$a->strings["Invite Friends"] = "Invite Friends";
|
||||
$a->strings['Connect/Follow'] = 'Connect/Follow';
|
||||
|
@ -97,8 +78,10 @@ $a->strings['Failed to update contact record.'] = 'Failed to update contact reco
|
|||
$a->strings['Contact has been '] = 'Contact has been ';
|
||||
$a->strings['blocked'] = 'blocked';
|
||||
$a->strings['unblocked'] = 'unblocked';
|
||||
$a->strings['ignored'] = 'ignored';
|
||||
$a->strings['unignored'] = 'unignored';
|
||||
$a->strings['Contact has been blocked'] = 'Contact has been blocked';
|
||||
$a->strings['Contact has been unblocked'] = 'Contact has been unblocked';
|
||||
$a->strings['Contact has been ignored'] = 'Contact has been ignored';
|
||||
$a->strings['Contact has been unignored'] = 'Contact has been unignored';
|
||||
$a->strings['stopped following'] = 'stopped following';
|
||||
$a->strings['Contact has been removed.'] = 'Contact has been removed.';
|
||||
$a->strings['Contact not found.'] = 'Contact not found.';
|
||||
|
@ -126,8 +109,7 @@ $a->strings['Show Blocked Connections'] = 'Show Blocked Connections';
|
|||
$a->strings['Hide Blocked Connections'] = 'Hide Blocked Connections';
|
||||
$a->strings['Finding: '] = 'Finding: ';
|
||||
$a->strings['Find'] = 'Find';
|
||||
$a->strings['Visit '] = 'Visit ';
|
||||
$a->strings['\'s profile'] = '\'s profile';
|
||||
$a->strings['Visit $username\'s profile'] = 'Visit $username\'s profile';
|
||||
$a->strings['Edit contact'] = 'Edit contact';
|
||||
$a->strings['Profile not found.'] = 'Profile not found.';
|
||||
$a->strings['Response from remote site was not understood.'] = 'Response from remote site was not understood.';
|
||||
|
@ -138,43 +120,38 @@ $a->strings["Temporary failure. Please wait and try again."] = "Temporary failur
|
|||
$a->strings["Introduction failed or was revoked."] = "Introduction failed or was revoked.";
|
||||
$a->strings['Unable to set contact photo.'] = 'Unable to set contact photo.';
|
||||
$a->strings['is now friends with'] = 'is now friends with';
|
||||
$a->strings['No user record found for '] = 'No user record found for ';
|
||||
$a->strings['Our site encryption key is apparently messed up.'] = 'Our site encryption key is apparently messed up.';
|
||||
$a->strings['Empty site URL was provided or URL could not be decrypted by us.'] = 'Empty site URL was provided or URL could not be decrypted by us.';
|
||||
$a->strings['Contact record was not found for you on our site.'] = 'Contact record was not found for you on our site.';
|
||||
$a->strings['The ID provided by your system is a duplicate on our system. It should work if you try again.'] = 'The ID provided by your system is a duplicate on our system. It should work if you try again.';
|
||||
$a->strings['Unable to set your contact credentials on our system.'] = 'Unable to set your contact credentials on our system.';
|
||||
$a->strings['Unable to update your contact profile details on our system'] = 'Unable to update your contact profile details on our system';
|
||||
$a->strings["Connection accepted at "] = "Connection accepted at ";
|
||||
$a->strings['Administrator'] = 'Administrator';
|
||||
$a->strings['noreply'] = 'noreply';
|
||||
$a->strings[' commented on an item at '] = ' commented on an item at ';
|
||||
$a->strings[" commented on an item at "] = " commented on an item at ";
|
||||
$a->strings[' welcomes '] = ' welcomes ';
|
||||
$a->strings["%s commented on an item at %s"] = "%s commented on an item at %s";
|
||||
$a->strings["From: Administrator@"] = "From: Administrator@";
|
||||
$a->strings['%s welcomes %s'] = '%s welcomes %s';
|
||||
$a->strings["This introduction has already been accepted."] = "This introduction has already been accepted.";
|
||||
$a->strings['Profile location is not valid or does not contain profile information.'] = 'Profile location is not valid or does not contain profile information.';
|
||||
$a->strings['Warning: profile location has no identifiable owner name.'] = 'Warning: profile location has no identifiable owner name.';
|
||||
$a->strings['Warning: profile location has no profile photo.'] = 'Warning: profile location has no profile photo.';
|
||||
$a->strings[' required parameter'] = ' required parameter';
|
||||
$a->strings[" was "] = " was ";
|
||||
$a->strings["s were "] = "s were ";
|
||||
$a->strings["not found at the given location."] = "not found at the given location.";
|
||||
$a->strings["Introduction complete."] = "Introduction complete.";
|
||||
$a->strings['Unrecoverable protocol error.'] = 'Unrecoverable protocol error.';
|
||||
$a->strings['Profile unavailable.'] = 'Profile unavailable.';
|
||||
$a->strings[' has received too many connection requests today.'] = ' has received too many connection requests today.';
|
||||
$a->strings['%s has received too many connection requests today.'] = '%s has received too many connection requests today.';
|
||||
$a->strings['Spam protection measures have been invoked.'] = 'Spam protection measures have been invoked.';
|
||||
$a->strings['Friends are advised to please try again in 24 hours.'] = 'Friends are advised to please try again in 24 hours.';
|
||||
$a->strings["Invalid locator"] = "Invalid locator";
|
||||
$a->strings["Unable to resolve your name at the provided location."] = "Unable to resolve your name at the provided location.";
|
||||
$a->strings['You have already introduced yourself here.'] = 'You have already introduced yourself here.';
|
||||
$a->strings['Apparently you are already friends with .'] = 'Apparently you are already friends with .';
|
||||
$a->strings['Apparently you are already friends with %s.'] = 'Apparently you are already friends with %s.';
|
||||
$a->strings['Invalid profile URL.'] = 'Invalid profile URL.';
|
||||
$a->strings['Disallowed profile URL.'] = 'Disallowed profile URL.';
|
||||
$a->strings['Your introduction has been sent.'] = 'Your introduction has been sent.';
|
||||
$a->strings["Please login to confirm introduction."] = "Please login to confirm introduction.";
|
||||
$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Incorrect identity currently logged in. Please login to <strong>this</strong> profile.";
|
||||
$a->strings['[Name Withheld]'] = '[Name Withheld]';
|
||||
$a->strings["Introduction received at "] = "Introduction received at ";
|
||||
$a->strings['Friend/Connection Request'] = 'Friend/Connection Request';
|
||||
$a->strings['Please answer the following:'] = 'Please answer the following:';
|
||||
$a->strings['Does $name know you?'] = 'Does $name know you?';
|
||||
|
@ -189,11 +166,16 @@ $a->strings["Public \x28insecure\x29 network"] = "Public \x28insecure\x29 networ
|
|||
$a->strings['Your profile address:'] = 'Your profile address:';
|
||||
$a->strings['Submit Request'] = 'Submit Request';
|
||||
$a->strings['Cancel'] = 'Cancel';
|
||||
$a->strings["%d required parameter was not found at the given location"] = array(
|
||||
0 => "%d required parameter was not found at the given location",
|
||||
1 => "%d required parameters were not found at the given location",
|
||||
);
|
||||
$a->strings['Global Directory'] = 'Global Directory';
|
||||
$a->strings['Item not found.'] = 'Item not found.';
|
||||
$a->strings['Private Message'] = 'Private Message';
|
||||
$a->strings["I like this \x28toggle\x29"] = "I like this \x28toggle\x29";
|
||||
$a->strings["I don't like this \x28toggle\x29"] = "I don't like this \x28toggle\x29";
|
||||
$a->strings['Please wait'] = 'Please wait';
|
||||
$a->strings['This is you'] = 'This is you';
|
||||
$a->strings['Delete'] = 'Delete';
|
||||
$a->strings['View $name\'s profile'] = 'View $name\'s profile';
|
||||
|
@ -203,8 +185,6 @@ $a->strings['Wall-to-Wall'] = 'Wall-to-Wall';
|
|||
$a->strings['via Wall-To-Wall:'] = 'via Wall-To-Wall:';
|
||||
$a->strings['Item has been removed.'] = 'Item has been removed.';
|
||||
$a->strings['Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.'] = 'Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.';
|
||||
$a->strings['CC: email addresses'] = 'CC: email addresses';
|
||||
$a->strings['Example: bob@example.com, mary@example.com'] = 'Example: bob@example.com, mary@example.com';
|
||||
$a->strings['The profile address specified does not provide adequate information.'] = 'The profile address specified does not provide adequate information.';
|
||||
$a->strings['Limited profile. This person will be unable to receive direct/personal notifications from you.'] = 'Limited profile. This person will be unable to receive direct/personal notifications from you.';
|
||||
$a->strings['Unable to retrieve contact information.'] = 'Unable to retrieve contact information.';
|
||||
|
@ -216,7 +196,7 @@ $a->strings['Group name changed.'] = 'Group name changed.';
|
|||
$a->strings['Membership list updated.'] = 'Membership list updated.';
|
||||
$a->strings['Group removed.'] = 'Group removed.';
|
||||
$a->strings['Unable to remove group.'] = 'Unable to remove group.';
|
||||
$a->strings["Welcome to "] = "Welcome to ";
|
||||
$a->strings["Welcome to %s"] = "Welcome to %s";
|
||||
$a->strings['Could not create/connect to database.'] = 'Could not create/connect to database.';
|
||||
$a->strings['Connected to database.'] = 'Connected to database.';
|
||||
$a->strings['Database import succeeded.'] = 'Database import succeeded.';
|
||||
|
@ -243,38 +223,60 @@ $a->strings['Please check with your site documentation or support people to see
|
|||
$a->strings['If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.'] = 'If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.';
|
||||
$a->strings['The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.'] = 'The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.';
|
||||
$a->strings['Errors encountered creating database tables.'] = 'Errors encountered creating database tables.';
|
||||
$a->strings[' : '] = ' : ';
|
||||
$a->strings['Not a valid email address.'] = 'Not a valid email address.';
|
||||
$a->strings['Please join my network on '] = 'Please join my network on ';
|
||||
$a->strings['Message delivery failed.'] = 'Message delivery failed.';
|
||||
$a->strings[' messages sent.'] = ' messages sent.';
|
||||
$a->strings['%s : Not a valid email address.'] = '%s : Not a valid email address.';
|
||||
$a->strings['%s : Message delivery failed.'] = '%s : Message delivery failed.';
|
||||
$a->strings['Send invitations'] = 'Send invitations';
|
||||
$a->strings['Enter email addresses, one per line:'] = 'Enter email addresses, one per line:';
|
||||
$a->strings['Please join my social network on '] = 'Please join my social network on ';
|
||||
$a->strings['Your message:'] = 'Your message:';
|
||||
$a->strings['To accept this invitation, please visit:'] = 'To accept this invitation, please visit:';
|
||||
$a->strings['Once you have registered, please connect with me via my profile page at:'] = 'Once you have registered, please connect with me via my profile page at:';
|
||||
$a->strings["%d message sent."] = array(
|
||||
0 => "%d message sent.",
|
||||
1 => "%d messages sent.",
|
||||
);
|
||||
$a->strings['Unable to locate original post.'] = 'Unable to locate original post.';
|
||||
$a->strings['Empty post discarded.'] = 'Empty post discarded.';
|
||||
$a->strings[" commented on your item at "] = " commented on your item at ";
|
||||
$a->strings[" posted on your profile wall at "] = " posted on your profile wall at ";
|
||||
$a->strings['Wall Photos'] = 'Wall Photos';
|
||||
$a->strings["%s commented on your item at %s"] = "%s commented on your item at %s";
|
||||
$a->strings["Administrator"] = "Administrator";
|
||||
$a->strings["%s posted on your profile wall at %s"] = "%s posted on your profile wall at %s";
|
||||
$a->strings["Administrator@"] = "Administrator@";
|
||||
$a->strings['System error. Post not saved.'] = 'System error. Post not saved.';
|
||||
$a->strings['This message was sent to you by '] = 'This message was sent to you by ';
|
||||
$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.';
|
||||
$a->strings['You may visit them online at'] = 'You may visit them online at';
|
||||
$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.';
|
||||
$a->strings['posted an update.'] = 'posted an update.';
|
||||
$a->strings['%s posted an update.'] = '%s posted an update.';
|
||||
$a->strings['photo'] = 'photo';
|
||||
$a->strings['status'] = 'status';
|
||||
$a->strings['likes'] = 'likes';
|
||||
$a->strings['doesn\'t like'] = 'doesn\'t like';
|
||||
$a->strings['\'s'] = '\'s';
|
||||
$a->strings["%s's"] = "%s's";
|
||||
$a->strings['Remote privacy information not available.'] = 'Remote privacy information not available.';
|
||||
$a->strings['Visible to:'] = 'Visible to:';
|
||||
$a->strings['Password reset requested at '] = 'Password reset requested at ';
|
||||
$a->strings["Welcome back "] = "Welcome back ";
|
||||
$a->strings["Welcome back %s"] = "Welcome back %s";
|
||||
$a->strings['Manage Identities and/or Pages'] = 'Manage Identities and/or Pages';
|
||||
$a->strings["\x28Toggle between different identities or community/group pages which share your account details.\x29"] = "\x28Toggle between different identities or community/group pages which share your account details.\x29";
|
||||
$a->strings['Select an identity to manage: '] = 'Select an identity to manage: ';
|
||||
$a->strings['No recipient selected.'] = 'No recipient selected.';
|
||||
$a->strings['[no subject]'] = '[no subject]';
|
||||
$a->strings['Unable to locate contact information.'] = 'Unable to locate contact information.';
|
||||
$a->strings['Message sent.'] = 'Message sent.';
|
||||
$a->strings['Message could not be sent.'] = 'Message could not be sent.';
|
||||
$a->strings['Messages'] = 'Messages';
|
||||
$a->strings['Inbox'] = 'Inbox';
|
||||
$a->strings['Outbox'] = 'Outbox';
|
||||
$a->strings['New Message'] = 'New Message';
|
||||
$a->strings['Message deleted.'] = 'Message deleted.';
|
||||
$a->strings['Conversation removed.'] = 'Conversation removed.';
|
||||
$a->strings['Send Private Message'] = 'Send Private Message';
|
||||
$a->strings['To:'] = 'To:';
|
||||
$a->strings['Subject:'] = 'Subject:';
|
||||
$a->strings['Upload photo'] = 'Upload photo';
|
||||
$a->strings['Insert web link'] = 'Insert web link';
|
||||
$a->strings['No messages.'] = 'No messages.';
|
||||
$a->strings['Delete conversation'] = 'Delete conversation';
|
||||
$a->strings['Message not available.'] = 'Message not available.';
|
||||
$a->strings['Delete message'] = 'Delete message';
|
||||
$a->strings['Send Reply'] = 'Send Reply';
|
||||
$a->strings['Normal View'] = 'Normal View';
|
||||
$a->strings['New Item View'] = 'New Item View';
|
||||
$a->strings['Share'] = 'Share';
|
||||
|
@ -282,6 +284,8 @@ $a->strings['Insert YouTube video'] = 'Insert YouTube video';
|
|||
$a->strings['Set your location'] = 'Set your location';
|
||||
$a->strings['Clear browser location'] = 'Clear browser location';
|
||||
$a->strings['Permission settings'] = 'Permission settings';
|
||||
$a->strings['CC: email addresses'] = 'CC: email addresses';
|
||||
$a->strings['Example: bob@example.com, mary@example.com'] = 'Example: bob@example.com, mary@example.com';
|
||||
$a->strings['No such group'] = 'No such group';
|
||||
$a->strings['Group is empty'] = 'Group is empty';
|
||||
$a->strings['Group: '] = 'Group: ';
|
||||
|
@ -304,6 +308,7 @@ $a->strings['Approve'] = 'Approve';
|
|||
$a->strings['No notifications.'] = 'No notifications.';
|
||||
$a->strings['No registrations.'] = 'No registrations.';
|
||||
$a->strings['Login failed.'] = 'Login failed.';
|
||||
$a->strings["Welcome back "] = "Welcome back ";
|
||||
$a->strings['Photo Albums'] = 'Photo Albums';
|
||||
$a->strings['Contact Photos'] = 'Contact Photos';
|
||||
$a->strings['Contact information unavailable'] = 'Contact information unavailable';
|
||||
|
@ -336,12 +341,8 @@ $a->strings['Recent Photos'] = 'Recent Photos';
|
|||
$a->strings['Upload New Photos'] = 'Upload New Photos';
|
||||
$a->strings['View Album'] = 'View Album';
|
||||
$a->strings['Image uploaded but image cropping failed.'] = 'Image uploaded but image cropping failed.';
|
||||
$a->strings['Image size reduction [175] failed.'] = 'Image size reduction [175] failed.';
|
||||
$a->strings['Image size reduction [80] failed.'] = 'Image size reduction [80] failed.';
|
||||
$a->strings['Image size reduction [48] failed.'] = 'Image size reduction [48] failed.';
|
||||
$a->strings['Unable to process image'] = 'Unable to process image';
|
||||
$a->strings['Image uploaded successfully.'] = 'Image uploaded successfully.';
|
||||
$a->strings['Image size reduction [640] failed.'] = 'Image size reduction [640] failed.';
|
||||
$a->strings['Profile Name is required.'] = 'Profile Name is required.';
|
||||
$a->strings['Profile updated.'] = 'Profile updated.';
|
||||
$a->strings['Profile deleted.'] = 'Profile deleted.';
|
||||
|
@ -357,17 +358,16 @@ $a->strings['Please use a shorter name.'] = 'Please use a shorter name.';
|
|||
$a->strings['Name too short.'] = 'Name too short.';
|
||||
$a->strings["That doesn\'t appear to be your full \x28First Last\x29 name."] = "That doesn\'t appear to be your full \x28First Last\x29 name.";
|
||||
$a->strings['Your email domain is not among those allowed on this site.'] = 'Your email domain is not among those allowed on this site.';
|
||||
$a->strings['Not a valid email address.'] = 'Not a valid email address.';
|
||||
$a->strings['Cannot use that email.'] = 'Cannot use that email.';
|
||||
$a->strings['Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.'] = 'Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.';
|
||||
$a->strings['Nickname is already registered. Please choose another.'] = 'Nickname is already registered. Please choose another.';
|
||||
$a->strings['SERIOUS ERROR: Generation of security keys failed.'] = 'SERIOUS ERROR: Generation of security keys failed.';
|
||||
$a->strings['An error occurred during registration. Please try again.'] = 'An error occurred during registration. Please try again.';
|
||||
$a->strings['An error occurred creating your default profile. Please try again.'] = 'An error occurred creating your default profile. Please try again.';
|
||||
$a->strings['Registration details for '] = 'Registration details for ';
|
||||
$a->strings['Registration successful. Please check your email for further instructions.'] = 'Registration successful. Please check your email for further instructions.';
|
||||
$a->strings['Failed to send email message. Here is the message that failed.'] = 'Failed to send email message. Here is the message that failed.';
|
||||
$a->strings['Your registration can not be processed.'] = 'Your registration can not be processed.';
|
||||
$a->strings['Registration request at '] = 'Registration request at ';
|
||||
$a->strings['Your registration is pending approval by the site owner.'] = 'Your registration is pending approval by the site owner.';
|
||||
$a->strings["You may \x28optionally\x29 fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "You may \x28optionally\x29 fill in this form via OpenID by supplying your OpenID and clicking 'Register'.";
|
||||
$a->strings['If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.'] = 'If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.';
|
||||
|
@ -380,7 +380,6 @@ $a->strings['Your Email Address: '] = 'Your Email Address: ';
|
|||
$a->strings['Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.'] = 'Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.';
|
||||
$a->strings['Choose a nickname: '] = 'Choose a nickname: ';
|
||||
$a->strings['Please login.'] = 'Please login.';
|
||||
$a->strings['Registration revoked for '] = 'Registration revoked for ';
|
||||
$a->strings['Account approved.'] = 'Account approved.';
|
||||
$a->strings['Remove My Account'] = 'Remove My Account';
|
||||
$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'This will completely remove your account. Once this has been done it is not recoverable.';
|
||||
|
@ -509,6 +508,7 @@ $a->strings['Facebook API key is missing.'] = 'Facebook API key is missing.';
|
|||
$a->strings['Facebook Connect'] = 'Facebook Connect';
|
||||
$a->strings['Install Facebook post connector'] = 'Install Facebook post connector';
|
||||
$a->strings['Remove Facebook post connector'] = 'Remove Facebook post connector';
|
||||
$a->strings['Post to Facebook by default'] = 'Post to Facebook by default';
|
||||
$a->strings['Facebook'] = 'Facebook';
|
||||
$a->strings['Facebook Connector Settings'] = 'Facebook Connector Settings';
|
||||
$a->strings['Post to Facebook'] = 'Post to Facebook';
|
||||
|
@ -623,9 +623,7 @@ $a->strings['America/Argentina/Jujuy'] = 'America/Argentina/Jujuy';
|
|||
$a->strings['America/Argentina/La_Rioja'] = 'America/Argentina/La_Rioja';
|
||||
$a->strings['America/Argentina/Mendoza'] = 'America/Argentina/Mendoza';
|
||||
$a->strings['America/Argentina/Rio_Gallegos'] = 'America/Argentina/Rio_Gallegos';
|
||||
$a->strings['America/Argentina/Salta'] = 'America/Argentina/Salta';
|
||||
$a->strings['America/Argentina/San_Juan'] = 'America/Argentina/San_Juan';
|
||||
$a->strings['America/Argentina/San_Luis'] = 'America/Argentina/San_Luis';
|
||||
$a->strings['America/Argentina/Tucuman'] = 'America/Argentina/Tucuman';
|
||||
$a->strings['America/Argentina/Ushuaia'] = 'America/Argentina/Ushuaia';
|
||||
$a->strings['America/Aruba'] = 'America/Aruba';
|
||||
|
@ -703,9 +701,7 @@ $a->strings['America/Louisville'] = 'America/Louisville';
|
|||
$a->strings['America/Maceio'] = 'America/Maceio';
|
||||
$a->strings['America/Managua'] = 'America/Managua';
|
||||
$a->strings['America/Manaus'] = 'America/Manaus';
|
||||
$a->strings['America/Marigot'] = 'America/Marigot';
|
||||
$a->strings['America/Martinique'] = 'America/Martinique';
|
||||
$a->strings['America/Matamoros'] = 'America/Matamoros';
|
||||
$a->strings['America/Mazatlan'] = 'America/Mazatlan';
|
||||
$a->strings['America/Mendoza'] = 'America/Mendoza';
|
||||
$a->strings['America/Menominee'] = 'America/Menominee';
|
||||
|
@ -724,7 +720,6 @@ $a->strings['America/Nome'] = 'America/Nome';
|
|||
$a->strings['America/Noronha'] = 'America/Noronha';
|
||||
$a->strings['America/North_Dakota/Center'] = 'America/North_Dakota/Center';
|
||||
$a->strings['America/North_Dakota/New_Salem'] = 'America/North_Dakota/New_Salem';
|
||||
$a->strings['America/Ojinaga'] = 'America/Ojinaga';
|
||||
$a->strings['America/Panama'] = 'America/Panama';
|
||||
$a->strings['America/Pangnirtung'] = 'America/Pangnirtung';
|
||||
$a->strings['America/Paramaribo'] = 'America/Paramaribo';
|
||||
|
@ -741,14 +736,11 @@ $a->strings['America/Regina'] = 'America/Regina';
|
|||
$a->strings['America/Resolute'] = 'America/Resolute';
|
||||
$a->strings['America/Rio_Branco'] = 'America/Rio_Branco';
|
||||
$a->strings['America/Rosario'] = 'America/Rosario';
|
||||
$a->strings['America/Santa_Isabel'] = 'America/Santa_Isabel';
|
||||
$a->strings['America/Santarem'] = 'America/Santarem';
|
||||
$a->strings['America/Santiago'] = 'America/Santiago';
|
||||
$a->strings['America/Santo_Domingo'] = 'America/Santo_Domingo';
|
||||
$a->strings['America/Sao_Paulo'] = 'America/Sao_Paulo';
|
||||
$a->strings['America/Scoresbysund'] = 'America/Scoresbysund';
|
||||
$a->strings['America/Shiprock'] = 'America/Shiprock';
|
||||
$a->strings['America/St_Barthelemy'] = 'America/St_Barthelemy';
|
||||
$a->strings['America/St_Johns'] = 'America/St_Johns';
|
||||
$a->strings['America/St_Kitts'] = 'America/St_Kitts';
|
||||
$a->strings['America/St_Lucia'] = 'America/St_Lucia';
|
||||
|
@ -770,7 +762,6 @@ $a->strings['America/Yellowknife'] = 'America/Yellowknife';
|
|||
$a->strings['Antarctica/Casey'] = 'Antarctica/Casey';
|
||||
$a->strings['Antarctica/Davis'] = 'Antarctica/Davis';
|
||||
$a->strings['Antarctica/DumontDUrville'] = 'Antarctica/DumontDUrville';
|
||||
$a->strings['Antarctica/Macquarie'] = 'Antarctica/Macquarie';
|
||||
$a->strings['Antarctica/Mawson'] = 'Antarctica/Mawson';
|
||||
$a->strings['Antarctica/McMurdo'] = 'Antarctica/McMurdo';
|
||||
$a->strings['Antarctica/Palmer'] = 'Antarctica/Palmer';
|
||||
|
@ -807,7 +798,6 @@ $a->strings['Asia/Dubai'] = 'Asia/Dubai';
|
|||
$a->strings['Asia/Dushanbe'] = 'Asia/Dushanbe';
|
||||
$a->strings['Asia/Gaza'] = 'Asia/Gaza';
|
||||
$a->strings['Asia/Harbin'] = 'Asia/Harbin';
|
||||
$a->strings['Asia/Ho_Chi_Minh'] = 'Asia/Ho_Chi_Minh';
|
||||
$a->strings['Asia/Hong_Kong'] = 'Asia/Hong_Kong';
|
||||
$a->strings['Asia/Hovd'] = 'Asia/Hovd';
|
||||
$a->strings['Asia/Irkutsk'] = 'Asia/Irkutsk';
|
||||
|
@ -819,9 +809,7 @@ $a->strings['Asia/Kabul'] = 'Asia/Kabul';
|
|||
$a->strings['Asia/Kamchatka'] = 'Asia/Kamchatka';
|
||||
$a->strings['Asia/Karachi'] = 'Asia/Karachi';
|
||||
$a->strings['Asia/Kashgar'] = 'Asia/Kashgar';
|
||||
$a->strings['Asia/Kathmandu'] = 'Asia/Kathmandu';
|
||||
$a->strings['Asia/Katmandu'] = 'Asia/Katmandu';
|
||||
$a->strings['Asia/Kolkata'] = 'Asia/Kolkata';
|
||||
$a->strings['Asia/Krasnoyarsk'] = 'Asia/Krasnoyarsk';
|
||||
$a->strings['Asia/Kuala_Lumpur'] = 'Asia/Kuala_Lumpur';
|
||||
$a->strings['Asia/Kuching'] = 'Asia/Kuching';
|
||||
|
@ -833,7 +821,6 @@ $a->strings['Asia/Makassar'] = 'Asia/Makassar';
|
|||
$a->strings['Asia/Manila'] = 'Asia/Manila';
|
||||
$a->strings['Asia/Muscat'] = 'Asia/Muscat';
|
||||
$a->strings['Asia/Nicosia'] = 'Asia/Nicosia';
|
||||
$a->strings['Asia/Novokuznetsk'] = 'Asia/Novokuznetsk';
|
||||
$a->strings['Asia/Novosibirsk'] = 'Asia/Novosibirsk';
|
||||
$a->strings['Asia/Omsk'] = 'Asia/Omsk';
|
||||
$a->strings['Asia/Oral'] = 'Asia/Oral';
|
||||
|
|
2507
view/it/messages.po
Normal file
2507
view/it/messages.po
Normal file
File diff suppressed because it is too large
Load diff
1665
view/it/strings.php
1665
view/it/strings.php
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue