diff --git a/boot.php b/boot.php index 733bbfd6ac..ede6fc77b9 100644 --- a/boot.php +++ b/boot.php @@ -1,5 +1,4 @@ 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..599b543ad0 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,30 @@ 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 .= 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..fa4e7f7758 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, L10n::t("Daily posting limit of %d posts reached. The post was rejected.", $throttle_day)); + throw new TooManyRequestsException(L10n::tt("Daily posting limit of %d post reached. The post was rejected.", "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, L10n::t("Weekly posting limit of %d posts reached. The post was rejected.", $throttle_week))); + throw new TooManyRequestsException(L10n::tt("Weekly posting limit of %d post reached. The post was rejected.", "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, L10n::t("Monthly posting limit of %d posts reached. The post was rejected.", $throttle_month)); + throw new TooManyRequestsException(L10n::t("Monthly posting limit of %d post reached. The post was rejected.", "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..df883eed64 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -1,10 +1,13 @@ ', $newbody); + $newbody = str_replace('[$#saved_image' . $cnt . '#$]', '' . L10n::t('Image/photo') . '', $newbody); $cnt++; } @@ -549,7 +552,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 +1183,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 +1205,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 +1226,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 +1235,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 +1355,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 +1366,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..94f5918744 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -7,6 +7,7 @@ use Friendica\Content\ContactSelector; use Friendica\Content\Feature; use Friendica\Core\Addon; use Friendica\Core\Config; +use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\System; use Friendica\Database\DBM; @@ -137,39 +138,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 +203,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'] = L10n::t('%1$s is now friends with %2$s', $A, $B)."\n\n\n".$Bphoto; } if (stristr($item['verb'], ACTIVITY_POKE)) { @@ -243,11 +244,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 +276,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 +298,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'] = 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 +325,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'] = L10n::t('%1$s marked %2$s\'s %3$s as favorite', $A, $B, $P)."\n"; } } } @@ -601,8 +602,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 +747,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 +780,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' => 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 +792,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']) ? 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 +815,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 +888,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 +1054,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 +1188,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 = L10n::t('%s likes this.', $likers); break; case 'dislike' : - $phrase = sprintf( t('%s doesn\'t like this.'), $likers); + $phrase = L10n::t('%s doesn\'t like this.', $likers); break; case 'attendyes' : - $phrase = sprintf( t('%s attends.'), $likers); + $phrase = L10n::t('%s attends.', $likers); break; case 'attendno' : - $phrase = sprintf( t('%s doesn\'t attend.'), $likers); + $phrase = L10n::t('%s doesn\'t attend.', $likers); break; case 'attendmaybe' : - $phrase = sprintf( t('%s attends maybe.'), $likers); + $phrase = L10n::t('%s attends maybe.', $likers); break; } } @@ -1210,13 +1211,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 .= L10n::t(', and %d other people', $total - MAX_LIKERS ); } $likers = $str; @@ -1225,24 +1226,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 = L10n::t('%2$d people like this', $spanatts, $cnt); + $explikers = 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 = L10n::t('%2$d people don\'t like this', $spanatts, $cnt); + $explikers = 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 = L10n::t('%2$d people attend', $spanatts, $cnt); + $explikers = 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 = L10n::t('%2$d people don\'t attend', $spanatts, $cnt); + $explikers = 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 = L10n::t('%2$d people attend maybe', $spanatts, $cnt); + $explikers = L10n::t('%s anttend maybe.', $likers); break; } @@ -1272,14 +1273,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 +1289,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 +1329,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 +1358,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 +1646,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'] = ''; } @@ -1668,19 +1669,19 @@ function get_response_button_text($v, $count) { switch ($v) { case 'like': - $return = tt('Like', 'Likes', $count); + $return = L10n::tt('Like', 'Likes', $count); break; case 'dislike': - $return = tt('Dislike', 'Dislikes', $count); + $return = L10n::tt('Dislike', 'Dislikes', $count); break; case 'attendyes': - $return = tt('Attending', 'Attending', $count); + $return = L10n::tt('Attending', 'Attending', $count); break; case 'attendno': - $return = tt('Not Attending', 'Not Attending', $count); + $return = L10n::tt('Not Attending', 'Not Attending', $count); break; case 'attendmaybe': - $return = tt('Undecided', 'Undecided', $count); + $return = L10n::tt('Undecided', 'Undecided', $count); break; } diff --git a/include/datetime.php b/include/datetime.php index 76585f9db3..9ff2f1ac68 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; @@ -17,21 +18,21 @@ use Friendica\Database\DBM; */ function timezone_cmp($a, $b) { if (strstr($a, '/') && strstr($b, '/')) { - if ( t($a) == t($b)) { + if (L10n::t($a) == L10n::t($b)) { return 0; } - return ( t($a) < t($b)) ? -1 : 1; + return (L10n::t($a) < L10n::t($b)) ? -1 : 1; } if (strstr($a, '/')) { return -1; } elseif (strstr($b, '/')) { return 1; - } elseif ( t($a) == t($b)) { + } elseif (L10n::t($a) == L10n::t($b)) { return 0; } - return ( t($a) < t($b)) ? -1 : 1; + return (L10n::t($a) < L10n::t($b)) ? -1 : 1; } /** @@ -56,7 +57,7 @@ function select_timezone($current = 'America/Los_Angeles') { $o .= ''; } $continent = $ex[0]; - $o .= ''; + $o .= ''; } if (count($ex) > 2) { $city = substr($value,strpos($value,'/')+1); @@ -65,13 +66,13 @@ function select_timezone($current = 'America/Los_Angeles') { } } else { $city = $ex[0]; - if ($continent != t('Miscellaneous')) { + if ($continent != L10n::t('Miscellaneous')) { $o .= ''; - $continent = t('Miscellaneous'); - $o .= ''; + $continent = L10n::t('Miscellaneous'); + $o .= ''; } } - $city = str_replace('_', ' ', t($city)); + $city = str_replace('_', ' ', L10n::t($city)); $selected = (($value == $current) ? " selected=\"selected\" " : ""); $o .= ""; } @@ -192,11 +193,11 @@ function dob($dob) $o = replace_macros(get_markup_template("field_input.tpl"), [ '$field' => [ 'dob', - t('Birthday:'), + L10n::t('Birthday:'), $value, - (((intval($age)) > 0 ) ? t('Age: ') . $age : ""), + (((intval($age)) > 0 ) ? L10n::t('Age: ') . $age : ""), '', - 'placeholder="' . t('YYYY-MM-DD or MM-DD') . '"' + 'placeholder="' . L10n::t('YYYY-MM-DD or MM-DD') . '"' ] ]); @@ -270,7 +271,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"])) { @@ -352,23 +353,23 @@ function relative_date($posted_date, $format = null) { $abs = strtotime($localtime); - if (is_null($posted_date) || $posted_date <= NULL_DATE || $abs === False) { - return t('never'); + if (is_null($posted_date) || $posted_date <= NULL_DATE || $abs === false) { + return L10n::t('never'); } $etime = time() - $abs; if ($etime < 1) { - return t('less than a second ago'); + return L10n::t('less than a second ago'); } - $a = [ 12 * 30 * 24 * 60 * 60 => [ t('year'), t('years')], - 30 * 24 * 60 * 60 => [ t('month'), t('months')], - 7 * 24 * 60 * 60 => [ t('week'), t('weeks')], - 24 * 60 * 60 => [ t('day'), t('days')], - 60 * 60 => [ t('hour'), t('hours')], - 60 => [ t('minute'), t('minutes')], - 1 => [ t('second'), t('seconds')] + $a = [ 12 * 30 * 24 * 60 * 60 => [L10n::t('year'), L10n::t('years')], + 30 * 24 * 60 * 60 => [L10n::t('month'), L10n::t('months')], + 7 * 24 * 60 * 60 => [L10n::t('week'), L10n::t('weeks')], + 24 * 60 * 60 => [L10n::t('day'), L10n::t('days')], + 60 * 60 => [L10n::t('hour'), L10n::t('hours')], + 60 => [L10n::t('minute'), L10n::t('minutes')], + 1 => [L10n::t('second'), L10n::t('seconds')] ]; foreach ($a as $secs => $str) { @@ -377,7 +378,7 @@ function relative_date($posted_date, $format = null) { $r = round($d); // translators - e.g. 22 hours ago, 1 minute ago if (!$format) { - $format = t('%1$d %2$s ago'); + $format = L10n::t('%1$d %2$s ago'); } return sprintf($format, $r, (($r == 1) ? $str[0] : $str[1])); @@ -604,8 +605,8 @@ function update_contact_birthdays() { continue; } - $bdtext = sprintf( t('%s\'s birthday'), $rr['name']); - $bdtext2 = sprintf( t('Happy Birthday %s'), ' [url=' . $rr['url'] . ']' . $rr['name'] . '[/url]') ; + $bdtext = L10n::t('%s\'s birthday', $rr['name']); + $bdtext2 = L10n::t('Happy Birthday %s', ' [url=' . $rr['url'] . ']' . $rr['name'] . '[/url]'); q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`summary`,`desc`,`type`,`adjust`) VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d' ) ", diff --git a/include/dba.php b/include/dba.php index d40090cf4d..154217a4c5 100644 --- a/include/dba.php +++ b/include/dba.php @@ -55,7 +55,7 @@ class dba { if ($install) { if (strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { if (! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { - self::$error = sprintf(t('Cannot locate DNS info for database server \'%s\''), $server); + self::$error = L10n::t('Cannot locate DNS info for database server \'%s\'', $server); self::$connected = false; self::$db = null; return false; diff --git a/include/enotify.php b/include/enotify.php index ab4bbc6db2..44fca484cc 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,17 +27,17 @@ 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'); + $banner = L10n::t('Friendica Notification'); $product = FRIENDICA_PLATFORM; $siteurl = System::baseUrl(true); - $thanks = t('Thank You,'); + $thanks = L10n::t('Thank You,'); $sitename = $a->config['sitename']; if (!x($a->config['admin_name'])) { - $site_admin = sprintf(t('%s Administrator'), $sitename); + $site_admin = L10n::t('%s Administrator', $sitename); } else { - $site_admin = sprintf(t('%1$s, %2$s Administrator'), $a->config['admin_name'], $sitename); + $site_admin = L10n::t('%1$s, %2$s Administrator', $a->config['admin_name'], $sitename); } $sender_name = $sitename; @@ -47,7 +48,7 @@ function notification($params) $sender_email = $a->config['sender_email']; if (empty($sender_email)) { - $sender_email = t('noreply').'@'.$hostname; + $sender_email = L10n::t('noreply').'@'.$hostname; } if ($params['type'] != SYSTEM_EMAIL) { @@ -95,12 +96,12 @@ function notification($params) } if ($params['type'] == NOTIFY_MAIL) { - $subject = sprintf(t('[Friendica:Notify] New mail received at %s'), $sitename); + $subject = L10n::t('[Friendica:Notify] New mail received at %s', $sitename); - $preamble = sprintf(t('%1$s sent you a new private message at %2$s.'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s sent you %2$s.'), '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', '[url=$itemlink]'.t('a private message').'[/url]'); + $preamble = L10n::t('%1$s sent you a new private message at %2$s.', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s sent you %2$s.', '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', '[url=$itemlink]'.L10n::t('a private message').'[/url]'); - $sitelink = t('Please visit %s to view and/or reply to your private messages.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to your private messages.'); $tsitelink = sprintf($sitelink, $siteurl.'/message/'.$params['item']['id']); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $siteurl.'/message/'.$params['item']['id']; @@ -123,7 +124,7 @@ function notification($params) intval($params['uid']) ); if ($p && count($p)) { - pop_lang(); + L10n::popLang(); return; } @@ -138,26 +139,29 @@ function notification($params) $item_post_type = item_post_type($item); // "a post" - $dest_str = sprintf(t('%1$s commented on [url=%2$s]a %3$s[/url]'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $itemlink, - $item_post_type); + $dest_str = L10n::t('%1$s commented on [url=%2$s]a %3$s[/url]', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $itemlink, + $item_post_type + ); // "George Bull's post" if ($item) { - $dest_str = sprintf(t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $itemlink, - $item['author-name'], - $item_post_type); + $dest_str = L10n::t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $itemlink, + $item['author-name'], + $item_post_type + ); } // "your post" if (DBM::is_result($item) && $item['owner-name'] == $item['author-name'] && $item['wall']) { - $dest_str = sprintf(t('%1$s commented on [url=%2$s]your %3$s[/url]'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $itemlink, - $item_post_type); + $dest_str = L10n::t('%1$s commented on [url=%2$s]your %3$s[/url]', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $itemlink, + $item_post_type + ); } // Some mail softwares relies on subject field for threading. @@ -165,102 +169,108 @@ function notification($params) // Before this we have the name of the replier on the subject rendering // differents subjects for messages on the same thread. - $subject = sprintf(t('[Friendica:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $params['source_name']); + $subject = L10n::t('[Friendica:Notify] Comment to conversation #%1$d by %2$s', $parent_id, $params['source_name']); - $preamble = sprintf(t('%s commented on an item/conversation you have been following.'), $params['source_name']); + $preamble = L10n::t('%s commented on an item/conversation you have been following.', $params['source_name']); $epreamble = $dest_str; - $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } if ($params['type'] == NOTIFY_WALL) { - $subject = sprintf(t('[Friendica:Notify] %s posted to your profile wall'), $params['source_name']); + $subject = L10n::t('[Friendica:Notify] %s posted to your profile wall', $params['source_name']); - $preamble = sprintf(t('%1$s posted to your profile wall at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s posted to [url=%2$s]your wall[/url]'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $params['link']); + $preamble = L10n::t('%1$s posted to your profile wall at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s posted to [url=%2$s]your wall[/url]', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $params['link'] + ); - $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } if ($params['type'] == NOTIFY_TAGSELF) { - $subject = sprintf(t('[Friendica:Notify] %s tagged you'), $params['source_name']); + $subject = L10n::t('[Friendica:Notify] %s tagged you', $params['source_name']); - $preamble = sprintf(t('%1$s tagged you at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s [url=%2$s]tagged you[/url].'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $params['link']); + $preamble = L10n::t('%1$s tagged you at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s [url=%2$s]tagged you[/url].', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $params['link'] + ); - $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } if ($params['type'] == NOTIFY_SHARE) { - $subject = sprintf(t('[Friendica:Notify] %s shared a new post'), $params['source_name']); + $subject = L10n::t('[Friendica:Notify] %s shared a new post', $params['source_name']); - $preamble = sprintf(t('%1$s shared a new post at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s [url=%2$s]shared a post[/url].'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $params['link']); + $preamble = L10n::t('%1$s shared a new post at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s [url=%2$s]shared a post[/url].', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $params['link'] + ); - $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } if ($params['type'] == NOTIFY_POKE) { - $subject = sprintf(t('[Friendica:Notify] %1$s poked you'), $params['source_name']); + $subject = L10n::t('[Friendica:Notify] %1$s poked you', $params['source_name']); - $preamble = sprintf(t('%1$s poked you at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s [url=%2$s]poked you[/url].'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $params['link']); + $preamble = L10n::t('%1$s poked you at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s [url=%2$s]poked you[/url].', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $params['link'] + ); - $subject = str_replace('poked', t($params['activity']), $subject); - $preamble = str_replace('poked', t($params['activity']), $preamble); - $epreamble = str_replace('poked', t($params['activity']), $epreamble); + $subject = str_replace('poked', L10n::t($params['activity']), $subject); + $preamble = str_replace('poked', L10n::t($params['activity']), $preamble); + $epreamble = str_replace('poked', L10n::t($params['activity']), $epreamble); - $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } if ($params['type'] == NOTIFY_TAGSHARE) { - $subject = sprintf(t('[Friendica:Notify] %s tagged your post'), $params['source_name']); + $subject = L10n::t('[Friendica:Notify] %s tagged your post', $params['source_name']); - $preamble = sprintf(t('%1$s tagged your post at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s tagged [url=%2$s]your post[/url]'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $itemlink); + $preamble = L10n::t('%1$s tagged your post at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s tagged [url=%2$s]your post[/url]', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $itemlink + ); - $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $sitelink = L10n::t('Please visit %s to view and/or reply to the conversation.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } if ($params['type'] == NOTIFY_INTRO) { - $subject = sprintf(t('[Friendica:Notify] Introduction received')); + $subject = L10n::t('[Friendica:Notify] Introduction received'); - $preamble = sprintf(t('You\'ve received an introduction from \'%1$s\' at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.'), - $itemlink, - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]'); + $preamble = L10n::t('You\'ve received an introduction from \'%1$s\' at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.', + $itemlink, + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]' + ); - $body = sprintf(t('You may visit their profile at %s'), $params['source_link']); + $body = L10n::t('You may visit their profile at %s', $params['source_link']); - $sitelink = t('Please visit %s to approve or reject the introduction.'); + $sitelink = L10n::t('Please visit %s to approve or reject the introduction.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; @@ -268,21 +278,23 @@ function notification($params) switch ($params['verb']) { case ACTIVITY_FRIEND: // someone started to share with user (mostly OStatus) - $subject = sprintf(t('[Friendica:Notify] A new person is sharing with you')); + $subject = L10n::t('[Friendica:Notify] A new person is sharing with you'); - $preamble = sprintf(t('%1$s is sharing with you at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%1$s is sharing with you at %2$s'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $sitename); + $preamble = L10n::t('%1$s is sharing with you at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%1$s is sharing with you at %2$s', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $sitename + ); break; case ACTIVITY_FOLLOW: // someone started to follow the user (mostly OStatus) - $subject = sprintf(t('[Friendica:Notify] You have a new follower')); + $subject = L10n::t('[Friendica:Notify] You have a new follower'); - $preamble = sprintf(t('You have a new follower at %2$s : %1$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('You have a new follower at %2$s : %1$s'), - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', - $sitename); + $preamble = L10n::t('You have a new follower at %2$s : %1$s', $params['source_name'], $sitename); + $epreamble = L10n::t('You have a new follower at %2$s : %1$s', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]', + $sitename + ); break; default: // ACTIVITY_REQ_FRIEND is default activity for notifications @@ -291,19 +303,20 @@ function notification($params) } if ($params['type'] == NOTIFY_SUGGEST) { - $subject = sprintf(t('[Friendica:Notify] Friend suggestion received')); + $subject = L10n::t('[Friendica:Notify] Friend suggestion received'); - $preamble = sprintf(t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.'), - $itemlink, - '[url='.$params['item']['url'].']'.$params['item']['name'].'[/url]', - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]'); + $preamble = L10n::t('You\'ve received a friend suggestion from \'%1$s\' at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.', + $itemlink, + '[url='.$params['item']['url'].']'.$params['item']['name'].'[/url]', + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]' + ); - $body = t('Name:').' '.$params['item']['name']."\n"; - $body .= t('Photo:').' '.$params['item']['photo']."\n"; - $body .= sprintf(t('You may visit their profile at %s'), $params['item']['url']); + $body = L10n::t('Name:').' '.$params['item']['name']."\n"; + $body .= L10n::t('Photo:').' '.$params['item']['photo']."\n"; + $body .= L10n::t('You may visit their profile at %s', $params['item']['url']); - $sitelink = t('Please visit %s to approve or reject the suggestion.'); + $sitelink = L10n::t('Please visit %s to approve or reject the suggestion.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; @@ -311,32 +324,34 @@ function notification($params) if ($params['type'] == NOTIFY_CONFIRM) { if ($params['verb'] == ACTIVITY_FRIEND) { // mutual connection - $subject = sprintf(t('[Friendica:Notify] Connection accepted')); + $subject = L10n::t('[Friendica:Notify] Connection accepted'); - $preamble = sprintf(t('\'%1$s\' has accepted your connection request at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%2$s has accepted your [url=%1$s]connection request[/url].'), - $itemlink, - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]'); + $preamble = L10n::t('\'%1$s\' has accepted your connection request at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%2$s has accepted your [url=%1$s]connection request[/url].', + $itemlink, + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]' + ); - $body = t('You are now mutual friends and may exchange status updates, photos, and email without restriction.'); + $body = L10n::t('You are now mutual friends and may exchange status updates, photos, and email without restriction.'); - $sitelink = t('Please visit %s if you wish to make any changes to this relationship.'); + $sitelink = L10n::t('Please visit %s if you wish to make any changes to this relationship.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; } else { // ACTIVITY_FOLLOW - $subject = sprintf(t('[Friendica:Notify] Connection accepted')); + $subject = L10n::t('[Friendica:Notify] Connection accepted'); - $preamble = sprintf(t('\'%1$s\' has accepted your connection request at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('%2$s has accepted your [url=%1$s]connection request[/url].'), - $itemlink, - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]'); + $preamble = L10n::t('\'%1$s\' has accepted your connection request at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('%2$s has accepted your [url=%1$s]connection request[/url].', + $itemlink, + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]' + ); - $body = sprintf(t('\'%1$s\' has chosen to accept you a "fan", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically.'), $params['source_name']); + $body = L10n::t('\'%1$s\' has chosen to accept you a "fan", which restricts some forms of communication - such as private messaging and some profile interactions. If this is a celebrity or community page, these settings were applied automatically.', $params['source_name']); $body .= "\n\n"; - $body .= sprintf(t('\'%1$s\' may choose to extend this into a two-way or more permissive relationship in the future.'), $params['source_name']); + $body .= L10n::t('\'%1$s\' may choose to extend this into a two-way or more permissive relationship in the future.', $params['source_name']); - $sitelink = t('Please visit %s if you wish to make any changes to this relationship.'); + $sitelink = L10n::t('Please visit %s if you wish to make any changes to this relationship.'); $tsitelink = sprintf($sitelink, $siteurl); $hsitelink = sprintf($sitelink, ''.$sitename.''); $itemlink = $params['link']; @@ -346,17 +361,21 @@ function notification($params) if ($params['type'] == NOTIFY_SYSTEM) { switch($params['event']) { case "SYSTEM_REGISTER_REQUEST": - $subject = sprintf(t('[Friendica System:Notify] registration request')); + $subject = L10n::t('[Friendica System:Notify] registration request'); - $preamble = sprintf(t('You\'ve received a registration request from \'%1$s\' at %2$s'), $params['source_name'], $sitename); - $epreamble = sprintf(t('You\'ve received a [url=%1$s]registration request[/url] from %2$s.'), - $itemlink, - '[url='.$params['source_link'].']'.$params['source_name'].'[/url]'); + $preamble = L10n::t('You\'ve received a registration request from \'%1$s\' at %2$s', $params['source_name'], $sitename); + $epreamble = L10n::t('You\'ve received a [url=%1$s]registration request[/url] from %2$s.', + $itemlink, + '[url='.$params['source_link'].']'.$params['source_name'].'[/url]' + ); - $body = sprintf(t('Full Name: %1$s\nSite Location: %2$s\nLogin Name: %3$s (%4$s)'), - $params['source_name'], $siteurl, $params['source_mail'], $params['source_nick']); + $body = L10n::t('Full Name: %1$s\nSite Location: %2$s\nLogin Name: %3$s (%4$s)', + $params['source_name'], + $siteurl, $params['source_mail'], + $params['source_nick'] + ); - $sitelink = t('Please visit %s to approve or reject the request.'); + $sitelink = L10n::t('Please visit %s to approve or reject the request.'); $tsitelink = sprintf($sitelink, $params['link']); $hsitelink = sprintf($sitelink, ''.$sitename.'

'); $itemlink = $params['link']; @@ -444,7 +463,7 @@ function notification($params) Addon::callHooks('enotify_store', $datarray); if ($datarray['abort']) { - pop_lang(); + L10n::popLang(); return False; } @@ -473,7 +492,7 @@ function notification($params) if ($r) { $notify_id = $r[0]['id']; } else { - pop_lang(); + L10n::popLang(); return False; } @@ -492,8 +511,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/include/event.php b/include/event.php index 64ccf3f53c..f5c4613d45 100644 --- a/include/event.php +++ b/include/event.php @@ -7,6 +7,7 @@ use Friendica\App; use Friendica\Content\Feature; use Friendica\Core\Addon; +use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\System; use Friendica\Database\DBM; @@ -22,7 +23,7 @@ function format_event_html($ev, $simple = false) { 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. $event_start = (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $ev['start'] , $bd_format )) @@ -39,14 +40,14 @@ function format_event_html($ev, $simple = false) { $o .= "
" . bbcode($ev['desc']) . "
"; - $o .= "

" . t('Starts:') . "

" . $event_start . "

"; + $o .= "

" . L10n::t('Starts:') . "

" . $event_start . "

"; if (! $ev['nofinish']) { - $o .= "

" . t('Finishes:') . "

" . $event_end ."

"; + $o .= "

" . L10n::t('Finishes:') . "

" . $event_end ."

"; } if (strlen($ev['location'])) { - $o .= "

" . t('Location:') . "

" . $ev['location'] . "

"; + $o .= "

" . L10n::t('Location:') . "

" . $ev['location'] . "

"; } return $o; @@ -56,13 +57,13 @@ function format_event_html($ev, $simple = false) { $o .= '
' . bbcode($ev['summary']) . '
' . "\r\n"; - $o .= '
' . t('Starts:') . ' ' . L10n::t('Starts:') . ' '.$event_start . '
' . "\r\n"; if (! $ev['nofinish']) { - $o .= '
' . t('Finishes:') . ' ' . L10n::t('Finishes:') . ' '.$event_end . '
' . "\r\n"; @@ -71,7 +72,7 @@ function format_event_html($ev, $simple = false) { $o .= '
' . bbcode($ev['desc']) . '
' . "\r\n"; if (strlen($ev['location'])) { - $o .= '
' . t('Location:') . ' ' + $o .= '
' . L10n::t('Location:') . ' ' . bbcode($ev['location']) . '
' . "\r\n"; @@ -425,60 +426,60 @@ function get_event_strings() { $i18n = [ "firstDay" => $firstDay, - "allday" => t("all-day"), + "allday" => L10n::t("all-day"), - "Sun" => t("Sun"), - "Mon" => t("Mon"), - "Tue" => t("Tue"), - "Wed" => t("Wed"), - "Thu" => t("Thu"), - "Fri" => t("Fri"), - "Sat" => t("Sat"), + "Sun" => L10n::t("Sun"), + "Mon" => L10n::t("Mon"), + "Tue" => L10n::t("Tue"), + "Wed" => L10n::t("Wed"), + "Thu" => L10n::t("Thu"), + "Fri" => L10n::t("Fri"), + "Sat" => L10n::t("Sat"), - "Sunday" => t("Sunday"), - "Monday" => t("Monday"), - "Tuesday" => t("Tuesday"), - "Wednesday" => t("Wednesday"), - "Thursday" => t("Thursday"), - "Friday" => t("Friday"), - "Saturday" => t("Saturday"), + "Sunday" => L10n::t("Sunday"), + "Monday" => L10n::t("Monday"), + "Tuesday" => L10n::t("Tuesday"), + "Wednesday" => L10n::t("Wednesday"), + "Thursday" => L10n::t("Thursday"), + "Friday" => L10n::t("Friday"), + "Saturday" => L10n::t("Saturday"), - "Jan" => t("Jan"), - "Feb" => t("Feb"), - "Mar" => t("Mar"), - "Apr" => t("Apr"), - "May" => t("May"), - "Jun" => t("Jun"), - "Jul" => t("Jul"), - "Aug" => t("Aug"), - "Sep" => t("Sept"), - "Oct" => t("Oct"), - "Nov" => t("Nov"), - "Dec" => t("Dec"), + "Jan" => L10n::t("Jan"), + "Feb" => L10n::t("Feb"), + "Mar" => L10n::t("Mar"), + "Apr" => L10n::t("Apr"), + "May" => L10n::t("May"), + "Jun" => L10n::t("Jun"), + "Jul" => L10n::t("Jul"), + "Aug" => L10n::t("Aug"), + "Sep" => L10n::t("Sept"), + "Oct" => L10n::t("Oct"), + "Nov" => L10n::t("Nov"), + "Dec" => L10n::t("Dec"), - "January" => t("January"), - "February" => t("February"), - "March" => t("March"), - "April" => t("April"), - "May" => t("May"), - "June" => t("June"), - "July" => t("July"), - "August" => t("August"), - "September" => t("September"), - "October" => t("October"), - "November" => t("November"), - "December" => t("December"), + "January" => L10n::t("January"), + "February" => L10n::t("February"), + "March" => L10n::t("March"), + "April" => L10n::t("April"), + "May" => L10n::t("May"), + "June" => L10n::t("June"), + "July" => L10n::t("July"), + "August" => L10n::t("August"), + "September" => L10n::t("September"), + "October" => L10n::t("October"), + "November" => L10n::t("November"), + "December" => L10n::t("December"), - "today" => t("today"), - "month" => t("month"), - "week" => t("week"), - "day" => t("day"), + "today" => L10n::t("today"), + "month" => L10n::t("month"), + "week" => L10n::t("week"), + "day" => L10n::t("day"), - "noevent" => t("No events to display"), + "noevent" => L10n::t("No events to display"), - "dtstart_label" => t("Starts:"), - "dtend_label" => t("Finishes:"), - "location_label" => t("Location:") + "dtstart_label" => L10n::t("Starts:"), + "dtend_label" => L10n::t("Finishes:"), + "location_label" => L10n::t("Location:") ]; return $i18n; @@ -588,7 +589,7 @@ function process_events($arr) { $events=[]; $last_date = ''; - $fmt = t('l, F j'); + $fmt = L10n::t('l, F j'); if (count($arr)) { foreach ($arr as $rr) { $j = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['start'], 'j') : datetime_convert('UTC', 'UTC', $rr['start'], 'j')); @@ -612,9 +613,9 @@ function process_events($arr) { $copy = null; $drop = null; if (local_user() && local_user() == $rr['uid'] && $rr['type'] == 'event') { - $edit = ((! $rr['cid']) ? [System::baseUrl() . '/events/event/' . $rr['id'], t('Edit event'), '', ''] : null); - $copy = ((! $rr['cid']) ? [System::baseUrl() . '/events/copy/' . $rr['id'], t('Duplicate event'), '', ''] : null); - $drop = [System::baseUrl() . '/events/drop/' . $rr['id'], t('Delete event'), '', '']; + $edit = ((! $rr['cid']) ? [System::baseUrl() . '/events/event/' . $rr['id'], L10n::t('Edit event'), '', ''] : null); + $copy = ((! $rr['cid']) ? [System::baseUrl() . '/events/copy/' . $rr['id'], L10n::t('Duplicate event'), '', ''] : null); + $drop = [System::baseUrl() . '/events/drop/' . $rr['id'], L10n::t('Delete event'), '', '']; } $title = strip_tags(html_entity_decode(bbcode($rr['summary']), ENT_QUOTES, 'UTF-8')); @@ -641,7 +642,7 @@ function process_events($arr) { 'is_first' => $is_first, 'item' => $rr, 'html' => $html, - 'plink' => [$rr['plink'], t('link to source'), '', ''], + 'plink' => [$rr['plink'], L10n::t('link to source'), '', ''], ]; } } @@ -901,9 +902,9 @@ function widget_events() { } return replace_macros(get_markup_template("events_aside.tpl"), [ - '$etitle' => t("Export"), - '$export_ical' => t("Export calendar as ical"), - '$export_csv' => t("Export calendar as csv"), + '$etitle' => L10n::t("Export"), + '$export_ical' => L10n::t("Export calendar as ical"), + '$export_csv' => L10n::t("Export calendar as csv"), '$user' => $user ]); } @@ -919,9 +920,9 @@ function format_event_item($item) { $finish = false; // Set the different time formats. - $dformat = t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8:01 AM. - $dformat_short = t('D g:i A'); // Fri 8:01 AM. - $tformat = t('g:i A'); // 8:01 AM. + $dformat = L10n::t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8:01 AM. + $dformat_short = L10n::t('D g:i A'); // Fri 8:01 AM. + $tformat = L10n::t('g:i A'); // 8:01 AM. // Convert the time to different formats. $dtstart_dt = (($item['event-adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $item['event-start'], $dformat)) : day_translate(datetime_convert('UTC', 'UTC', $item['event-start'], $dformat))); @@ -971,11 +972,11 @@ function format_event_item($item) { $event = replace_macros(get_markup_template('event_stream_item.tpl'), [ '$id' => $item['event-id'], '$title' => prepare_text($item['event-summary']), - '$dtstart_label' => t('Starts:'), + '$dtstart_label' => L10n::t('Starts:'), '$dtstart_title' => $dtstart_title, '$dtstart_dt' => $dtstart_dt, '$finish' => $finish, - '$dtend_label' => t('Finishes:'), + '$dtend_label' => L10n::t('Finishes:'), '$dtend_title' => $dtend_title, '$dtend_dt' => $dtend_dt, '$month_short' => $month_short, @@ -989,10 +990,10 @@ function format_event_item($item) { '$author_link' => $profile_link, '$author_avatar' => $item['author-avatar'], '$description' => prepare_text($item['event-desc']), - '$location_label' => t('Location:'), - '$show_map_label' => t('Show map'), - '$hide_map_label' => t('Hide map'), - '$map_btn_label' => t('Show map'), + '$location_label' => L10n::t('Location:'), + '$show_map_label' => L10n::t('Show map'), + '$hide_map_label' => L10n::t('Hide map'), + '$map_btn_label' => L10n::t('Show map'), '$location' => $location ]); diff --git a/include/items.php b/include/items.php index 3c20bc41cf..85da1d1ccf 100644 --- a/include/items.php +++ b/include/items.php @@ -6,6 +6,7 @@ use Friendica\App; use Friendica\Content\Feature; use Friendica\Core\Addon; use Friendica\Core\Config; +use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\Worker; use Friendica\Core\System; @@ -1495,7 +1496,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) { 'to_email' => $r[0]['email'], 'uid' => $r[0]['uid'], 'link' => System::baseUrl() . '/notifications/intro', - 'source_name' => ((strlen(stripslashes($contact_record['name']))) ? stripslashes($contact_record['name']) : t('[Name Withheld]')), + 'source_name' => ((strlen(stripslashes($contact_record['name']))) ? stripslashes($contact_record['name']) : L10n::t('[Name Withheld]')), 'source_link' => $contact_record['url'], 'source_photo' => $contact_record['photo'], 'verb' => ($sharing ? ACTIVITY_FRIEND : ACTIVITY_FOLLOW), @@ -1867,7 +1868,7 @@ function drop_item($id) { ); if (!DBM::is_result($r)) { - notice(t('Item not found.') . EOL); + notice(L10n::t('Item not found.') . EOL); goaway(System::baseUrl() . '/' . $_SESSION['return_url']); } @@ -1907,12 +1908,12 @@ function drop_item($id) { return replace_macros(get_markup_template('confirm.tpl'), [ '$method' => 'get', - '$message' => t('Do you really want to delete this item?'), + '$message' => L10n::t('Do you really want to delete this item?'), '$extra_inputs' => $inputs, - '$confirm' => t('Yes'), + '$confirm' => L10n::t('Yes'), '$confirm_url' => $query['base'], '$confirm_name' => 'confirmed', - '$cancel' => t('Cancel'), + '$cancel' => L10n::t('Cancel'), ]); } // Now check how the user responded to the confirmation query @@ -1926,7 +1927,7 @@ function drop_item($id) { goaway(System::baseUrl() . '/' . $_SESSION['return_url']); //NOTREACHED } else { - notice(t('Permission denied.') . EOL); + notice(L10n::t('Permission denied.') . EOL); goaway(System::baseUrl() . '/' . $_SESSION['return_url']); //NOTREACHED } @@ -2015,13 +2016,13 @@ function posted_date_widget($url, $uid, $wall) { $cutoff = ((array_key_exists($cutoff_year, $ret))? true : false); $o = replace_macros(get_markup_template('posted_date_widget.tpl'),[ - '$title' => t('Archives'), + '$title' => L10n::t('Archives'), '$size' => $visible_years, '$cutoff_year' => $cutoff_year, '$cutoff' => $cutoff, '$url' => $url, '$dates' => $ret, - '$showmore' => t('show more') + '$showmore' => L10n::t('show more') ]); return $o; diff --git a/include/like.php b/include/like.php index 1dbdcc936d..ae344d4269 100644 --- a/include/like.php +++ b/include/like.php @@ -1,7 +1,10 @@ ' . "\n") ; diff --git a/include/network.php b/include/network.php index a9110837d0..73fa80f981 100644 --- a/include/network.php +++ b/include/network.php @@ -4,6 +4,7 @@ */ use Friendica\App; use Friendica\Core\Addon; +use Friendica\Core\L10n; use Friendica\Core\System; use Friendica\Core\Config; use Friendica\Network\Probe; @@ -737,7 +738,7 @@ function scale_external_images($srctext, $include_link = true, $scale_replace = $mtch[0], '[img=' . $new_width . 'x' . $new_height. ']' . $scaled . '[/img]' . "\n" . (($include_link) - ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n" + ? '[url=' . $mtch[1] . ']' . L10n::t('view full size') . '[/url]' . "\n" : ''), $s ); diff --git a/include/pgettext.php b/include/pgettext.php deleted file mode 100644 index fa3260cb1a..0000000000 --- a/include/pgettext.php +++ /dev/null @@ -1,233 +0,0 @@ -3 ) { - $dashpos = strpos($lang_parse[1][$i], '-'); - if (!in_array(substr($lang_parse[1][$i], 0, $dashpos), $lang_list ) ) { - $lang_list[] = strtolower(substr($lang_parse[1][$i], 0, $dashpos)); - } - } - } - } - } - - // check if we have translations for the preferred languages and pick the 1st that has - foreach ($lang_list as $lang) { - if ($lang === 'en' || (file_exists("view/lang/$lang") && is_dir("view/lang/$lang"))) { - $preferred = $lang; - break; - } - } - if (isset($preferred)) { - return $preferred; - } - - // in case none matches, get the system wide configured language, or fall back to English - return Config::get('system', 'language', 'en'); -} - - -function push_lang($language) { - global $lang, $a; - - $a->langsave = $lang; - - if ($language === $lang) { - return; - } - - if (isset($a->strings) && count($a->strings)) { - $a->stringsave = $a->strings; - } - $a->strings = []; - load_translation_table($language); - $lang = $language; -} - -function pop_lang() { - global $lang, $a; - - if ($lang === $a->langsave) { - return; - } - - if (isset($a->stringsave)) { - $a->strings = $a->stringsave; - } else { - $a->strings = []; - } - - $lang = $a->langsave; -} - -// l - -/** - * load string translation table for alternate language - * - * first addon strings are loaded, then globals - * - * @param string $lang language code to load - */ -function load_translation_table($lang) { - $a = get_app(); - - $a->strings = []; - // 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"); - } - } - - if (file_exists("view/lang/$lang/strings.php")) { - include("view/lang/$lang/strings.php"); - } - -} - -/** - * @brief Return the localized version of the provided string with optional string interpolation - * - * This function takes a english string as parameter, and if a localized version - * exists for the current language, substitutes it before performing an eventual - * string interpolation (sprintf) with additional optional arguments. - * - * Usages: - * - t('This is an example') - * - t('URL %s returned no result', $url) - * - t('Current version: %s, new version: %s', $current_version, $new_version) - * - * @param string $s - * @return string - */ -function t($s) -{ - $a = get_app(); - - if (x($a->strings, $s)) { - $t = $a->strings[$s]; - $s = is_array($t) ? $t[0] : $t; - } - if (func_num_args() > 1) { - $args = array_slice(func_get_args(), 1); - $s = @vsprintf($s, $args); - } - - return $s; -} - -/** - * @brief Return the localized version of a singular/plural string with optional string interpolation - * - * This function takes two english strings as parameters, singular and plural, as - * well as a count. If a localized version exists for the current language, they - * are used instead. Discrimination between singular and plural is done using the - * localized function if any or the default one. Finally, a string interpolation - * is performed using the count as parameter. - * - * Usages: - * - tt('Like', 'Likes', $count) - * - tt("%s user deleted", "%s users deleted", count($users)) - * - * @global type $lang - * @param string $singular - * @param string $plural - * @param int $count - * @return string - */ -function tt($singular, $plural, $count) -{ - global $lang; - $a = get_app(); - - if (x($a->strings, $singular)) { - $t = $a->strings[$singular]; - if (is_array($t)) { - $plural_function = 'string_plural_select_' . str_replace('-', '_', $lang); - if (function_exists($plural_function)) { - $plural_function = 'string_plural_select_default'; - } - $i = $plural_function($count); - $s = $t[$i]; - } else { - $s = $t; - } - } elseif (string_plural_select_default($count)) { - $s = $plural; - } else { - $s = $singular; - } - - $s = @sprintf($s, $count); - - return $s; -} - -// provide a fallback which will not collide with -// a function defined in any language file -function string_plural_select_default($n) -{ - return $n != 1; -} - - - -/** - * @brief Return installed languages codes as associative array - * - * Scans the view/lang directory for the existence of "strings.php" files, and - * returns an alphabetical list of their folder names (@-char language codes). - * Adds the english language if it's missing from the list. - * - * Ex: array('de' => 'de', 'en' => 'en', 'fr' => 'fr', ...) - * - * @return array - */ -function get_available_languages() { - $langs = []; - $strings_file_paths = glob('view/lang/*/strings.php'); - - if (is_array($strings_file_paths) && count($strings_file_paths)) { - if (!in_array('view/lang/en/strings.php', $strings_file_paths)) { - $strings_file_paths[] = 'view/lang/en/strings.php'; - } - asort($strings_file_paths); - foreach ($strings_file_paths as $strings_file_path) { - $path_array = explode('/', $strings_file_path); - $langs[$path_array[2]] = $path_array[2]; - } - } - return $langs; -} diff --git a/include/security.php b/include/security.php index d1387ca226..39846a8328 100644 --- a/include/security.php +++ b/include/security.php @@ -1,8 +1,11 @@ user['login_date'] <= NULL_DATE) { $_SESSION['return_url'] = 'profile_photo/new'; $a->module = 'profile_photo'; - info(t("Welcome ") . $a->user['username'] . EOL); - info(t('Please upload a profile photo.') . EOL); + info(L10n::t("Welcome ") . $a->user['username'] . EOL); + info(L10n::t('Please upload a profile photo.') . EOL); } else { - info(t("Welcome back ") . $a->user['username'] . EOL); + info(L10n::t("Welcome back ") . $a->user['username'] . EOL); } } @@ -401,7 +404,7 @@ function check_form_security_token($typename = '', $formname = 'form_security_to function check_form_security_std_err_msg() { - return t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it.') . EOL; + return L10n::t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it.') . EOL; } function check_form_security_token_redirectOnErr($err_redirect, $typename = '', $formname = 'form_security_token') diff --git a/include/tags.php b/include/tags.php index 4b45510b20..772255ed49 100644 --- a/include/tags.php +++ b/include/tags.php @@ -1,10 +1,10 @@ t('Tags'), + '$title' => L10n::t('Tags'), '$tags' => $tags ]); } diff --git a/include/text.php b/include/text.php index 6856d28aa3..ffa0ad0ed6 100644 --- a/include/text.php +++ b/include/text.php @@ -8,6 +8,7 @@ use Friendica\Content\Feature; use Friendica\Content\Smilies; use Friendica\Core\Addon; use Friendica\Core\Config; +use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\System; use Friendica\Database\DBM; @@ -294,14 +295,14 @@ function paginate_data(App $a, $count = null) { if (!is_null($count)) { // minimal pager (newer / older) $data['class'] = 'pager'; - _l($data, 'prev', $url . '&page=' . ($a->pager['page'] - 1), t('newer'), 'previous' . ($a->pager['page'] == 1 ? ' disabled' : '')); - _l($data, 'next', $url . '&page=' . ($a->pager['page'] + 1), t('older'), 'next' . ($count <= 0 ? ' disabled' : '')); + _l($data, 'prev', $url . '&page=' . ($a->pager['page'] - 1), L10n::t('newer'), 'previous' . ($a->pager['page'] == 1 ? ' disabled' : '')); + _l($data, 'next', $url . '&page=' . ($a->pager['page'] + 1), L10n::t('older'), 'next' . ($count <= 0 ? ' disabled' : '')); } else { // full pager (first / prev / 1 / 2 / ... / 14 / 15 / next / last) $data['class'] = 'pagination'; if ($a->pager['total'] > $a->pager['itemspage']) { - _l($data, 'first', $url . '&page=1', t('first'), $a->pager['page'] == 1 ? 'disabled' : ''); - _l($data, 'prev', $url . '&page=' . ($a->pager['page'] - 1), t('prev'), $a->pager['page'] == 1 ? 'disabled' : ''); + _l($data, 'first', $url . '&page=1', L10n::t('first'), $a->pager['page'] == 1 ? 'disabled' : ''); + _l($data, 'prev', $url . '&page=' . ($a->pager['page'] - 1), L10n::t('prev'), $a->pager['page'] == 1 ? 'disabled' : ''); $numpages = $a->pager['total'] / $a->pager['itemspage']; @@ -335,8 +336,8 @@ function paginate_data(App $a, $count = null) { $data['pages'] = $pages; $lastpage = (($numpages > intval($numpages)) ? intval($numpages)+1 : $numpages); - _l($data, 'next', $url . '&page=' . ($a->pager['page'] + 1), t('next'), $a->pager['page'] == $lastpage ? 'disabled' : ''); - _l($data, 'last', $url . '&page=' . $lastpage, t('last'), $a->pager['page'] == $lastpage ? 'disabled' : ''); + _l($data, 'next', $url . '&page=' . ($a->pager['page'] + 1), L10n::t('next'), $a->pager['page'] == $lastpage ? 'disabled' : ''); + _l($data, 'last', $url . '&page=' . $lastpage, L10n::t('last'), $a->pager['page'] == $lastpage ? 'disabled' : ''); } } @@ -390,8 +391,8 @@ function alt_pager(App $a, $i) { function scroll_loader() { $tpl = get_markup_template("scroll_loader.tpl"); return replace_macros($tpl, [ - 'wait' => t('Loading more entries...'), - 'end' => t('The end') + 'wait' => L10n::t('Loading more entries...'), + 'end' => L10n::t('The end') ]); } @@ -927,7 +928,7 @@ function contact_block() { $total = intval($r[0]['total']); } if (!$total) { - $contacts = t('No contacts'); + $contacts = L10n::t('No contacts'); $micropro = null; } else { // Splitting the query in two parts makes it much faster @@ -951,10 +952,10 @@ function contact_block() { dbesc(implode(",", $contacts))); if (DBM::is_result($r)) { - $contacts = sprintf(tt('%d Contact','%d Contacts', $total),$total); + $contacts = L10n::tt('%d Contact', '%d Contacts', $total); $micropro = []; foreach ($r as $rr) { - $micropro[] = micropro($rr,true,'mpfriend'); + $micropro[] = micropro($rr, true, 'mpfriend'); } } } @@ -964,7 +965,7 @@ function contact_block() { $o = replace_macros($tpl, [ '$contacts' => $contacts, '$nickname' => $a->profile['nickname'], - '$viewcontacts' => t('View Contacts'), + '$viewcontacts' => L10n::t('View Contacts'), '$micropro' => $micropro, ]); @@ -1053,27 +1054,27 @@ function search($s, $id = 'search-box', $url = 'search', $save = false, $aside = if (strpos($s, '#') === 0) { $mode = 'tag'; } - $save_label = $mode === 'text' ? t('Save') : t('Follow'); + $save_label = $mode === 'text' ? L10n::t('Save') : L10n::t('Follow'); $values = [ '$s' => htmlspecialchars($s), '$id' => $id, '$action_url' => $url, - '$search_label' => t('Search'), + '$search_label' => L10n::t('Search'), '$save_label' => $save_label, '$savedsearch' => Feature::isEnabled(local_user(),'savedsearch'), - '$search_hint' => t('@name, !forum, #tags, content'), + '$search_hint' => L10n::t('@name, !forum, #tags, content'), '$mode' => $mode ]; if (!$aside) { $values['$searchoption'] = [ - t("Full Text"), - t("Tags"), - t("Contacts")]; + L10n::t("Full Text"), + L10n::t("Tags"), + L10n::t("Contacts")]; if (Config::get('system','poco_local_search')) { - $values['$searchoption'][] = t("Forums"); + $values['$searchoption'][] = L10n::t("Forums"); } } @@ -1117,12 +1118,12 @@ function get_poke_verbs() { // value is array containing past tense verb, translation of present, translation of past $arr = [ - 'poke' => ['poked', t('poke'), t('poked')], - 'ping' => ['pinged', t('ping'), t('pinged')], - 'prod' => ['prodded', t('prod'), t('prodded')], - 'slap' => ['slapped', t('slap'), t('slapped')], - 'finger' => ['fingered', t('finger'), t('fingered')], - 'rebuff' => ['rebuffed', t('rebuff'), t('rebuffed')], + 'poke' => ['poked', L10n::t('poke'), L10n::t('poked')], + 'ping' => ['pinged', L10n::t('ping'), L10n::t('pinged')], + 'prod' => ['prodded', L10n::t('prod'), L10n::t('prodded')], + 'slap' => ['slapped', L10n::t('slap'), L10n::t('slapped')], + 'finger' => ['fingered', L10n::t('finger'), L10n::t('fingered')], + 'rebuff' => ['rebuffed', L10n::t('rebuff'), L10n::t('rebuffed')], ]; Addon::callHooks('poke_verbs', $arr); return $arr; @@ -1136,11 +1137,11 @@ function get_poke_verbs() { */ function day_translate($s) { $ret = str_replace(['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'], - [t('Monday'), t('Tuesday'), t('Wednesday'), t('Thursday'), t('Friday'), t('Saturday'), t('Sunday')], + [L10n::t('Monday'), L10n::t('Tuesday'), L10n::t('Wednesday'), L10n::t('Thursday'), L10n::t('Friday'), L10n::t('Saturday'), L10n::t('Sunday')], $s); $ret = str_replace(['January','February','March','April','May','June','July','August','September','October','November','December'], - [t('January'), t('February'), t('March'), t('April'), t('May'), t('June'), t('July'), t('August'), t('September'), t('October'), t('November'), t('December')], + [L10n::t('January'), L10n::t('February'), L10n::t('March'), L10n::t('April'), L10n::t('May'), L10n::t('June'), L10n::t('July'), L10n::t('August'), L10n::t('September'), L10n::t('October'), L10n::t('November'), L10n::t('December')], $ret); return $ret; @@ -1154,10 +1155,10 @@ function day_translate($s) { */ function day_short_translate($s) { $ret = str_replace(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - [t('Mon'), t('Tue'), t('Wed'), t('Thu'), t('Fri'), t('Sat'), t('Sun')], + [L10n::t('Mon'), L10n::t('Tue'), L10n::t('Wed'), L10n::t('Thu'), L10n::t('Fri'), L10n::t('Sat'), L10n::t('Sun')], $s); $ret = str_replace(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov','Dec'], - [t('Jan'), t('Feb'), t('Mar'), t('Apr'), t('May'), ('Jun'), t('Jul'), t('Aug'), t('Sep'), t('Oct'), t('Nov'), t('Dec')], + [L10n::t('Jan'), L10n::t('Feb'), L10n::t('Mar'), L10n::t('Apr'), L10n::t('May'), ('Jun'), L10n::t('Jul'), L10n::t('Aug'), L10n::t('Sep'), L10n::t('Oct'), L10n::t('Nov'), L10n::t('Dec')], $ret); return $ret; } @@ -1358,7 +1359,7 @@ function prepare_body(&$item, $attach = false, $preview = false) { $as .= replace_macros(get_markup_template('video_top.tpl'), [ '$video' => [ 'id' => $id, - 'title' => t('View Video'), + 'title' => L10n::t('View Video'), 'src' => $the_url, 'mime' => $mime, ], @@ -1375,7 +1376,7 @@ function prepare_body(&$item, $attach = false, $preview = false) { } $title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1])); - $title .= ' ' . $mtch[2] . ' ' . t('bytes'); + $title .= ' ' . $mtch[2] . ' ' . L10n::t('bytes'); $icon = '
'; $as .= '' . $icon . ''; @@ -1410,7 +1411,7 @@ function prepare_body(&$item, $attach = false, $preview = false) { while ((strpos($s, $spoilersearch) !== false)) { $pos = strpos($s, $spoilersearch); $rnd = random_string(8); - $spoilerreplace = '
' . sprintf(t('Click to open/close')) . ''. + $spoilerreplace = '
' . L10n::t('Click to open/close') . ''. '