Update functions and calls

Update function names and calls.
This commit is contained in:
Adam Magness 2018-01-21 11:38:01 -05:00
parent 417b32c881
commit c8ecc31405
16 changed files with 209 additions and 189 deletions

View file

@ -39,7 +39,7 @@ They are initialized with an array of data, depending on the tyle of the field.
All of these take an array holding the values, e.g. for a one line text input field, which is required and should be used to type email addesses use something along the lines of:
'$adminmail' => array('adminmail', t('Site administrator email address'), $adminmail, t('Your account email address must match this in order to use the web admin panel.'), 'required', '', 'email'),
'$adminmail' => array('adminmail', L10n::t('Site administrator email address'), $adminmail, L10n::t('Your account email address must match this in order to use the web admin panel.'), 'required', '', 'email'),
To evaluate the input value, you can then use the $_POST array, more precisely the $_POST['adminemail'] variable.

View file

@ -109,17 +109,17 @@ The _post functions handle the processing of the send form, in this case they sa
To make your own variation appear in the menu, all you need to do is to create a new CSS file in the deriv directoy and include it in the array in the config.php:
$colorset = array(
'default'=>t('default'),
'greenzero'=>t('greenzero'),
'purplezero'=>t('purplezero'),
'easterbunny'=>t('easterbunny'),
'darkzero'=>t('darkzero'),
'comix'=>t('comix'),
'slackr'=>t('slackr'),
'default'=>L10n::t('default'),
'greenzero'=>L10n::t('greenzero'),
'purplezero'=>L10n::t('purplezero'),
'easterbunny'=>L10n::t('easterbunny'),
'darkzero'=>L10n::t('darkzero'),
'comix'=>L10n::t('comix'),
'slackr'=>L10n::t('slackr'),
);
the 1st part of the line is the name of the CSS file (without the .css) the 2nd part is the common name of the variant.
Calling the t() function with the common name makes the string translateable.
Calling the L10n::t() function with the common name makes the string translateable.
The selected 1st part will be saved in the database by the theme_post function.
function theme_post(App $a){

View file

@ -7,6 +7,7 @@ use Friendica\Content\Feature;
use Friendica\Content\Widget;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Database\DBM;
use Friendica\Model\Contact;
use Friendica\Model\GContact;
@ -351,31 +352,31 @@ function populate_acl($user = null, $show_jotnets = false) {
if (!$user['hidewall']) {
if ($mail_enabled) {
$selected = (($pubmail_enabled) ? ' checked="checked" ' : '');
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> ' . t("Post to Email") . '</div>';
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> ' . L10n::t("Post to Email") . '</div>';
}
Addon::callHooks('jot_networks', $jotnets);
} else {
$jotnets .= sprintf(t('Connectors disabled, since "%s" is enabled.'),
t('Hide your profile details from unknown viewers?'));
$jotnets .= sprintf(L10n::t('Connectors disabled, since "%s" is enabled.'),
L10n::t('Hide your profile details from unknown viewers?'));
}
}
$tpl = get_markup_template("acl_selector.tpl");
$o = replace_macros($tpl, [
'$showall'=> t("Visible to everybody"),
'$show' => t("show"),
'$hide' => t("don't show"),
'$showall'=> L10n::t("Visible to everybody"),
'$show' => L10n::t("show"),
'$hide' => L10n::t("don't show"),
'$allowcid' => json_encode($perms['allow_cid']),
'$allowgid' => json_encode($perms['allow_gid']),
'$denycid' => json_encode($perms['deny_cid']),
'$denygid' => json_encode($perms['deny_gid']),
'$networks' => $show_jotnets,
'$emailcc' => t('CC: email addresses'),
'$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$emailcc' => L10n::t('CC: email addresses'),
'$emtitle' => L10n::t('Example: bob@example.com, mary@example.com'),
'$jotnets' => $jotnets,
'$aclModalTitle' => t('Permissions'),
'$aclModalDismiss' => t('Close'),
'$aclModalTitle' => L10n::t('Permissions'),
'$aclModalDismiss' => L10n::t('Close'),
'$features' => [
'aclautomention' => (Feature::isEnabled($user['uid'], "aclautomention") ? "true" : "false")
],

View file

@ -12,6 +12,7 @@ use Friendica\Core\Addon;
use Friendica\Core\System;
use Friendica\Core\Config;
use Friendica\Core\NotificationsManager;
use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Core\Worker;
use Friendica\Database\DBM;
@ -1176,8 +1177,8 @@ function api_statuses_update($type)
if ($posts_day > $throttle_day) {
logger('Daily posting limit reached for user '.api_user(), LOGGER_DEBUG);
// die(api_error($type, sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day)));
throw new TooManyRequestsException(sprintf(t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day));
// die(api_error($type, sprintf(L10n::t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day)));
throw new TooManyRequestsException(sprintf(L10n::t("Daily posting limit of %d posts reached. The post was rejected."), $throttle_day));
}
}
@ -1200,8 +1201,8 @@ function api_statuses_update($type)
if ($posts_week > $throttle_week) {
logger('Weekly posting limit reached for user '.api_user(), LOGGER_DEBUG);
// die(api_error($type, sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week)));
throw new TooManyRequestsException(sprintf(t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week));
// die(api_error($type, sprintf(L10n::t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week)));
throw new TooManyRequestsException(sprintf(L10n::t("Weekly posting limit of %d posts reached. The post was rejected."), $throttle_week));
}
}
@ -1224,8 +1225,8 @@ function api_statuses_update($type)
if ($posts_month > $throttle_month) {
logger('Monthly posting limit reached for user '.api_user(), LOGGER_DEBUG);
// die(api_error($type, sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month)));
throw new TooManyRequestsException(sprintf(t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month));
// die(api_error($type, sprintf(L10n::t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month)));
throw new TooManyRequestsException(sprintf(L10n::t("Monthly posting limit of %d posts reached. The post was rejected."), $throttle_month));
}
}
@ -4374,7 +4375,7 @@ function api_account_update_profile_image($type)
$media = $_FILES['media'];
}
// save new profile image
$data = save_media_to_database("profileimage", $media, $type, t('Profile Photos'), "", "", "", "", "", $is_default_profile);
$data = save_media_to_database("profileimage", $media, $type, L10n::t('Profile Photos'), "", "", "", "", "", $is_default_profile);
// get filetype
if (is_array($media['type'])) {

View file

@ -234,13 +234,13 @@ function format_event_diaspora($ev) {
return '';
}
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
$bd_format = L10n::t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
$o = 'Friendica event notification:' . "\n";
$o .= '**' . (($ev['summary']) ? bb2diaspora($ev['summary']) : bb2diaspora($ev['desc'])) . '**' . "\n";
$o .= t('Starts:') . ' ' . '['
$o .= L10n::t('Starts:') . ' ' . '['
. (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
$ev['start'] , $bd_format ))
: day_translate(datetime_convert('UTC', 'UTC',
@ -248,7 +248,7 @@ function format_event_diaspora($ev) {
. '](' . System::baseUrl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n";
if (! $ev['nofinish']) {
$o .= t('Finishes:') . ' ' . '['
$o .= L10n::t('Finishes:') . ' ' . '['
. (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
$ev['finish'] , $bd_format ))
: day_translate(datetime_convert('UTC', 'UTC',
@ -257,7 +257,7 @@ function format_event_diaspora($ev) {
}
if (strlen($ev['location'])) {
$o .= t('Location:') . bb2diaspora($ev['location'])
$o .= L10n::t('Location:') . bb2diaspora($ev['location'])
. "\n";
}

View file

@ -411,7 +411,7 @@ function bb_replace_images($body, $images) {
// We're depending on the property of 'foreach' (specified on the PHP website) that
// it loops over the array starting from the first element and going sequentially
// to the last element
$newbody = str_replace('[$#saved_image' . $cnt . '#$]', '<img src="' . proxy_url($image) .'" alt="' . t('Image/photo') . '" />', $newbody);
$newbody = str_replace('[$#saved_image' . $cnt . '#$]', '<img src="' . proxy_url($image) .'" alt="' . L10n::t('Image/photo') . '" />', $newbody);
$cnt++;
}
@ -549,7 +549,7 @@ function bb_ShareAttributes($share, $simplehtml)
break;
case 4:
$headline .= '<br /><b>' . html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8');
$headline .= t('<a href="%1$s" target="_blank">%2$s</a> %3$s', $link, $userid, $posted);
$headline .= L10n::t('<a href="%1$s" target="_blank">%2$s</a> %3$s', $link, $userid, $posted);
$headline .= ":</b><br />";
$text = trim($share[1]);
@ -1180,7 +1180,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
// Check for [spoiler=Author] text
$t_wrote = t('$1 wrote:');
$t_wrote = L10n::t('$1 wrote:');
// handle nested quotes
$endlessloop = 0;
@ -1202,7 +1202,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
// Check for [quote=Author] text
$t_wrote = t('$1 wrote:');
$t_wrote = L10n::t('$1 wrote:');
// handle nested quotes
$endlessloop = 0;
@ -1223,8 +1223,8 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
// [img]pathtoimage[/img]
$Text = preg_replace_callback("/\[img\](.*?)\[\/img\]/ism", 'bb_PictureCache', $Text);
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . L10n::t('Image/photo') . '" />', $Text);
$Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '<img src="$1" alt="' . L10n::t('Image/photo') . '" />', $Text);
// Shared content
$Text = preg_replace_callback("/(.*?)\[share(.*?)\](.*?)\[\/share\]/ism",
@ -1232,9 +1232,9 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
return bb_ShareAttributes($match, $simplehtml);
}, $Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '<br/><img src="' .System::baseUrl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .System::baseUrl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
//$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .System::baseUrl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '<br/><img src="' .System::baseUrl() . '/images/lock_icon.gif" alt="' . L10n::t('Encrypted content') . '" title="' . L10n::t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .System::baseUrl() . '/images/lock_icon.gif" alt="' . L10n::t('Encrypted content') . '" title="' . '$1' . ' ' . L10n::t('Encrypted content') . '" /><br />', $Text);
//$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '<br/><img src="' .System::baseUrl() . '/images/lock_icon.gif" alt="' . L10n::t('Encrypted content') . '" title="' . '$1' . ' ' . L10n::t('Encrypted content') . '" /><br />', $Text);
// Try to Oembed
if ($tryoembed) {
@ -1352,7 +1352,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
// sanitizes src attributes (http and redir URLs for displaying in a web page, cid used for inline images in emails)
static $allowed_src_protocols = ['http', 'redir', 'cid'];
$Text = preg_replace('#<([^>]*?)(src)="(?!' . implode('|', $allowed_src_protocols) . ')(.*?)"(.*?)>#ism',
'<$1$2=""$4 data-original-src="$3" class="invalid-src" title="' . t('Invalid source protocol') . '">', $Text);
'<$1$2=""$4 data-original-src="$3" class="invalid-src" title="' . L10n::t('Invalid source protocol') . '">', $Text);
// sanitize href attributes (only whitelisted protocols URLs)
// default value for backward compatibility
@ -1363,7 +1363,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
$allowed_link_protocols[] = 'redir/';
$regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism';
$Text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 data-original-href="$3" class="invalid-href" title="' . t('Invalid link protocol') . '">', $Text);
$Text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 data-original-href="$3" class="invalid-href" title="' . L10n::t('Invalid link protocol') . '">', $Text);
if ($saved_image) {
$Text = bb_replace_images($Text, $saved_image);

View file

@ -137,39 +137,39 @@ function localize_item(&$item) {
case ACTIVITY_POST:
switch ($obj['object-type']) {
case ACTIVITY_OBJ_EVENT:
$post_type = t('event');
$post_type = L10n::t('event');
break;
default:
$post_type = t('status');
$post_type = L10n::t('status');
}
break;
default:
if ($obj['resource-id']) {
$post_type = t('photo');
$post_type = L10n::t('photo');
$m = [];
preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = t('status');
$post_type = L10n::t('status');
}
}
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
if (activity_match($item['verb'], ACTIVITY_LIKE)) {
$bodyverb = t('%1$s likes %2$s\'s %3$s');
$bodyverb = L10n::t('%1$s likes %2$s\'s %3$s');
}
elseif (activity_match($item['verb'], ACTIVITY_DISLIKE)) {
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
$bodyverb = L10n::t('%1$s doesn\'t like %2$s\'s %3$s');
}
elseif (activity_match($item['verb'], ACTIVITY_ATTEND)) {
$bodyverb = t('%1$s attends %2$s\'s %3$s');
$bodyverb = L10n::t('%1$s attends %2$s\'s %3$s');
}
elseif (activity_match($item['verb'], ACTIVITY_ATTENDNO)) {
$bodyverb = t('%1$s doesn\'t attend %2$s\'s %3$s');
$bodyverb = L10n::t('%1$s doesn\'t attend %2$s\'s %3$s');
}
elseif (activity_match($item['verb'], ACTIVITY_ATTENDMAYBE)) {
$bodyverb = t('%1$s attends maybe %2$s\'s %3$s');
$bodyverb = L10n::t('%1$s attends maybe %2$s\'s %3$s');
}
$item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
@ -202,7 +202,7 @@ function localize_item(&$item) {
$Bphoto = '[url=' . Profile::zrl($Blink) . '][img]' . $Bphoto . '[/img][/url]';
}
$item['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$Bphoto;
$item['body'] = sprintf( L10n::t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$Bphoto;
}
if (stristr($item['verb'], ACTIVITY_POKE)) {
@ -243,11 +243,11 @@ function localize_item(&$item) {
* we can't have a translation string with three positions but no distinguishable text
* So here is the translate string.
*/
$txt = t('%1$s poked %2$s');
$txt = L10n::t('%1$s poked %2$s');
// now translate the verb
$poked_t = trim(sprintf($txt, "", ""));
$txt = str_replace( $poked_t, t($verb), $txt);
$txt = str_replace( $poked_t, L10n::t($verb), $txt);
// then do the sprintf on the translation string
@ -275,19 +275,19 @@ function localize_item(&$item) {
case ACTIVITY_POST:
switch ($obj['object-type']) {
case ACTIVITY_OBJ_EVENT:
$post_type = t('event');
$post_type = L10n::t('event');
break;
default:
$post_type = t('status');
$post_type = L10n::t('status');
}
break;
default:
if ($obj['resource-id']) {
$post_type = t('photo');
$post_type = L10n::t('photo');
$m=[]; preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
$rr['plink'] = $m[1];
} else {
$post_type = t('status');
$post_type = L10n::t('status');
}
// Let's break everthing ... ;-)
break;
@ -297,7 +297,7 @@ function localize_item(&$item) {
$parsedobj = parse_xml_string($xmlhead.$item['object']);
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
$item['body'] = sprintf( L10n::t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
}
if (activity_match($item['verb'], ACTIVITY_FAVORITE)) {
@ -324,8 +324,8 @@ function localize_item(&$item) {
$Blink = $target['author-link'];
$A = '[url=' . Profile::zrl($Alink) . ']' . $Aname . '[/url]';
$B = '[url=' . Profile::zrl($Blink) . ']' . $Bname . '[/url]';
$P = '[url=' . $target['plink'] . ']' . t('post/item') . '[/url]';
$item['body'] = sprintf( t('%1$s marked %2$s\'s %3$s as favorite'), $A, $B, $P)."\n";
$P = '[url=' . $target['plink'] . ']' . L10n::t('post/item') . '[/url]';
$item['body'] = sprintf( L10n::t('%1$s marked %2$s\'s %3$s as favorite'), $A, $B, $P)."\n";
}
}
}
@ -601,8 +601,8 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
$items = $cb['items'];
$conv_responses = [
'like' => ['title' => t('Likes','title')], 'dislike' => ['title' => t('Dislikes','title')],
'attendyes' => ['title' => t('Attending','title')], 'attendno' => ['title' => t('Not attending','title')], 'attendmaybe' => ['title' => t('Might attend','title')]
'like' => ['title' => L10n::t('Likes','title')], 'dislike' => ['title' => L10n::t('Dislikes','title')],
'attendyes' => ['title' => L10n::t('Attending','title')], 'attendno' => ['title' => L10n::t('Not attending','title')], 'attendmaybe' => ['title' => L10n::t('Might attend','title')]
];
// array with html for each thread (parent+comments)
@ -746,8 +746,8 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
$drop = [
'dropping' => $dropping,
'pagedrop' => $page_dropping,
'select' => t('Select'),
'delete' => t('Delete'),
'select' => L10n::t('Select'),
'delete' => L10n::t('Delete'),
];
$star = false;
@ -779,7 +779,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
'guid' => (($preview) ? 'Q0' : $item['guid']),
'network' => $item['item_network'],
'network_name' => ContactSelector::networkToName($item['item_network'], $profile_link),
'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'linktitle' => sprintf( L10n::t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])),
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $profile_name_e,
@ -791,15 +791,15 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
'tags' => $tags_e,
'hashtags' => $hashtags_e,
'mentions' => $mentions_e,
'txt_cats' => t('Categories:'),
'txt_folders' => t('Filed under:'),
'txt_cats' => L10n::t('Categories:'),
'txt_folders' => L10n::t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories,
'folders' => $folders,
'text' => strip_tags($body_e),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'ago' => (($item['app']) ? sprintf( L10n::t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'location' => $location_e,
'indent' => '',
'owner_name' => $owner_name_e,
@ -814,9 +814,9 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
'like' => '',
'dislike' => '',
'comment' => '',
'conv' => (($preview) ? '' : ['href'=> 'display/'.$item['guid'], 'title'=> t('View in context')]),
'conv' => (($preview) ? '' : ['href'=> 'display/'.$item['guid'], 'title'=> L10n::t('View in context')]),
'previewing' => $previewing,
'wait' => t('Please wait'),
'wait' => L10n::t('Please wait'),
'thread_level' => 1,
];
@ -887,11 +887,11 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
'$baseurl' => System::baseUrl($ssl_state),
'$return_path' => $a->query_string,
'$live_update' => $live_update_div,
'$remove' => t('remove'),
'$remove' => L10n::t('remove'),
'$mode' => $mode,
'$user' => $a->user,
'$threads' => $threads,
'$dropping' => ($page_dropping && Feature::isEnabled(local_user(), 'multi_delete') ? t('Delete Selected Items') : False),
'$dropping' => ($page_dropping && Feature::isEnabled(local_user(), 'multi_delete') ? L10n::t('Delete Selected Items') : False),
]);
return $o;
@ -1053,25 +1053,25 @@ function item_photo_menu($item) {
if (local_user()) {
$menu = [
t('Follow Thread') => $sub_link,
t('View Status') => $status_link,
t('View Profile') => $profile_link,
t('View Photos') => $photos_link,
t('Network Posts') => $posts_link,
t('View Contact') => $contact_url,
t('Send PM') => $pm_url
L10n::t('Follow Thread') => $sub_link,
L10n::t('View Status') => $status_link,
L10n::t('View Profile') => $profile_link,
L10n::t('View Photos') => $photos_link,
L10n::t('Network Posts') => $posts_link,
L10n::t('View Contact') => $contact_url,
L10n::t('Send PM') => $pm_url
];
if ($network == NETWORK_DFRN) {
$menu[t("Poke")] = $poke_link;
$menu[L10n::t("Poke")] = $poke_link;
}
if ((($cid == 0) || ($rel == CONTACT_IS_FOLLOWER)) &&
in_array($item['network'], [NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA])) {
$menu[t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
$menu[L10n::t('Connect/Follow')] = 'follow?url=' . urlencode($item['author-link']);
}
} else {
$menu = [t('View Profile') => $item['author-link']];
$menu = [L10n::t('View Profile') => $item['author-link']];
}
$args = ['item' => $item, 'menu' => $menu];
@ -1187,19 +1187,19 @@ function format_like($cnt, array $arr, $type, $id) {
// list which show all likers
switch ($type) {
case 'like' :
$phrase = sprintf( t('%s likes this.'), $likers);
$phrase = sprintf( L10n::t('%s likes this.'), $likers);
break;
case 'dislike' :
$phrase = sprintf( t('%s doesn\'t like this.'), $likers);
$phrase = sprintf( L10n::t('%s doesn\'t like this.'), $likers);
break;
case 'attendyes' :
$phrase = sprintf( t('%s attends.'), $likers);
$phrase = sprintf( L10n::t('%s attends.'), $likers);
break;
case 'attendno' :
$phrase = sprintf( t('%s doesn\'t attend.'), $likers);
$phrase = sprintf( L10n::t('%s doesn\'t attend.'), $likers);
break;
case 'attendmaybe' :
$phrase = sprintf( t('%s attends maybe.'), $likers);
$phrase = sprintf( L10n::t('%s attends maybe.'), $likers);
break;
}
}
@ -1210,13 +1210,13 @@ function format_like($cnt, array $arr, $type, $id) {
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
}
if ($total < MAX_LIKERS) {
$last = t('and') . ' ' . $arr[count($arr)-1];
$last = L10n::t('and') . ' ' . $arr[count($arr)-1];
$arr2 = array_slice($arr, 0, -1);
$str = implode(', ', $arr2) . ' ' . $last;
}
if ($total >= MAX_LIKERS) {
$str = implode(', ', $arr);
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
$str .= sprintf( L10n::t(', and %d other people'), $total - MAX_LIKERS );
}
$likers = $str;
@ -1225,24 +1225,24 @@ function format_like($cnt, array $arr, $type, $id) {
switch ($type) {
case 'like':
$phrase = sprintf( t('<span %1$s>%2$d people</span> like this'), $spanatts, $cnt);
$explikers = sprintf( t('%s like this.'), $likers);
$phrase = sprintf( L10n::t('<span %1$s>%2$d people</span> like this'), $spanatts, $cnt);
$explikers = sprintf( L10n::t('%s like this.'), $likers);
break;
case 'dislike':
$phrase = sprintf( t('<span %1$s>%2$d people</span> don\'t like this'), $spanatts, $cnt);
$explikers = sprintf( t('%s don\'t like this.'), $likers);
$phrase = sprintf( L10n::t('<span %1$s>%2$d people</span> don\'t like this'), $spanatts, $cnt);
$explikers = sprintf( L10n::t('%s don\'t like this.'), $likers);
break;
case 'attendyes':
$phrase = sprintf( t('<span %1$s>%2$d people</span> attend'), $spanatts, $cnt);
$explikers = sprintf( t('%s attend.'), $likers);
$phrase = sprintf( L10n::t('<span %1$s>%2$d people</span> attend'), $spanatts, $cnt);
$explikers = sprintf( L10n::t('%s attend.'), $likers);
break;
case 'attendno':
$phrase = sprintf( t('<span %1$s>%2$d people</span> don\'t attend'), $spanatts, $cnt);
$explikers = sprintf( t('%s don\'t attend.'), $likers);
$phrase = sprintf( L10n::t('<span %1$s>%2$d people</span> don\'t attend'), $spanatts, $cnt);
$explikers = sprintf( L10n::t('%s don\'t attend.'), $likers);
break;
case 'attendmaybe':
$phrase = sprintf( t('<span %1$s>%2$d people</span> attend maybe'), $spanatts, $cnt);
$explikers = sprintf( t('%s anttend maybe.'), $likers);
$phrase = sprintf( L10n::t('<span %1$s>%2$d people</span> attend maybe'), $spanatts, $cnt);
$explikers = sprintf( L10n::t('%s anttend maybe.'), $likers);
break;
}
@ -1272,14 +1272,14 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$baseurl' => System::baseUrl(true),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => t('Visible to <strong>everybody</strong>'),
'$linkurl' => t('Please enter a link URL:'),
'$vidurl' => t("Please enter a video link/URL:"),
'$audurl' => t("Please enter an audio link/URL:"),
'$term' => t('Tag term:'),
'$fileas' => t('Save to Folder:'),
'$whereareu' => t('Where are you right now?'),
'$delitems' => t('Delete item(s)?')
'$ispublic' => L10n::t('Visible to <strong>everybody</strong>'),
'$linkurl' => L10n::t('Please enter a link URL:'),
'$vidurl' => L10n::t("Please enter a video link/URL:"),
'$audurl' => L10n::t("Please enter an audio link/URL:"),
'$term' => L10n::t('Tag term:'),
'$fileas' => L10n::t('Save to Folder:'),
'$whereareu' => L10n::t('Where are you right now?'),
'$delitems' => L10n::t('Delete item(s)?')
]);
$tpl = get_markup_template('jot-end.tpl');
@ -1288,13 +1288,13 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$baseurl' => System::baseUrl(true),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => t('Visible to <strong>everybody</strong>'),
'$linkurl' => t('Please enter a link URL:'),
'$vidurl' => t("Please enter a video link/URL:"),
'$audurl' => t("Please enter an audio link/URL:"),
'$term' => t('Tag term:'),
'$fileas' => t('Save to Folder:'),
'$whereareu' => t('Where are you right now?')
'$ispublic' => L10n::t('Visible to <strong>everybody</strong>'),
'$linkurl' => L10n::t('Please enter a link URL:'),
'$vidurl' => L10n::t("Please enter a video link/URL:"),
'$audurl' => L10n::t("Please enter an audio link/URL:"),
'$term' => L10n::t('Tag term:'),
'$fileas' => L10n::t('Save to Folder:'),
'$whereareu' => L10n::t('Where are you right now?')
]);
$jotplugins = '';
@ -1328,28 +1328,28 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
$o .= replace_macros($tpl,[
'$return_path' => $query_str,
'$action' => 'item',
'$share' => defaults($x, 'button', t('Share')),
'$upload' => t('Upload photo'),
'$shortupload' => t('upload photo'),
'$attach' => t('Attach file'),
'$shortattach' => t('attach file'),
'$weblink' => t('Insert web link'),
'$shortweblink' => t('web link'),
'$video' => t('Insert video link'),
'$shortvideo' => t('video link'),
'$audio' => t('Insert audio link'),
'$shortaudio' => t('audio link'),
'$setloc' => t('Set your location'),
'$shortsetloc' => t('set location'),
'$noloc' => t('Clear browser location'),
'$shortnoloc' => t('clear location'),
'$share' => defaults($x, 'button', L10n::t('Share')),
'$upload' => L10n::t('Upload photo'),
'$shortupload' => L10n::t('upload photo'),
'$attach' => L10n::t('Attach file'),
'$shortattach' => L10n::t('attach file'),
'$weblink' => L10n::t('Insert web link'),
'$shortweblink' => L10n::t('web link'),
'$video' => L10n::t('Insert video link'),
'$shortvideo' => L10n::t('video link'),
'$audio' => L10n::t('Insert audio link'),
'$shortaudio' => L10n::t('audio link'),
'$setloc' => L10n::t('Set your location'),
'$shortsetloc' => L10n::t('set location'),
'$noloc' => L10n::t('Clear browser location'),
'$shortnoloc' => L10n::t('clear location'),
'$title' => defaults($x, 'title', ''),
'$placeholdertitle' => t('Set title'),
'$placeholdertitle' => L10n::t('Set title'),
'$category' => defaults($x, 'category', ''),
'$placeholdercategory' => Feature::isEnabled(local_user(), 'categories') ? t('Categories (comma-separated list)') : '',
'$wait' => t('Please wait'),
'$permset' => t('Permission settings'),
'$shortpermset' => t('permissions'),
'$placeholdercategory' => Feature::isEnabled(local_user(), 'categories') ? L10n::t('Categories (comma-separated list)') : '',
'$wait' => L10n::t('Please wait'),
'$permset' => L10n::t('Permission settings'),
'$shortpermset' => L10n::t('permissions'),
'$ptyp' => $notes_cid ? 'note' : 'wall',
'$content' => defaults($x, 'content', ''),
'$post_id' => defaults($x, 'post_id', ''),
@ -1357,28 +1357,28 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$defloc' => $x['default_location'],
'$visitor' => $x['visitor'],
'$pvisit' => $notes_cid ? 'none' : $x['visitor'],
'$public' => t('Public post'),
'$public' => L10n::t('Public post'),
'$lockstate' => $x['lockstate'],
'$bang' => $x['bang'],
'$profile_uid' => $x['profile_uid'],
'$preview' => Feature::isEnabled($x['profile_uid'], 'preview') ? t('Preview') : '',
'$preview' => Feature::isEnabled($x['profile_uid'], 'preview') ? L10n::t('Preview') : '',
'$jotplugins' => $jotplugins,
'$notes_cid' => $notes_cid,
'$sourceapp' => t($a->sourcename),
'$cancel' => t('Cancel'),
'$sourceapp' => L10n::t($a->sourcename),
'$cancel' => L10n::t('Cancel'),
'$rand_num' => random_digits(12),
// ACL permissions box
'$acl' => $x['acl'],
'$group_perms' => t('Post to Groups'),
'$contact_perms' => t('Post to Contacts'),
'$private' => t('Private post'),
'$group_perms' => L10n::t('Post to Groups'),
'$contact_perms' => L10n::t('Post to Contacts'),
'$private' => L10n::t('Private post'),
'$is_private' => $private_post,
'$public_link' => $public_post_link,
//jot nav tab (used in some themes)
'$message' => t('Message'),
'$browser' => t('Browser'),
'$message' => L10n::t('Message'),
'$browser' => L10n::t('Browser'),
]);
@ -1645,7 +1645,7 @@ function get_responses($conv_responses, $response_verbs, $ob, $item) {
if (count($ret[$v]['list']) > MAX_LIKERS) {
$ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS);
array_push($ret[$v]['list_part'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
. (($ob) ? $ob->getId() : $item['id']) . '"><b>' . t('View all') . '</b></a>');
. (($ob) ? $ob->getId() : $item['id']) . '"><b>' . L10n::t('View all') . '</b></a>');
} else {
$ret[$v]['list_part'] = '';
}

View file

@ -5,6 +5,7 @@
*/
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Database\DBM;
@ -276,7 +277,7 @@ function datetimesel($min, $max, $default, $label, $id = 'datetimepicker', $pick
// First day of the week (0 = Sunday)
$firstDay = PConfig::get(local_user(), 'system', 'first_day_of_week', 0);
$lang = substr(get_browser_language(), 0, 2);
$lang = substr(L10n::getBrowserLanguage(), 0, 2);
// Check if the detected language is supported by the picker
if (!in_array($lang, ["ar", "ro", "id", "bg", "fa", "ru", "uk", "en", "el", "de", "nl", "tr", "fr", "es", "th", "pl", "pt", "ch", "se", "kr", "it", "da", "no", "ja", "vi", "sl", "cs", "hu"])) {

View file

@ -5,6 +5,7 @@
use Friendica\App;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Database\DBM;
use Friendica\Util\Emailer;
@ -26,7 +27,7 @@ function notification($params)
$a = get_app();
// from here on everything is in the recipients language
push_lang($params['language']);
L10n::pushLang($params['language']);
$banner = t('Friendica Notification');
$product = FRIENDICA_PLATFORM;
@ -123,7 +124,7 @@ function notification($params)
intval($params['uid'])
);
if ($p && count($p)) {
pop_lang();
L10n::popLang();
return;
}
@ -444,7 +445,7 @@ function notification($params)
Addon::callHooks('enotify_store', $datarray);
if ($datarray['abort']) {
pop_lang();
L10n::popLang();
return False;
}
@ -473,7 +474,7 @@ function notification($params)
if ($r) {
$notify_id = $r[0]['id'];
} else {
pop_lang();
L10n::popLang();
return False;
}
@ -492,8 +493,8 @@ function notification($params)
// only continue on if we stored the first one
if ($notify_id != $p[0]['id']) {
pop_lang();
return False;
L10n::popLang();
return false;
}
}

View file

@ -15,6 +15,7 @@ use Friendica\Core\Addon;
use Friendica\Core\System;
use Friendica\Core\Theme;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\Worker;
use Friendica\Database\DBM;
use Friendica\Model\Profile;
@ -83,9 +84,9 @@ if (!$install) {
$maintenance = Config::get('system', 'maintenance');
}
$lang = get_browser_language();
$lang = L10n::getBrowserLanguage();
load_translation_table($lang);
L10n::loadTranslationTable($lang);
/**
* Important stuff we always need to do.
@ -121,7 +122,7 @@ if (x($_SESSION, 'authenticated') && !x($_SESSION, 'language')) {
if ((x($_SESSION, 'language')) && ($_SESSION['language'] !== $lang)) {
$lang = $_SESSION['language'];
load_translation_table($lang);
L10n::loadTranslationTable($lang);
}
if ((x($_GET, 'zrl')) && (!$install && !$maintenance)) {

View file

@ -1,8 +1,11 @@
<?php
/**
* @file mod/register.php
*/
use Friendica\App;
use Friendica\Core\Addon;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Core\System;
use Friendica\Core\Worker;
@ -58,7 +61,7 @@ function register_post(App $a)
$arr['blocked'] = $blocked;
$arr['verified'] = $verified;
$arr['language'] = get_browser_language();
$arr['language'] = L10n::getBrowserLanguage();
try {
$result = User::create($arr);

View file

@ -1,7 +1,10 @@
<?php
/**
* @file mod/regmod.php
*/
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBM;
@ -50,7 +53,7 @@ function user_allow($hash)
}
}
push_lang($register[0]['language']);
L10n::pushLang($register[0]['language']);
User::sendRegisterOpenEmail(
$user[0]['email'],
@ -59,7 +62,7 @@ function user_allow($hash)
$user[0]['username'],
$register[0]['password']);
pop_lang();
L10n::popLang();
if ($res) {
info(t('Account approved.') . EOL);

View file

@ -18,22 +18,22 @@ class L10n
/**
* @brief get the prefered language from the HTTP_ACCEPT_LANGUAGE header
*/
function get_browser_language() {
public static function getBrowserLanguage()
{
$lang_list = [];
if (x($_SERVER, 'HTTP_ACCEPT_LANGUAGE')) {
// break up string into pieces (languages and q factors)
preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
if (count($lang_parse[1])) {
// go through the list of prefered languages and add a generic language
// for sub-linguas (e.g. de-ch will add de) if not already in array
for ($i = 0; $i < count($lang_parse[1]); $i++) {
$lang_list[] = strtolower($lang_parse[1][$i]);
if (strlen($lang_parse[1][$i])>3 ) {
if (strlen($lang_parse[1][$i])>3) {
$dashpos = strpos($lang_parse[1][$i], '-');
if (!in_array(substr($lang_parse[1][$i], 0, $dashpos), $lang_list ) ) {
if (!in_array(substr($lang_parse[1][$i], 0, $dashpos), $lang_list)) {
$lang_list[] = strtolower(substr($lang_parse[1][$i], 0, $dashpos));
}
}
@ -56,8 +56,11 @@ class L10n
return Config::get('system', 'language', 'en');
}
function push_lang($language) {
/**
* @param string $language language
*/
public static function pushLang($language)
{
global $lang, $a;
$a->langsave = $lang;
@ -70,11 +73,15 @@ class L10n
$a->stringsave = $a->strings;
}
$a->strings = [];
load_translation_table($language);
self::loadTranslationTable($language);
$lang = $language;
}
function pop_lang() {
/**
* Pop language off the top of the stack
*/
public static function popLang()
{
global $lang, $a;
if ($lang === $a->langsave) {
@ -90,22 +97,21 @@ class L10n
$lang = $a->langsave;
}
// l
/**
* load string translation table for alternate language
*
* first plugin strings are loaded, then globals
* first addon strings are loaded, then globals
*
* @param string $lang language code to load
*/
function load_translation_table($lang) {
public static function loadTranslationTable($lang)
{
$a = get_app();
$a->strings = [];
// load enabled plugins strings
$plugins = dba::select('addon', ['name'], ['installed' => true]);
while ($p = dba::fetch($plugins)) {
// load enabled addons strings
$addons = dba::select('addon', ['name'], ['installed' => true]);
while ($p = dba::fetch($addons)) {
$name = $p['name'];
if (file_exists("addon/$name/lang/$lang/strings.php")) {
include("addon/$name/lang/$lang/strings.php");
@ -115,7 +121,6 @@ class L10n
if (file_exists("view/lang/$lang/strings.php")) {
include("view/lang/$lang/strings.php");
}
}
/**
@ -133,7 +138,7 @@ class L10n
* @param string $s
* @return string
*/
function t($s)
public static function t($s)
{
$a = get_app();

View file

@ -5,6 +5,7 @@
namespace Friendica\Database;
use Friendica\Core\Config;
use Friendica\Core\L10n;
use Friendica\Database\DBM;
use dba;
@ -68,7 +69,7 @@ class DBStructure {
// every admin could had different language
foreach ($adminlist as $admin) {
$lang = (($admin['language'])?$admin['language']:'en');
push_lang($lang);
L10n::pushLang($lang);
$preamble = deindent(t("
The friendica developers released update %s recently,

View file

@ -1933,11 +1933,11 @@ class Diaspora
*/
private static function constructLikeBody($contact, $parent_item, $guid)
{
$bodyverb = t('%1$s likes %2$s\'s %3$s');
$bodyverb = L10n::t('%1$s likes %2$s\'s %3$s');
$ulink = "[url=".$contact["url"]."]".$contact["name"]."[/url]";
$alink = "[url=".$parent_item["author-link"]."]".$parent_item["author-name"]."[/url]";
$plink = "[url=".System::baseUrl()."/display/".urlencode($guid)."]".t("status")."[/url]";
$plink = "[url=".System::baseUrl()."/display/".urlencode($guid)."]".L10n::t("status")."[/url]";
return sprintf($bodyverb, $ulink, $alink, $plink);
}
@ -2405,7 +2405,7 @@ class Diaspora
$A = "[url=".$self[0]["url"]."]".$self[0]["name"]."[/url]";
$B = "[url=".$contact["url"]."]".$contact["name"]."[/url]";
$BPhoto = "[url=".$contact["url"]."][img]".$contact["thumb"]."[/img][/url]";
$arr["body"] = sprintf(t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto;
$arr["body"] = sprintf(L10n::t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto;
$arr["object"] = self::constructNewFriendObject($contact);
@ -2575,7 +2575,7 @@ class Diaspora
intval($contact_record["id"]),
0,
0,
dbesc(t("Sharing notification from Diaspora network")),
dbesc(L10n::t("Sharing notification from Diaspora network")),
dbesc($hash),
dbesc(datetime_convert())
);
@ -3677,7 +3677,7 @@ class Diaspora
if ($item["attach"]) {
$cnt = preg_match_all('/href=\"(.*?)\"(.*?)title=\"(.*?)\"/ism', $item["attach"], $matches, PREG_SET_ORDER);
if (cnt) {
$body .= "\n".t("Attachments:")."\n";
$body .= "\n".L10n::t("Attachments:")."\n";
foreach ($matches as $mtch) {
$body .= "[".$mtch[3]."](".$mtch[1].")\n";
}

View file

@ -1,9 +1,13 @@
<?php
/**
* @file util/maintenance.php
*/
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\L10n;
require_once("boot.php");
require_once 'boot.php';
require_once 'include/dba.php';
if (empty($a)) {
$a = new App(dirname(__DIR__));
@ -11,10 +15,9 @@ if (empty($a)) {
@include(".htconfig.php");
$lang = get_browser_language();
load_translation_table($lang);
$lang = L10n::getBrowserLanguage();
L10n::loadTranslationTable($lang);
require_once("include/dba.php");
dba::connect($db_host, $db_user, $db_pass, $db_data, false);
unset($db_host, $db_user, $db_pass, $db_data);