From c8ecc3140534b4138db4eea415685f85bc56a5e0 Mon Sep 17 00:00:00 2001 From: Adam Magness Date: Sun, 21 Jan 2018 11:38:01 -0500 Subject: [PATCH] Update functions and calls Update function names and calls. --- doc/smarty3-templates.md | 2 +- doc/themes.md | 16 +-- include/acl_selectors.php | 21 ++-- include/api.php | 15 +-- include/bb2diaspora.php | 8 +- include/bbcode.php | 22 ++-- include/conversation.php | 206 +++++++++++++++++------------------ include/datetime.php | 3 +- include/enotify.php | 13 ++- index.php | 7 +- mod/register.php | 7 +- mod/regmod.php | 9 +- src/Core/L10n.php | 43 ++++---- src/Database/DBStructure.php | 3 +- src/Protocol/Diaspora.php | 10 +- util/maintenance.php | 13 ++- 16 files changed, 209 insertions(+), 189 deletions(-) diff --git a/doc/smarty3-templates.md b/doc/smarty3-templates.md index 5c096d2c2d..d44f263255 100644 --- a/doc/smarty3-templates.md +++ b/doc/smarty3-templates.md @@ -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. diff --git a/doc/themes.md b/doc/themes.md index 531ff9c166..7407a0ca12 100644 --- a/doc/themes.md +++ b/doc/themes.md @@ -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){ diff --git a/include/acl_selectors.php b/include/acl_selectors.php index caa3e98c23..31d074276f 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -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 .= '
' . t("Post to Email") . '
'; + $jotnets .= '
' . L10n::t("Post to Email") . '
'; } 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") ], diff --git a/include/api.php b/include/api.php index 15ec2db12c..aeab06cf15 100644 --- a/include/api.php +++ b/include/api.php @@ -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'])) { diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 4856d18ab1..2673750eec 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -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"; } diff --git a/include/bbcode.php b/include/bbcode.php index 3a187c2815..7fa6d05f89 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -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 . '#$]', '' . t('Image/photo') . '', $newbody); + $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '' . L10n::t('Image/photo') . '', $newbody); $cnt++; } @@ -549,7 +549,7 @@ function bb_ShareAttributes($share, $simplehtml) break; case 4: $headline .= '
' . html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8'); - $headline .= t('%2$s %3$s', $link, $userid, $posted); + $headline .= L10n::t('%2$s %3$s', $link, $userid, $posted); $headline .= ":
"; $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", '' . t('Image/photo') . '', $Text); - $Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '' . t('Image/photo') . '', $Text); + $Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . L10n::t('Image/photo') . '', $Text); + $Text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '' . 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", '
' . t('Encrypted content') . '
', $Text); - $Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '
' . t('Encrypted content') . '
', $Text); - //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '
' . t('Encrypted content') . '
', $Text); + $Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '
' . L10n::t('Encrypted content') . '
', $Text); + $Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '
' . L10n::t('Encrypted content') . '
', $Text); + //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '
' . L10n::t('Encrypted content') . '
', $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); diff --git a/include/conversation.php b/include/conversation.php index 7b358d3dd6..bcc0b855f5 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -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('%2$d people like this'), $spanatts, $cnt); - $explikers = sprintf( t('%s like this.'), $likers); + $phrase = sprintf( L10n::t('%2$d people like this'), $spanatts, $cnt); + $explikers = sprintf( L10n::t('%s like this.'), $likers); break; case 'dislike': - $phrase = sprintf( t('%2$d people don\'t like this'), $spanatts, $cnt); - $explikers = sprintf( t('%s don\'t like this.'), $likers); + $phrase = sprintf( L10n::t('%2$d people don\'t like this'), $spanatts, $cnt); + $explikers = sprintf( L10n::t('%s don\'t like this.'), $likers); break; case 'attendyes': - $phrase = sprintf( t('%2$d people attend'), $spanatts, $cnt); - $explikers = sprintf( t('%s attend.'), $likers); + $phrase = sprintf( L10n::t('%2$d people attend'), $spanatts, $cnt); + $explikers = sprintf( L10n::t('%s attend.'), $likers); break; case 'attendno': - $phrase = sprintf( t('%2$d people don\'t attend'), $spanatts, $cnt); - $explikers = sprintf( t('%s don\'t attend.'), $likers); + $phrase = sprintf( L10n::t('%2$d people don\'t attend'), $spanatts, $cnt); + $explikers = sprintf( L10n::t('%s don\'t attend.'), $likers); break; case 'attendmaybe': - $phrase = sprintf( t('%2$d people attend maybe'), $spanatts, $cnt); - $explikers = sprintf( t('%s anttend maybe.'), $likers); + $phrase = sprintf( L10n::t('%2$d people 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 everybody'), - '$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 everybody'), + '$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 everybody'), - '$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 everybody'), + '$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'], '' . t('View all') . ''); + . (($ob) ? $ob->getId() : $item['id']) . '">' . L10n::t('View all') . ''); } else { $ret[$v]['list_part'] = ''; } diff --git a/include/datetime.php b/include/datetime.php index 0faea8c90e..5b1c446a90 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -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"])) { diff --git a/include/enotify.php b/include/enotify.php index ab4bbc6db2..69921cd4d6 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -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; } } diff --git a/index.php b/index.php index ad65a701ac..0f769834a9 100644 --- a/index.php +++ b/index.php @@ -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)) { diff --git a/mod/register.php b/mod/register.php index 2bd09aca92..009bb43d03 100644 --- a/mod/register.php +++ b/mod/register.php @@ -1,8 +1,11 @@ 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(); diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index b3eed0dd1b..0f2dc39e6d 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -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, diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index 9d42d32124..bf917543be 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -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"; } diff --git a/util/maintenance.php b/util/maintenance.php index 39c2acb0e1..a697e66d5a 100644 --- a/util/maintenance.php +++ b/util/maintenance.php @@ -1,9 +1,13 @@