From 6f6e418f696aae60e165d9fb8621d6de13ecba69 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Mon, 21 Mar 2016 11:36:21 -0500
Subject: [PATCH] i18n: Eliminate duplicate or incorrect texts

This is my attempt at removing similar texts from the translator work load.
It also makes an attempt at dropping some misspelled words and works toward
standardizing some phrases.
---
 include/ajax.content.php                      |  4 +-
 include/ajax.draft.php                        |  9 ----
 include/ajax.kbase.php                        |  2 +-
 include/ajax.tasks.php                        | 39 ++++++++-------
 include/ajax.tickets.php                      | 47 ++++++++++---------
 include/ajax.users.php                        |  2 +-
 include/class.api.php                         |  4 +-
 include/class.auth.php                        |  4 +-
 include/class.canned.php                      |  6 +--
 include/class.dept.php                        |  8 ++--
 include/class.email.php                       |  8 ++--
 include/class.filter.php                      |  8 ++--
 include/class.filter_action.php               |  2 +-
 include/class.forms.php                       |  8 ++--
 include/class.page.php                        |  2 +-
 include/class.role.php                        |  2 +-
 include/class.search.php                      |  2 +-
 include/class.sla.php                         | 10 ++--
 include/class.staff.php                       | 14 +++---
 include/class.task.php                        |  4 +-
 include/class.team.php                        |  8 ++--
 include/class.template.php                    | 10 ++--
 include/class.ticket.php                      | 14 +++---
 include/class.topic.php                       |  8 ++--
 include/class.user.php                        |  2 +-
 include/class.variable.php                    |  4 +-
 include/cli/modules/i18n.php                  |  1 +
 include/client/accesslink.inc.php             |  2 +-
 include/client/faq.inc.php                    |  4 +-
 include/staff/apikey.inc.php                  |  2 +-
 include/staff/apikeys.inc.php                 |  2 +-
 include/staff/banrule.inc.php                 |  4 +-
 include/staff/categories.inc.php              | 16 ++-----
 include/staff/department.inc.php              |  2 +-
 include/staff/dynamic-form.inc.php            |  2 +-
 include/staff/dynamic-list.inc.php            |  2 +-
 include/staff/email.inc.php                   |  3 +-
 include/staff/faq-category.inc.php            |  2 +-
 include/staff/faq-view.inc.php                |  2 +-
 include/staff/faq.inc.php                     |  2 +-
 include/staff/filter.inc.php                  |  4 +-
 include/staff/filters.inc.php                 |  2 +-
 include/staff/helptopic.inc.php               |  6 +--
 include/staff/login.tpl.php                   |  2 +-
 include/staff/page.inc.php                    |  8 ++--
 include/staff/profile.inc.php                 |  4 +-
 include/staff/settings-emails.inc.php         |  2 +-
 include/staff/settings-tasks.inc.php          |  2 +-
 include/staff/slaplan.inc.php                 |  2 +-
 include/staff/slaplans.inc.php                |  2 +-
 include/staff/staff.inc.php                   |  2 +-
 include/staff/staffmembers.inc.php            |  2 +-
 include/staff/syslogs.inc.php                 |  7 +--
 include/staff/template.inc.php                |  2 +-
 include/staff/templates/task-view.tmpl.php    |  8 ++--
 include/staff/templates/user-account.tmpl.php |  2 +-
 include/staff/ticket-open.inc.php             |  2 +-
 include/staff/ticket-view.inc.php             |  3 +-
 include/upgrader/done.inc.php                 |  2 +-
 include/upgrader/prereq.inc.php               |  2 +-
 include/upgrader/upgrade.inc.php              |  5 +-
 pwreset.php                                   |  2 +-
 scp/apikeys.php                               |  8 ++--
 scp/banlist.php                               |  4 +-
 scp/canned.php                                |  8 ++--
 scp/categories.php                            |  2 +-
 scp/departments.php                           |  4 +-
 scp/faq.php                                   |  6 +--
 scp/filters.php                               |  4 +-
 scp/forms.php                                 |  2 +-
 scp/helptopics.php                            |  2 +-
 scp/lists.php                                 | 14 +++---
 scp/orgs.php                                  |  2 +-
 scp/pages.php                                 |  6 +--
 scp/plugins.php                               |  2 +-
 scp/roles.php                                 | 10 ++--
 scp/slas.php                                  |  4 +-
 scp/staff.php                                 |  2 +-
 scp/tasks.php                                 |  6 +--
 scp/teams.php                                 |  4 +-
 scp/tickets.php                               |  6 ++-
 scp/users.php                                 |  4 +-
 setup/inc/class.installer.php                 |  2 +-
 setup/inc/install-prereq.inc.php              | 22 ++++-----
 setup/inc/subscribe.inc.php                   |  2 +-
 setup/tips.php                                |  2 +-
 tickets.php                                   |  2 +-
 87 files changed, 235 insertions(+), 245 deletions(-)

diff --git a/include/ajax.content.php b/include/ajax.content.php
index c12d56ab0..0e461b53e 100644
--- a/include/ajax.content.php
+++ b/include/ajax.content.php
@@ -61,7 +61,7 @@ class ContentAjaxAPI extends AjaxController {
                     <tr><td>%{ticket.phone}</td><td>'.__('Phone number | ext').'</td></tr>
                     <tr><td>%{ticket.status}</td><td>'.__('Status').'</td></tr>
                     <tr><td>%{ticket.priority}</td><td>'.__('Priority').'</td></tr>
-                    <tr><td>%{ticket.assigned}</td><td>'.__('Assigned agent and/or team').'</td></tr>
+                    <tr><td>%{ticket.assigned}</td><td>'.__('Assigned Agent / Team').'</td></tr>
                     <tr><td>%{ticket.create_date}</td><td>'.__('Date created').'</td></tr>
                     <tr><td>%{ticket.due_date}</td><td>'.__('Due date').'</td></tr>
                     <tr><td>%{ticket.close_date}</td><td>'.__('Date closed').'</td></tr>
@@ -82,7 +82,7 @@ class ContentAjaxAPI extends AjaxController {
                     <tr><td>%{response}</td><td>'.__('Outgoing response').'</td></tr>
                     <tr><td>%{comments}</td><td>'.__('Assign/transfer comments').'</td></tr>
                     <tr><td>%{note}</td><td>'.__('Internal note <em>(expandable)</em>').'</td></tr>
-                    <tr><td>%{assignee}</td><td>'.__('Assigned agent/team').'</td></tr>
+                    <tr><td>%{assignee}</td><td>'.__('Assigned Agent / Team').'</td></tr>
                     <tr><td>%{assigner}</td><td>'.__('Agent assigning the ticket').'</td></tr>
                     <tr><td>%{url}</td><td>'.__('osTicket\'s base url (FQDN)').'</td></tr>
                     <tr><td>%{reset_link}</td>
diff --git a/include/ajax.draft.php b/include/ajax.draft.php
index c18dca63d..e1bb78a04 100644
--- a/include/ajax.draft.php
+++ b/include/ajax.draft.php
@@ -354,14 +354,6 @@ class DraftAjaxAPI extends AjaxController {
             Http::response(500, 'Unable to lookup files');
 
         $files = array();
-        $folders = array(
-            'C' => __('Canned Responses'),
-            'F' => __('FAQ Articles'),
-            'T' => __('Email Templates'),
-            'L' => __('Logos'),
-            'P' => __('Pages'),
-            'H' => __('This Thread'),
-        );
         while (list($id, $type, $name) = db_fetch_row($res)) {
             $f = AttachmentFile::lookup((int) $id);
             $url = $f->getDownloadUrl();
@@ -371,7 +363,6 @@ class DraftAjaxAPI extends AjaxController {
                 'thumb'=>$url.($type != 'H' ? '&s=128' : ''),
                 'image'=>$url,
                 'title'=>$name ?: $f->getName(),
-                'folder'=>$folders[$type]
             );
         }
         echo JsonDataEncoder::encode($files);
diff --git a/include/ajax.kbase.php b/include/ajax.kbase.php
index 3fd140966..63ff371f5 100644
--- a/include/ajax.kbase.php
+++ b/include/ajax.kbase.php
@@ -45,7 +45,7 @@ class KbaseAjaxAPI extends AjaxController {
                 '<div style="width:650px;">
                  <strong>%s</strong><div class="thread-body">%s</div>
                  <div class="clear"></div>
-                 <div class="faded">'.__('Last updated %s').'</div>
+                 <div class="faded">'.__('Last Updated %s').'</div>
                  <hr>
                  <a href="faq.php?id=%d">'.__('View').'</a> | <a href="faq.php?id=%d">'.__('Attachments (%d)').'</a>',
                 $faq->getQuestion(),
diff --git a/include/ajax.tasks.php b/include/ajax.tasks.php
index 6fa9e0526..ee727bbfd 100644
--- a/include/ajax.tasks.php
+++ b/include/ajax.tasks.php
@@ -115,7 +115,7 @@ class TasksAjaxAPI extends AjaxController {
             Http::response(404, __('No such task'));
 
         if (!$task->checkStaffPerm($thisstaff, Task::PERM_EDIT))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $info = $errors = array();
         $forms = DynamicFormEntry::forObject($task->getId(),
@@ -128,7 +128,9 @@ class TasksAjaxAPI extends AjaxController {
             if ($task->update($forms, $_POST, $errors)) {
                 Http::response(201, 'Task updated successfully');
             } elseif(!$errors['err']) {
-                $errors['err']=__('Unable to update the task. Correct the errors below and try again!');
+                $errors['err']=sprintf(
+                    __('Unable to update %s. Correct any errors below and try again.'),
+                    __('task'));
             }
             $info = Format::htmlchars($_POST);
         }
@@ -170,7 +172,7 @@ class TasksAjaxAPI extends AjaxController {
         if ($_POST) {
             if (!$_POST['tids'] || !($count=count($_POST['tids'])))
                 $errors['err'] = sprintf(
-                        __('You must select at least %s.'),
+                        __('You must select at least %s'),
                         __('one task'));
         } else {
             $count  =  $_REQUEST['count'];
@@ -289,8 +291,7 @@ class TasksAjaxAPI extends AjaxController {
 
                 if (!$i) {
                     $info['error'] = sprintf(
-                            __('Unable to %1$s %2$s'),
-                            __('assign'),
+                            __('Unable to assign %s' /* %s may be pluralized */),
                             _N('selected task', 'selected tasks', $count));
                 }
             }
@@ -315,8 +316,7 @@ class TasksAjaxAPI extends AjaxController {
 
                 if (!$i) {
                     $info['error'] = sprintf(
-                            __('Unable to %1$s %2$s'),
-                            __('transfer'),
+                            __('Unable to transfer %s' /* %s may be pluralized */),
                             _N('selected task', 'selected tasks', $count));
                 }
             }
@@ -358,9 +358,9 @@ class TasksAjaxAPI extends AjaxController {
             // will be checked below.
             if ($perm && !$thisstaff->hasPerm($perm, false))
                 $errors['err'] = sprintf(
-                        __('You do not have permission to %s %s'),
-                        __($action),
-                        __('tasks'));
+                        __('You do not have permission to %s tasks'
+                            /* %s will be an action verb */ ),
+                        __($action));
 
             if ($_POST && !$errors) {
                 if (!$_POST['status']
@@ -410,8 +410,7 @@ class TasksAjaxAPI extends AjaxController {
 
                 if (!$i) {
                     $info['error'] = sprintf(
-                            __('Unable to %1$s %2$s'),
-                            __('delete'),
+                            __('Unable to delete %s'),
                             _N('selected task', 'selected tasks', $count));
                 }
             }
@@ -427,7 +426,7 @@ class TasksAjaxAPI extends AjaxController {
             if ($i==$count) {
                 $msg = sprintf(__('Successfully %s %s.'),
                         $actions[$action]['verbed'],
-                        sprintf(__('%1$d %2$s'),
+                        sprintf('%1$d %2$s',
                             $count,
                             _N('selected task', 'selected tasks', $count))
                         );
@@ -443,7 +442,7 @@ class TasksAjaxAPI extends AjaxController {
             Http::response(201, 'processed');
         } elseif($_POST && !isset($info['error'])) {
             $info['error'] = $errors['err'] ?: sprintf(
-                    __('Unable to %1$s  %2$s'),
+                    __('Unable to %1$s %2$s'),
                     __('process'),
                     _N('selected task', 'selected tasks', $count));
         }
@@ -476,7 +475,7 @@ class TasksAjaxAPI extends AjaxController {
             Http::response(404, __('No such task'));
 
         if (!$task->checkStaffPerm($thisstaff, Task::PERM_TRANSFER))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
 
@@ -520,7 +519,7 @@ class TasksAjaxAPI extends AjaxController {
         if (!$task->checkStaffPerm($thisstaff, Task::PERM_ASSIGN)
                 || !($form=$task->getAssignmentForm($_POST, array(
                             'target' => $target))))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
         $info = array(
@@ -566,7 +565,7 @@ class TasksAjaxAPI extends AjaxController {
         // Check for premissions and such
         if (!$task->checkStaffPerm($thisstaff, Task::PERM_ASSIGN)
                 || !($form = $task->getClaimForm($_POST)))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
         $info = array(
@@ -621,7 +620,7 @@ class TasksAjaxAPI extends AjaxController {
             Http::response(404, __('No such task'));
 
         if (!$task->checkStaffPerm($thisstaff, Task::PERM_DELETE))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
         $info = array(
@@ -700,8 +699,8 @@ class TasksAjaxAPI extends AjaxController {
 
         if (!$errors && (!$perm || !$task->checkStaffPerm($thisstaff, $perm)))
             $errors['err'] = sprintf(
-                        __('You do not have permission to %s %s'),
-                        $statuses[$status], __('tasks'));
+                        __('You do not have permission to %s tasks'),
+                        $statuses[$status]);
 
         if ($_POST && !$errors) {
             if ($task->setStatus($status, $_POST['comments'], $errors))
diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index c20abba7e..209ea1a2d 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -381,7 +381,7 @@ class TicketsAjaxAPI extends AjaxController {
             Http::response(404, __('No such ticket'));
 
         if (!$ticket->checkStaffPerm($thisstaff, Ticket::PERM_TRANSFER))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
 
@@ -426,7 +426,7 @@ class TicketsAjaxAPI extends AjaxController {
         if (!$ticket->checkStaffPerm($thisstaff, Ticket::PERM_ASSIGN)
                 || !($form = $ticket->getAssignmentForm($_POST,
                         array('target' => $target))))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
         $info = array(
@@ -486,7 +486,7 @@ class TicketsAjaxAPI extends AjaxController {
                 || !$ticket->isOpen() // Claim only open
                 || $ticket->getStaff() // cannot claim assigned ticket
                 || !($form = $ticket->getClaimForm($_POST)))
-            Http::response(403, __('Permission Denied'));
+            Http::response(403, __('Permission denied'));
 
         $errors = array();
         $info = array(
@@ -568,7 +568,7 @@ class TicketsAjaxAPI extends AjaxController {
         if ($_POST) {
             if (!$_POST['tids'] || !($count=count($_POST['tids'])))
                 $errors['err'] = sprintf(
-                        __('You must select at least %s.'),
+                        __('You must select at least %s'),
                         __('one ticket'));
         } else {
             $count  =  $_REQUEST['count'];
@@ -736,9 +736,8 @@ class TicketsAjaxAPI extends AjaxController {
             // Generic permission check.
             if (!$thisstaff->hasPerm(Ticket::PERM_DELETE, false))
                 $errors['err'] = sprintf(
-                        __('You do not have permission to %s %s'),
-                        __('delete'),
-                        __('tickets'));
+                        __('You do not have permission %s'),
+                        __('to delete tickets'))
 
 
             if ($_POST && !$errors) {
@@ -768,14 +767,16 @@ class TicketsAjaxAPI extends AjaxController {
             if ($i==$count) {
                 $msg = sprintf(__('Successfully %s %s.'),
                         $actions[$action]['verbed'],
-                        sprintf(__('%1$d %2$s'),
+                        sprintf('%1$d %2$s',
                             $count,
                             _N('selected ticket', 'selected tickets', $count))
                         );
                 $_SESSION['::sysmsgs']['msg'] = $msg;
             } else {
                 $warn = sprintf(
-                        __('%1$d of %2$d %3$s %4$s'), $i, $count,
+                        __('%1$d of %2$d %3$s %4$s'
+                        /* Tokens are <x> of <y> <selected ticket(s)> <actioned> */),
+                        $i, $count,
                         _N('selected ticket', 'selected tickets',
                             $count),
                         $actions[$action]['verbed']);
@@ -784,7 +785,7 @@ class TicketsAjaxAPI extends AjaxController {
             Http::response(201, 'processed');
         } elseif($_POST && !isset($info['error'])) {
             $info['error'] = $errors['err'] ?: sprintf(
-                    __('Unable to %1$s  %2$s'),
+                    __('Unable to %1$s %2$s'),
                     __('process'),
                     _N('selected ticket', 'selected tickets', $count));
         }
@@ -846,8 +847,8 @@ class TicketsAjaxAPI extends AjaxController {
                 break;
             default:
                 $state = $ticket->getStatus()->getState();
-                $info['warn'] = sprintf('%s %s',
-                        __('Unknown or invalid'), __('status'));
+                $info['warn'] = sprintf(__('%s: Unknown or invalid'),
+                        __('status'));
         }
 
         $info['status_id'] = $id ?: $ticket->getStatusId();
@@ -879,17 +880,17 @@ class TicketsAjaxAPI extends AjaxController {
                 case 'open':
                     if (!$role->hasPerm(TicketModel::PERM_CLOSE)
                             && !$role->hasPerm(TicketModel::PERM_CREATE))
-                        $errors['err'] = sprintf(__('You do not have permission %s.'),
+                        $errors['err'] = sprintf(__('You do not have permission %s'),
                                 __('to reopen tickets'));
                     break;
                 case 'closed':
                     if (!$role->hasPerm(TicketModel::PERM_CLOSE))
-                        $errors['err'] = sprintf(__('You do not have permission %s.'),
+                        $errors['err'] = sprintf(__('You do not have permission %s'),
                                 __('to resolve/close tickets'));
                     break;
                 case 'deleted':
                     if (!$role->hasPerm(TicketModel::PERM_DELETE))
-                        $errors['err'] = sprintf(__('You do not have permission %s.'),
+                        $errors['err'] = sprintf(__('You do not have permission %s'),
                                 __('to archive/delete tickets'));
                     break;
                 default:
@@ -974,11 +975,11 @@ class TicketsAjaxAPI extends AjaxController {
         $errors = $info = array();
         if (!$thisstaff || !$thisstaff->canManageTickets())
             $errors['err'] = sprintf('%s %s',
-                    sprintf(__('You do not have permission %s.'),
+                    sprintf(__('You do not have permission %s'),
                         __('to mass manage tickets')),
                     __('Contact admin for such access'));
         elseif (!$_REQUEST['tids'] || !count($_REQUEST['tids']))
-            $errors['err']=sprintf(__('You must select at least %s.'),
+            $errors['err']=sprintf(__('You must select at least %s'),
                     __('one ticket'));
         elseif (!($status= TicketStatus::lookup($_REQUEST['status_id'])))
             $errors['status_id'] = sprintf('%s %s',
@@ -989,17 +990,17 @@ class TicketsAjaxAPI extends AjaxController {
                 case 'open':
                     if (!$thisstaff->hasPerm(TicketModel::PERM_CLOSE, false)
                             && !$thisstaff->hasPerm(TicketModel::PERM_CREATE, false))
-                        $errors['err'] = sprintf(__('You do not have permission %s.'),
+                        $errors['err'] = sprintf(__('You do not have permission %s'),
                                 __('to reopen tickets'));
                     break;
                 case 'closed':
                     if (!$thisstaff->hasPerm(TicketModel::PERM_CLOSE, false))
-                        $errors['err'] = sprintf(__('You do not have permission %s.'),
+                        $errors['err'] = sprintf(__('You do not have permission %s'),
                                 __('to resolve/close tickets'));
                     break;
                 case 'deleted':
                     if (!$thisstaff->hasPerm(TicketModel::PERM_DELETE, false))
-                        $errors['err'] = sprintf(__('You do not have permission %s.'),
+                        $errors['err'] = sprintf(__('You do not have permission %s'),
                                 __('to archive/delete tickets'));
                     break;
                 default:
@@ -1031,7 +1032,7 @@ class TicketsAjaxAPI extends AjaxController {
                 if ($i==$count) {
 
                     if (!strcasecmp($status->getState(), 'deleted')) {
-                        $msg = sprintf(__( 'Successfully deleted %s.'),
+                        $msg = sprintf(__( 'Successfully deleted %s'),
                                 _N('selected ticket', 'selected tickets',
                                     $count));
                     } else {
@@ -1048,7 +1049,7 @@ class TicketsAjaxAPI extends AjaxController {
                 } else {
 
                     if (!strcasecmp($status->getState(), 'deleted')) {
-                        $warn = sprintf(__('Successfully deleted %s.'),
+                        $warn = sprintf(__('Successfully deleted %s'),
                                 sprintf(__('%1$d of %2$d selected tickets'),
                                     $i, $count)
                                 );
@@ -1229,7 +1230,7 @@ class TicketsAjaxAPI extends AjaxController {
         $info['title'] = sprintf(
                 __( 'Ticket #%1$s: %2$s'),
                 $ticket->getNumber(),
-                _('Add New Task')
+                __('Add New Task')
                 );
 
          include STAFFINC_DIR . 'templates/task.tmpl.php';
diff --git a/include/ajax.users.php b/include/ajax.users.php
index dd01ac1de..218f9c072 100644
--- a/include/ajax.users.php
+++ b/include/ajax.users.php
@@ -442,7 +442,7 @@ class UsersAjaxAPI extends AjaxController {
         }
 
         if ($org && $user->getOrgId() && $org->getId() != $user->getOrgId())
-            $info['warning'] = __("Are you sure you want to change user's organization?");
+            $info['warning'] = __("Are you sure you want to change the user's organization?");
 
         $tmpl = $tmpl ?: 'org-lookup.tmpl.php';
 
diff --git a/include/class.api.php b/include/class.api.php
index 818b8826e..fa40b839c 100644
--- a/include/class.api.php
+++ b/include/class.api.php
@@ -137,8 +137,8 @@ class API {
             if(db_query($sql))
                 return true;
 
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this API key'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this API key'))
+               .' — '.__('Internal error occurred');
 
         } else {
             $sql='INSERT INTO '.API_KEY_TABLE.' SET '.$sql
diff --git a/include/class.auth.php b/include/class.auth.php
index a924d9cd5..afda9c0e9 100644
--- a/include/class.auth.php
+++ b/include/class.auth.php
@@ -484,7 +484,7 @@ abstract class StaffAuthenticationBackend  extends AuthenticationBackend {
             return false;
 
         //Log debug info.
-        $ost->logDebug(_S('Agent login'),
+        $ost->logDebug(_S('Agent Login'),
             sprintf(_S("%s logged in [%s], via %s"), $staff->getUserName(),
                 $_SERVER['REMOTE_ADDR'], get_class($bk))); //Debug.
 
@@ -948,7 +948,7 @@ class UserAuthStrikeBackend extends  AuthStrikeBackend {
                     _S('Time').": ".date('M j, Y, g:i a T')."\n\n".
                     _S('Attempts').": {$authsession['strikes']}";
             $ost->logError(_S('Excessive login attempts (user)'), $alert, ($cfg->alertONLoginError()));
-            return new AccessDenied(__('Access Denied'));
+            return new AccessDenied(__('Access denied'));
         } elseif($authsession['strikes']%3==0) { //Log every third failed login attempt as a warning.
             $alert=_S('Username').": {$username}\n".
                     _S('IP').": {$_SERVER['REMOTE_ADDR']}\n".
diff --git a/include/class.canned.php b/include/class.canned.php
index bb126d740..22f3934d5 100644
--- a/include/class.canned.php
+++ b/include/class.canned.php
@@ -286,10 +286,10 @@ extends VerySimpleModel {
             return true;
 
         if ($isnew)
-            $errors['err'] = sprintf(__('Unable to update %s.'), __('this canned response'));
+            $errors['err'] = sprintf(__('Unable to update %s'), __('this canned response'));
         else
-            $errors['err']=sprintf(__('Unable to create %s.'), __('this canned response'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to create %s'), __('this canned response'))
+               .' — '.__('Internal error occurred');
 
         return true;
     }
diff --git a/include/class.dept.php b/include/class.dept.php
index 397df89c4..eac074c9f 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -639,11 +639,11 @@ implements TemplateVariable {
         }
 
         if (isset($this->id))
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this department'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this department'))
+               .' — '.__('Internal error occurred');
         else
-            $errors['err']=sprintf(__('Unable to create %s.'), __('this department'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to create %s'), __('this department'))
+               .' — '.__('Internal error occurred');
 
         return false;
     }
diff --git a/include/class.email.php b/include/class.email.php
index e0bdb64bd..eb0ee23b5 100644
--- a/include/class.email.php
+++ b/include/class.email.php
@@ -416,12 +416,12 @@ class Email extends VerySimpleModel {
             return true;
 
         if ($id) { //update
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this email'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this email'))
+               .' — '.__('Internal error occurred');
         }
         else {
-            $errors['err']=sprintf(__('Unable to add %s.'), __('this email'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to add %s'), __('this email'))
+               .' — '.__('Internal error occurred');
         }
 
         return false;
diff --git a/include/class.filter.php b/include/class.filter.php
index 20bac5ce5..6d9295978 100644
--- a/include/class.filter.php
+++ b/include/class.filter.php
@@ -494,13 +494,13 @@ class Filter {
         if($id) {
             $sql='UPDATE '.FILTER_TABLE.' SET '.$sql.' WHERE id='.db_input($id);
             if(!db_query($sql))
-                $errors['err']=sprintf(__('Unable to update %s.'), __('this ticket filter'))
-                   .' '.__('Internal error occurred');
+                $errors['err']=sprintf(__('Unable to update %s'), __('this ticket filter'))
+                   .' — '.__('Internal error occurred');
         }else{
             $sql='INSERT INTO '.FILTER_TABLE.' SET '.$sql.',created=NOW() ';
             if(!db_query($sql) || !($id=db_insert_id()))
-                $errors['err']=sprintf(__('Unable to add %s.'), __('this ticket filter'))
-                   .' '.__('Internal error occurred');
+                $errors['err']=sprintf(__('Unable to add %s'), __('this ticket filter'))
+                   .' — '.__('Internal error occurred');
         }
 
         if($errors || !$id) return false;
diff --git a/include/class.filter_action.php b/include/class.filter_action.php
index 6c687cc6f..7d639d9d1 100644
--- a/include/class.filter_action.php
+++ b/include/class.filter_action.php
@@ -369,7 +369,7 @@ class FA_AssignTeam extends TriggerAction {
                     array(':new:' => '— '.__('Add New').' —'),
                 'validators' => function($self, $clean) {
                     if ($clean === ':new:')
-                        $self->addError(__('Select a team'));
+                        $self->addError(__('Select a Team'));
                 }
             )),
         );
diff --git a/include/class.forms.php b/include/class.forms.php
index 15b32c306..3722827a5 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -865,10 +865,10 @@ class FormField {
      */
     function whatChanged($before, $after) {
         if ($before)
-            $desc = __('changed from <strong>%2$s</strong> to <strong>%1$s</strong>');
+            $desc = __('changed from <strong>%1$s</strong> to <strong>%2$s</strong>');
         else
-            $desc = __('set to <strong>%1$s</strong>');
-        return sprintf($desc, $this->display($after), $this->display($before));
+            $desc = __('set to <strong>%2$s</strong>');
+        return sprintf($desc, $this->display($before), $this->display($after));
     }
 
     /**
@@ -4215,7 +4215,7 @@ class TransferForm extends Form {
                     'label' => __('Department'),
                     'flags' => hexdec(0X450F3),
                     'required' => true,
-                    'validator-error' => __('Department selection required'),
+                    'validator-error' => __('Department selection is required'),
                     )
                 ),
             'comments' => new TextareaField(array(
diff --git a/include/class.page.php b/include/class.page.php
index 920c2ee88..a671d1c71 100644
--- a/include/class.page.php
+++ b/include/class.page.php
@@ -288,7 +288,7 @@ class Page extends VerySimpleModel {
         if ($rv)
             return $rv;
 
-        $errors['err']=sprintf(__('Unable to update %s.'), __('this site page'));
+        $errors['err']=sprintf(__('Unable to update %s'), __('this site page'));
         return false;
     }
 
diff --git a/include/class.role.php b/include/class.role.php
index f584cfa43..0e0f89af2 100644
--- a/include/class.role.php
+++ b/include/class.role.php
@@ -149,7 +149,7 @@ class Role extends RoleModel {
             $errors['name'] = __('Name required');
         elseif (($r=Role::lookup(array('name'=>$vars['name'])))
                 && $r->getId() != $vars['id'])
-            $errors['name'] = __('Name already in-use');
+            $errors['name'] = __('Name already in use');
         elseif (!$vars['perms'] || !count($vars['perms']))
             $errors['err'] = __('Must check at least one permission for the role');
 
diff --git a/include/class.search.php b/include/class.search.php
index 25617b27b..fbb343986 100644
--- a/include/class.search.php
+++ b/include/class.search.php
@@ -1132,7 +1132,7 @@ class TicketStateChoiceField extends ChoiceField {
         return array(
             'open' => __('Open'),
             'closed' => __('Closed'),
-            'archived' => __('Archived'),
+            'archived' => _P('ticket state name', 'Archived'),
             'deleted' => __('Deleted'),
         );
     }
diff --git a/include/class.sla.php b/include/class.sla.php
index d961ebcba..e8c82b834 100644
--- a/include/class.sla.php
+++ b/include/class.sla.php
@@ -100,7 +100,7 @@ implements TemplateVariable {
 
     static function getVarScope() {
         return array(
-            'name' => __('SLA Plan'),
+            'name' => __('Service Level Agreement'),
             'graceperiod' => __("Grace Period (hrs)"),
         );
     }
@@ -133,11 +133,11 @@ implements TemplateVariable {
             return true;
 
         if (isset($this->id)) {
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this SLA plan'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this SLA plan'))
+               .' — '.__('Internal error occurred');
         } else {
-            $errors['err']=sprintf(__('Unable to add %s.'), __('this SLA plan'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to add %s'), __('this SLA plan'))
+               .' — '.__('Internal error occurred');
         }
 
         return false;
diff --git a/include/class.staff.php b/include/class.staff.php
index a5e56c22a..890ff411a 100644
--- a/include/class.staff.php
+++ b/include/class.staff.php
@@ -628,7 +628,7 @@ implements AuthenticatedUser, EmailContact, TemplateVariable {
             $errors['email']=__('Already in-use as system email');
         elseif (($uid=static::getIdByEmail($vars['email']))
                 && (!isset($this->staff_id) || $uid!=$this->getId()))
-            $errors['email']=__('Email already in-use by another agent');
+            $errors['email']=__('Email already in use by another agent');
 
         if($vars['phone'] && !Validator::is_phone($vars['phone']))
             $errors['phone']=__('Valid phone number is required');
@@ -894,10 +894,10 @@ implements AuthenticatedUser, EmailContact, TemplateVariable {
         $imported = 0;
         $fields = array(
             'firstname' => new TextboxField(array(
-                'label' => __('First name'),
+                'label' => __('First Name'),
             )),
             'lastname' => new TextboxField(array(
-                'label' => __('Last name'),
+                'label' => __('Last Name'),
             )),
             'email' => new TextboxField(array(
                 'label' => __('Email Address'),
@@ -1061,11 +1061,11 @@ implements AuthenticatedUser, EmailContact, TemplateVariable {
         }
 
         if (isset($this->staff_id)) {
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this agent'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this agent'))
+               .' — '.__('Internal error occurred');
         } else {
-            $errors['err']=sprintf(__('Unable to create %s.'), __('this agent'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to create %s'), __('this agent'))
+               .' — '.__('Internal error occurred');
         }
         return false;
     }
diff --git a/include/class.task.php b/include/class.task.php
index 5350d9b60..eb2ba5ed9 100644
--- a/include/class.task.php
+++ b/include/class.task.php
@@ -1033,7 +1033,7 @@ class Task extends TaskModel implements RestrictedAccess, Threadable {
 
     static function getVarScope() {
         $base = array(
-            'assigned' => __('Assigned agent and/or team'),
+            'assigned' => __('Assigned Agent / Team'),
             'close_date' => array(
                 'class' => 'FormattedDate', 'desc' => __('Date Closed'),
             ),
@@ -1046,7 +1046,7 @@ class Task extends TaskModel implements RestrictedAccess, Threadable {
             'due_date' => array(
                 'class' => 'FormattedDate', 'desc' => __('Due Date'),
             ),
-            'number' => __('Task number'),
+            'number' => __('Task Number'),
             'recipients' => array(
                 'class' => 'UserList', 'desc' => __('List of all recipient names'),
             ),
diff --git a/include/class.team.php b/include/class.team.php
index d6963eb92..1810d4b01 100644
--- a/include/class.team.php
+++ b/include/class.team.php
@@ -182,11 +182,11 @@ implements TemplateVariable {
             return $this->members->saveAll();
 
         if (isset($this->team_id)) {
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this team'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this team'))
+               .' — '.__('Internal error occurred');
         } else {
-            $errors['err']=sprintf(__('Unable to create %s.'), __('this team'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to create %s'), __('this team'))
+               .' — '.__('Internal error occurred');
         }
 
         return false;
diff --git a/include/class.template.php b/include/class.template.php
index 36cf85602..6c7c5ac55 100644
--- a/include/class.template.php
+++ b/include/class.template.php
@@ -62,7 +62,7 @@ class EmailTemplateGroup {
         ),
         'ticket.overlimit'=>array(
             'group'=>'a.ticket.user',
-            'name'=>/* @trans */ 'Over Limit Notice',
+            'name'=>/* @trans */ 'Overlimit Notice',
             'desc'=>/* @trans */ 'A one-time notice sent, if enabled, when user has reached the maximum allowed open tickets.',
             'context' => array(
                 'ticket', 'signature',
@@ -469,8 +469,8 @@ class EmailTemplateGroup {
             if(db_query($sql))
                 return true;
 
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this template set'))
-               .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this template set'))
+               .' — '.__('Internal error occurred');
 
         } else {
 
@@ -479,8 +479,8 @@ class EmailTemplateGroup {
             $sql='INSERT INTO '.EMAIL_TEMPLATE_GRP_TABLE
                 .' SET created=NOW(), '.$sql;
             if(!db_query($sql) || !($new_id=db_insert_id())) {
-                $errors['err']=sprintf(__('Unable to create %s.'), __('this template set'))
-                   .' '.__('Internal error occurred');
+                $errors['err']=sprintf(__('Unable to create %s'), __('this template set'))
+                   .' — '.__('Internal error occurred');
                 return false;
             }
 
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 453d40dc5..e6cfe4243 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1700,7 +1700,7 @@ implements RestrictedAccess, Threadable {
             return false;
 
         $user_comments = (bool) $comments;
-        $comments = $comments ?: _S('Ticket assignment');
+        $comments = $comments ?: _S('Ticket Assignment');
         $assigner = $thisstaff ?: _S('SYSTEM (Auto Assignment)');
 
         //Log an internal note - no alerts on the internal note.
@@ -1883,7 +1883,7 @@ implements RestrictedAccess, Threadable {
 
     static function getVarScope() {
         $base = array(
-            'assigned' => __('Assigned agent and/or team'),
+            'assigned' => __('Assigned Agent / Team'),
             'close_date' => array(
                 'class' => 'FormattedDate', 'desc' => __('Date Closed'),
             ),
@@ -1923,14 +1923,14 @@ implements RestrictedAccess, Threadable {
                 'class' => 'TicketThread', 'desc' => __('Ticket Thread'),
             ),
             'topic' => array(
-                'class' => 'Topic', 'desc' => __('Help topic'),
+                'class' => 'Topic', 'desc' => __('Help Topic'),
             ),
             // XXX: Isn't lastreponse and lastmessage more useful
             'last_update' => array(
                 'class' => 'FormattedDate', 'desc' => __('Time of last update'),
             ),
             'user' => array(
-                'class' => 'User', 'desc' => __('Ticket owner'),
+                'class' => 'User', 'desc' => __('Ticket Owner'),
             ),
         );
 
@@ -2745,7 +2745,7 @@ implements RestrictedAccess, Threadable {
         $fields['user_id']  = array('type'=>'int',      'required'=>0, 'error'=>__('Invalid user-id'));
 
         if (!Validator::process($fields, $vars, $errors) && !$errors['err'])
-            $errors['err'] = __('Missing or invalid data - check the errors and try again');
+            $errors['err'] = __('Missing or invalid data - correct the errors and try again');
 
         $vars['note'] = ThreadEntryBody::clean($vars['note']);
 
@@ -3091,7 +3091,7 @@ implements RestrictedAccess, Threadable {
         $fields=array();
         switch (strtolower($origin)) {
             case 'web':
-                $fields['topicId']  = array('type'=>'int',  'required'=>1, 'error'=>__('Select a help topic'));
+                $fields['topicId']  = array('type'=>'int',  'required'=>1, 'error'=>__('Select a Help Topic'));
                 break;
             case 'staff':
                 $fields['deptId']   = array('type'=>'int',  'required'=>0, 'error'=>__('Department selection is required'));
@@ -3109,7 +3109,7 @@ implements RestrictedAccess, Threadable {
         }
 
         if(!Validator::process($fields, $vars, $errors) && !$errors['err'])
-            $errors['err'] =__('Missing or invalid data - check the errors and try again');
+            $errors['err'] =__('Missing or invalid data - correct the errors and try again');
 
         // Make sure the due date is valid
         if ($vars['duedate']) {
diff --git a/include/class.topic.php b/include/class.topic.php
index c25ab788a..8196c2df9 100644
--- a/include/class.topic.php
+++ b/include/class.topic.php
@@ -447,13 +447,13 @@ implements TemplateVariable {
                 $this->sort = ($parent->sort ?: 0) + 1;
             }
             if (!($rv = $this->save())) {
-                $errors['err']=sprintf(__('Unable to create %s.'), __('this help topic'))
-               .' '.__('Internal error occurred');
+                $errors['err']=sprintf(__('Unable to create %s'), __('this help topic'))
+               .' — '.__('Internal error occurred');
             }
         }
         elseif (!($rv = $this->save())) {
-            $errors['err']=sprintf(__('Unable to update %s.'), __('this help topic'))
-            .' '.__('Internal error occurred');
+            $errors['err']=sprintf(__('Unable to update %s'), __('this help topic'))
+            .' — '.__('Internal error occurred');
         }
         if ($rv) {
             if (!$cfg || $cfg->getTopicSortMode() == 'a') {
diff --git a/include/class.user.php b/include/class.user.php
index 82e1f9cfe..bc36bd7bc 100644
--- a/include/class.user.php
+++ b/include/class.user.php
@@ -1096,7 +1096,7 @@ class UserAccount extends VerySimpleModel {
 
 
         if (!$thisstaff) {
-            $errors['err'] = __('Access Denied');
+            $errors['err'] = __('Access denied');
             return false;
         }
 
diff --git a/include/class.variable.php b/include/class.variable.php
index fb968336a..8b346e0cd 100644
--- a/include/class.variable.php
+++ b/include/class.variable.php
@@ -264,12 +264,12 @@ class VariableReplacer {
 
         $contextTypes = array(
             'activity' => array('class' => 'ThreadActivity', 'desc' => __('Type of recent activity')),
-            'assignee' => array('class' => 'Staff', 'desc' => __('Assigned agent/team')),
+            'assignee' => array('class' => 'Staff', 'desc' => __('Assigned Agent / Team')),
             'assigner' => array('class' => 'Staff', 'desc' => __('Agent performing the assignment')),
             'comments' => __('Assign/transfer comments'),
             'link' => __('Access link'),
             'message' => array('class' => 'MessageThreadEntry', 'desc' => 'Message from the EndUser'),
-            'note' => array('class' => 'NoteThreadEntry', 'desc' => __('Internal note')),
+            'note' => array('class' => 'NoteThreadEntry', 'desc' => __('Internal Note')),
             'poster' => array('class' => 'User', 'desc' => 'EndUser or Agent originating the message'),
             // XXX: This could be EndUser -or- Staff object
             'recipient' => array('class' => 'TicketUser', 'desc' => 'Message recipient'),
diff --git a/include/cli/modules/i18n.php b/include/cli/modules/i18n.php
index 60f935abf..f4c06caec 100644
--- a/include/cli/modules/i18n.php
+++ b/include/cli/modules/i18n.php
@@ -548,6 +548,7 @@ class i18n_Compiler extends Module {
             'msgid ""',
             'msgstr ""',
             '"Project-Id-Version: osTicket '.trim(`git describe`).'\n"',
+            '"X-Osticket-Major-Version: '.MAJOR_VERSION.'\n"',
             '"POT-Create-Date: '.date('Y-m-d H:i O').'\n"',
             '"Report-Msgid-Bugs-To: support@osticket.com\n"',
             '"Language: en_US\n"',
diff --git a/include/client/accesslink.inc.php b/include/client/accesslink.inc.php
index b73dae29f..4f5f5ac81 100644
--- a/include/client/accesslink.inc.php
+++ b/include/client/accesslink.inc.php
@@ -23,7 +23,7 @@ else
     <div class="login-box">
     <div><strong><?php echo Format::htmlchars($errors['login']); ?></strong></div>
     <div>
-        <label for="email"><?php echo __('E-Mail Address'); ?>:
+        <label for="email"><?php echo __('Email Address'); ?>:
         <input id="email" placeholder="<?php echo __('e.g. john.doe@osticket.com'); ?>" type="text"
             name="lemail" size="30" value="<?php echo $email; ?>" class="nowarn"></label>
     </div>
diff --git a/include/client/faq.inc.php b/include/client/faq.inc.php
index c684fda77..c90431562 100644
--- a/include/client/faq.inc.php
+++ b/include/client/faq.inc.php
@@ -17,8 +17,8 @@ $category=$faq->getCategory();
 <div class="article-title flush-left">
 <?php echo $faq->getLocalQuestion() ?>
 </div>
-<div class="faded"><?php echo __('Last updated').' '
-    . Format::relativeTime(Misc::db2gmtime($category->getUpdateDate())); ?></div>
+<div class="faded"><?php echo sprintf(__('Last Updated %s'),
+    Format::relativeTime(Misc::db2gmtime($category->getUpdateDate()))); ?></div>
 <br/>
 <div class="thread-body bleed">
 <?php echo $faq->getLocalAnswerWithImages(); ?>
diff --git a/include/staff/apikey.inc.php b/include/staff/apikey.inc.php
index 9a39b814f..c3b41fb0c 100644
--- a/include/staff/apikey.inc.php
+++ b/include/staff/apikey.inc.php
@@ -103,7 +103,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         </tr>
         <tr>
             <th colspan="2">
-                <em><strong><?php echo __('Internal Notes');?></strong>: <?php echo __("be liberal, they're internal");?></em>
+                <em><strong><?php echo __('Internal Notes');?></strong>: <?php echo __("Be liberal, they're internal");?></em>
             </th>
         </tr>
         <tr>
diff --git a/include/staff/apikeys.inc.php b/include/staff/apikeys.inc.php
index 2fd02c902..87cbe05e0 100644
--- a/include/staff/apikeys.inc.php
+++ b/include/staff/apikeys.inc.php
@@ -37,7 +37,7 @@ $res=db_query($query);
 if($res && ($num=db_num_rows($res)))
     $showing=$pageNav->showing().' '.__('API Keys');
 else
-    $showing=__('No API keys found!');
+    $showing=__('No API keys found');
 
 ?>
 <form action="apikeys.php" method="POST" name="keys">
diff --git a/include/staff/banrule.inc.php b/include/staff/banrule.inc.php
index 1e433ee89..6b4b5cea1 100644
--- a/include/staff/banrule.inc.php
+++ b/include/staff/banrule.inc.php
@@ -32,7 +32,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
     <thead>
         <tr>
             <th colspan="2">
-                <em><?php echo __('Valid email address required');?></em>
+                <em><?php echo __('Valid email address is required');?></em>
             </th>
         </tr>
     </thead>
@@ -58,7 +58,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         </tr>
         <tr>
             <th colspan="2">
-                <em><strong><?php echo __('Internal notes');?></strong>: <?php echo __('Admin notes');?>&nbsp;</em>
+                <em><strong><?php echo __('Internal Notes');?></strong>: <?php echo __('Admin Notes');?>&nbsp;</em>
             </th>
         </tr>
         <tr>
diff --git a/include/staff/categories.inc.php b/include/staff/categories.inc.php
index 222079b52..91e2419e7 100644
--- a/include/staff/categories.inc.php
+++ b/include/staff/categories.inc.php
@@ -30,11 +30,6 @@ $pageNav->setURL('categories.php', $qs);
 $qstr = '&amp;order='.($order=='DESC'?'ASC':'DESC');
 $pageNav->paginate($categories);
 
-if ($total)
-    $showing=$pageNav->showing().' '.__('categories');
-else
-    $showing=__('No FAQ categories found!');
-
 ?>
 
 <form action="categories.php" method="POST" id="mass-actions">
@@ -84,7 +79,6 @@ else
     </thead>
     <tbody>
     <?php
-        $total=0;
         $ids=($errors && is_array($_POST['ids']))?$_POST['ids']:null;
         foreach ($categories as $C) {
             $sel=false;
@@ -110,12 +104,12 @@ else
     <tfoot>
      <tr>
         <td colspan="5">
-            <?php if($res && $num){ ?>
+            <?php if ($total) { ?>
             <?php echo __('Select');?>:&nbsp;
             <a id="selectAll" href="#ckb"><?php echo __('All');?></a>&nbsp;&nbsp;
             <a id="selectNone" href="#ckb"><?php echo __('None');?></a>&nbsp;&nbsp;
             <a id="selectToggle" href="#ckb"><?php echo __('Toggle');?></a>&nbsp;&nbsp;
-            <?php }else{
+            <?php } else {
                 echo __('No FAQ categories found!');
             } ?>
         </td>
@@ -123,8 +117,8 @@ else
     </tfoot>
 </table>
 <?php
-if($res && $num): //Show options..
-    echo '<div>&nbsp;'.__('Page').':'.$pageNav->getPageLinks().'&nbsp;</div>';
+if ($total) {
+    echo '<div>&nbsp;'.__('Page').': '.$pageNav->getPageLinks().'</div>';
 ?>
 <p class="centered" id="actions">
     <input class="button" type="submit" name="make_public" value="<?php echo __('Make Public');?>">
@@ -132,7 +126,7 @@ if($res && $num): //Show options..
     <input class="button" type="submit" name="delete" value="<?php echo __('Delete');?>" >
 </p>
 <?php
-endif;
+}
 ?>
 </form>
 <div style="display:none;" class="dialog" id="confirm-action">
diff --git a/include/staff/department.inc.php b/include/staff/department.inc.php
index 7374f4b7f..66e172a8f 100644
--- a/include/staff/department.inc.php
+++ b/include/staff/department.inc.php
@@ -58,7 +58,7 @@ $info = Format::htmlchars(($errors && $_POST) ? $_POST : $info);
             </td>
             <td>
                 <select name="pid">
-                    <option value="">&mdash; <?php echo __('Top-Level Deptartment'); ?> &mdash;</option>
+                    <option value="">&mdash; <?php echo __('Top-Level Department'); ?> &mdash;</option>
 <?php foreach (Dept::getDepartments() as $id=>$name) {
     if ($info['id'] && $id == $info['id'])
         continue; ?>
diff --git a/include/staff/dynamic-form.inc.php b/include/staff/dynamic-form.inc.php
index 24361af87..f1bba8396 100644
--- a/include/staff/dynamic-form.inc.php
+++ b/include/staff/dynamic-form.inc.php
@@ -280,7 +280,7 @@ if ($form && count($langs) > 1) { ?>
         <tr>
             <th colspan="7">
                 <em><strong><?php echo __('Internal Notes'); ?>:</strong>
-                <?php echo __("be liberal, they're internal"); ?></em>
+                <?php echo __("Be liberal, they're internal"); ?></em>
             </th>
         </tr>
         <tr>
diff --git a/include/staff/dynamic-list.inc.php b/include/staff/dynamic-list.inc.php
index 4e4b0b776..a71079656 100644
--- a/include/staff/dynamic-list.inc.php
+++ b/include/staff/dynamic-list.inc.php
@@ -99,7 +99,7 @@ $info=Format::htmlchars(($errors && $_POST) ? array_merge($info,$_POST) : $info)
         <tr>
             <th colspan="7">
                 <em><strong><?php echo __('Internal Notes'); ?>:</strong>
-                <?php echo __("be liberal, they're internal"); ?></em>
+                <?php echo __("Be liberal, they're internal"); ?></em>
             </th>
         </tr>
         <tr>
diff --git a/include/staff/email.inc.php b/include/staff/email.inc.php
index 08225cb95..e46bcd643 100644
--- a/include/staff/email.inc.php
+++ b/include/staff/email.inc.php
@@ -249,7 +249,6 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
 		<span>
 			<input type="text" name="mail_fetchmax" size=4 value="<?php echo
             $info['mail_fetchmax']?$info['mail_fetchmax']:''; ?>">
-            <?php echo __('emails'); ?>
 			<i class="help-tip icon-question-sign" href="#emails_per_fetch"></i>
 			&nbsp;<font class="error">&nbsp;<?php echo $errors['mail_fetchmax']; ?></font>
 		</span>
@@ -321,7 +320,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         <tr>
             <th colspan="2">
                 <em><strong><?php echo __('Internal Notes');?></strong>: <?php
-                echo __("be liberal, they're internal.");?> &nbsp;<span class="error">&nbsp;<?php echo $errors['notes']; ?></span></em>
+                echo __("Be liberal, they're internal");?> &nbsp;<span class="error">&nbsp;<?php echo $errors['notes']; ?></span></em>
             </th>
         </tr>
         <tr>
diff --git a/include/staff/faq-category.inc.php b/include/staff/faq-category.inc.php
index d037f9f7b..0dcff184f 100644
--- a/include/staff/faq-category.inc.php
+++ b/include/staff/faq-category.inc.php
@@ -38,7 +38,7 @@ echo sprintf('<div class="pull-right flush-right">
     <div style="margin-bottom:10px;">
         <div class="faq-title pull-left"><?php echo $category->getName() ?></div>
         <div class="faq-status inline">(<?php echo $category->isPublic()?__('Public'):__('Internal'); ?>)</div>
-        <div class="clear"><time class="faq"> <?php echo __('Last updated').' '. Format::daydatetime($category->getUpdateDate()); ?></time></div>
+        <div class="clear"><time class="faq"> <?php echo __('Last Updated').' '. Format::daydatetime($category->getUpdateDate()); ?></time></div>
     </div>
     <div class="cat-desc has_bottom_border">
     <?php echo Format::display($category->getDescription()); ?>
diff --git a/include/staff/faq-view.inc.php b/include/staff/faq-view.inc.php
index 8f8daf77c..ecf53cfe2 100644
--- a/include/staff/faq-view.inc.php
+++ b/include/staff/faq-view.inc.php
@@ -83,7 +83,7 @@ if ($otherLangs) { ?>
 <div>
     <strong><?php echo $faq->isPublished()?__('Published'):__('Internal'); ?></strong>
 </div>
-<a data-dialog="ajax.php/kb/faq/<?php echo $faq->getId(); ?>/access" href="#"><?php echo __('manage access'); ?></a>
+<a data-dialog="ajax.php/kb/faq/<?php echo $faq->getId(); ?>/access" href="#"><?php echo __('Manage Access'); ?></a>
 </section>
 
 </div>
diff --git a/include/staff/faq.inc.php b/include/staff/faq.inc.php
index e96d30222..500e1132e 100644
--- a/include/staff/faq.inc.php
+++ b/include/staff/faq.inc.php
@@ -246,7 +246,7 @@ echo $attrs; ?>><?php echo $draft ?: $answer;
 
 <div class="tab_content" style="display:none;" id="notes">
     <div>
-        <b><?php echo __('Internal Notes');?></b>:<span class="faded"><?php echo __("Be libergsdfgal, they're internal");?></span>
+        <b><?php echo __('Internal Notes');?></b>:<span class="faded"><?php echo __("Be liberal, they're internal");?></span>
     </div>
     <div style="margin-top:10px"></div>
     <textarea class="richtext no-bar" name="notes" cols="21"
diff --git a/include/staff/filter.inc.php b/include/staff/filter.inc.php
index 817d20b6b..b216779ac 100644
--- a/include/staff/filter.inc.php
+++ b/include/staff/filter.inc.php
@@ -269,7 +269,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                 <i class="icon-plus-sign"></i>
                 <select name="new-action" id="new-action-select"
                         onchange="javascript: $('#new-action-btn').trigger('click');">
-                    <option value=""><?php echo __('— Select an Action —'); ?></option>
+                    <option value="">— <?php echo __('Select an Action'); ?> —</option>
                     <?php
                     $current_group = '';
                     foreach (FilterAction::allRegistered() as $group=>$actions) {
@@ -313,7 +313,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                 <tr>
                     <th colspan="2">
                         <em><strong><?php echo __('Internal Notes');?></strong>: <?php
-                            echo __("be liberal, they're internal");?></em>
+                            echo __("Be liberal, they're internal");?></em>
                     </th>
                 </tr>
             </thead>
diff --git a/include/staff/filters.inc.php b/include/staff/filters.inc.php
index 25a753302..6eb7f3231 100644
--- a/include/staff/filters.inc.php
+++ b/include/staff/filters.inc.php
@@ -41,7 +41,7 @@ $res=db_query($query);
 if($res && ($num=db_num_rows($res)))
     $showing=$pageNav->showing().' '._N('filter', 'filters', $num);
 else
-    $showing=__('No filters found!');
+    $showing=__('No filters found');
 
 ?>
 <form action="filters.php" method="POST" name="filters">
diff --git a/include/staff/helptopic.inc.php b/include/staff/helptopic.inc.php
index 28b01152f..a5a2c3180 100644
--- a/include/staff/helptopic.inc.php
+++ b/include/staff/helptopic.inc.php
@@ -99,7 +99,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
 
         <div style="padding:8px 3px;border-bottom: 2px dotted #ddd;">
             <strong><?php echo __('Internal Notes');?>:</strong>
-            <?php echo __("be liberal, they're internal.");?>
+            <?php echo __("Be liberal, they're internal");?>
         </div>
 
         <textarea class="richtext no-bar" name="notes" cols="21"
@@ -259,7 +259,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
             </td>
         </tr>
         <tr>
-            <td width="180"><?php echo __('Thank-you Page'); ?>:</td>
+            <td width="180"><?php echo __('Thank-You Page'); ?>:</td>
             <td>
                 <select name="page_id">
                     <option value="">&mdash; <?php echo __('System Default'); ?> &mdash;</option>
@@ -320,7 +320,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         </tr>
         <tr>
             <td width="180">
-                <?php echo __('Auto-response'); ?>:
+                <?php echo __('Auto-Response'); ?>:
             </td>
             <td>
                 <input type="checkbox" name="noautoresp" value="1" <?php echo $info['noautoresp']?'checked="checked"':''; ?> >
diff --git a/include/staff/login.tpl.php b/include/staff/login.tpl.php
index c81c46615..228ec612b 100644
--- a/include/staff/login.tpl.php
+++ b/include/staff/login.tpl.php
@@ -22,7 +22,7 @@ $info = ($_POST && $errors)?Format::htmlchars($_POST):array();
             autofocus autocorrect="off" autocapitalize="off">
         <input type="password" name="passwd" id="pass" placeholder="<?php echo __('Password'); ?>" autocorrect="off" autocapitalize="off">
             <?php if ($show_reset && $cfg->allowPasswordReset()) { ?>
-            <h3 style="display:inline"><a href="pwreset.php"><?php echo __('Forgot my password'); ?></a></h3>
+            <h3 style="display:inline"><a href="pwreset.php"><?php echo __('Forgot My Password'); ?></a></h3>
             <?php } ?>
             <button class="submit button pull-right" type="submit" name="submit"><i class="icon-signin"></i>
                 <?php echo __('Log In'); ?>
diff --git a/include/staff/page.inc.php b/include/staff/page.inc.php
index 63d4fee2c..8661a5cb9 100644
--- a/include/staff/page.inc.php
+++ b/include/staff/page.inc.php
@@ -1,9 +1,9 @@
 <?php
 if(!defined('OSTADMININC') || !$thisstaff || !$thisstaff->isAdmin()) die('Access Denied');
 $pageTypes = array(
-        'landing' => __('Landing page'),
-        'offline' => __('Offline page'),
-        'thank-you' => __('Thank you page'),
+        'landing' => __('Landing Page'),
+        'offline' => __('Offline Page'),
+        'thank-you' => __('Thank-You page'),
         'other' => __('Other'),
         );
 $info = $qs = array();
@@ -182,7 +182,7 @@ else
   </div>
   <div class="tab_content" style="display:none" id="notes">
     <em><strong><?php echo __('Internal Notes'); ?></strong>:
-      <?php echo __("be liberal, they're internal"); ?></em>
+      <?php echo __("Be liberal, they're internal"); ?></em>
     <textarea class="richtext no-bar" name="notes" cols="21"
       rows="8" style="width: 80%;"><?php echo $info['notes']; ?></textarea>
   </div>
diff --git a/include/staff/profile.inc.php b/include/staff/profile.inc.php
index e71a1d1e0..5383a8c98 100644
--- a/include/staff/profile.inc.php
+++ b/include/staff/profile.inc.php
@@ -167,7 +167,7 @@ if ($avatar->isChangeable()) { ?>
             <td width="180"><?php echo __('Maximum Page size');?>:</td>
             <td>
                 <select name="max_page_size">
-                    <option value="0">&mdash; <?php echo __('system default');?> &mdash;</option>
+                    <option value="0">&mdash; <?php echo __('System Default');?> &mdash;</option>
                     <?php
                     $pagelimit = $staff->max_page_size ?: $cfg->getPageSize();
                     for ($i = 5; $i <= 50; $i += 5) {
@@ -183,7 +183,7 @@ if ($avatar->isChangeable()) { ?>
             </td>
             <td>
                 <select name="auto_refresh_rate">
-                  <option value="0">&mdash; <?php echo __('disable');?> &mdash;</option>
+                  <option value="0">&mdash; <?php echo __('Disabled');?> &mdash;</option>
                   <?php
                   $y=1;
                    for($i=1; $i <=30; $i+=$y) {
diff --git a/include/staff/settings-emails.inc.php b/include/staff/settings-emails.inc.php
index d08b0bec5..d84fdd63b 100644
--- a/include/staff/settings-emails.inc.php
+++ b/include/staff/settings-emails.inc.php
@@ -141,7 +141,7 @@ if(!defined('OSTADMININC') || !$thisstaff || !$thisstaff->isAdmin() || !$config)
             <?php echo __('Automatically add collaborators from email fields'); ?>&nbsp;
             <i class="help-tip icon-question-sign" href="#accept_email_collaborators"></i>
         </tr>
-        <tr><th colspan=2><em><strong><?php echo __('Outgoing Emails');?></strong>: <?php echo __('Default email only applies to outgoing emails without SMTP setting.');?></em></th></tr>
+        <tr><th colspan=2><em><strong><?php echo __('Outgoing Email');?></strong>: <?php echo __('Default email only applies to outgoing emails without SMTP setting.');?></em></th></tr>
         <tr><td width="180"><?php echo __('Default MTA'); ?>:</td>
             <td>
                 <select name="default_smtp_id">
diff --git a/include/staff/settings-tasks.inc.php b/include/staff/settings-tasks.inc.php
index dff1b8d79..e06a96b5d 100644
--- a/include/staff/settings-tasks.inc.php
+++ b/include/staff/settings-tasks.inc.php
@@ -3,7 +3,7 @@ if(!defined('OSTADMININC') || !$thisstaff || !$thisstaff->isAdmin() || !$config)
 if(!($maxfileuploads=ini_get('max_file_uploads')))
     $maxfileuploads=DEFAULT_MAX_FILE_UPLOADS;
 ?>
-<h2><?php echo __('Tasks Settings and Options');?></h2>
+<h2><?php echo __('Task Settings and Options');?></h2>
 <form action="settings.php?t=tasks" method="post" id="save">
 <?php csrf_token(); ?>
 <input type="hidden" name="t" value="tasks" >
diff --git a/include/staff/slaplan.inc.php b/include/staff/slaplan.inc.php
index a3c806d5a..beba3be42 100644
--- a/include/staff/slaplan.inc.php
+++ b/include/staff/slaplan.inc.php
@@ -91,7 +91,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         </tr>
         <tr>
             <th colspan="2">
-                <em><strong><?php echo __('Internal Notes');?></strong>: <?php echo __("be liberal, they're internal");?>
+                <em><strong><?php echo __('Internal Notes');?></strong>: <?php echo __("Be liberal, they're internal");?>
                 </em>
             </th>
         </tr>
diff --git a/include/staff/slaplans.inc.php b/include/staff/slaplans.inc.php
index 3e6c5c932..7b06e9884 100644
--- a/include/staff/slaplans.inc.php
+++ b/include/staff/slaplans.inc.php
@@ -36,7 +36,7 @@ $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']);
 
 $pageNav = new Pagenate($count, $page, PAGE_LIMIT);
 $pageNav->setURL('slas.php', $qs);
-$showing = $pageNav->showing().' '._N('SLA plan', 'SLA plans', $count);
+$showing = $pageNav->showing().' '._N('Service Level Agreement', 'Service Level Agreements', $count);
 $qstr .= '&amp;order='.($order=='DESC' ? 'ASC' : 'DESC');
 ?>
 <form action="slas.php" method="POST" name="slas">
diff --git a/include/staff/staff.inc.php b/include/staff/staff.inc.php
index 384e59d07..bf2f925f4 100644
--- a/include/staff/staff.inc.php
+++ b/include/staff/staff.inc.php
@@ -199,7 +199,7 @@ if (count($bks) > 1) {
 
     <div style="padding:8px 3px; margin-top: 1.6em">
         <strong class="big"><?php echo __('Internal Notes');?>: </strong>
-        <?php echo __("be liberal, they're internal.");?>
+        <?php echo __("Be liberal, they're internal");?>
     </div>
 
     <textarea name="notes" class="richtext">
diff --git a/include/staff/staffmembers.inc.php b/include/staff/staffmembers.inc.php
index be3d276f6..7ddba38ea 100644
--- a/include/staff/staffmembers.inc.php
+++ b/include/staff/staffmembers.inc.php
@@ -87,7 +87,7 @@ $agents->limit($pageNav->getLimit())->offset($pageNav->getStart());
                 <input type="hidden" name="a" value="filter">
                 <select name="did" id="did">
                     <option value="0">&mdash;
-                        <?php echo __( 'All Department');?> &mdash;</option>
+                        <?php echo __( 'All Departments');?> &mdash;</option>
                     <?php if (($depts=Dept::getDepartments())) { foreach ($depts as $id=> $name) { $sel=($_REQUEST['did'] && $_REQUEST['did']==$id)?'selected="selected"':''; echo sprintf('
                     <option value="%d" %s>%s</option>',$id,$sel,$name); } } ?>
                 </select>
diff --git a/include/staff/syslogs.inc.php b/include/staff/syslogs.inc.php
index 13d355928..0d3f05e21 100644
--- a/include/staff/syslogs.inc.php
+++ b/include/staff/syslogs.inc.php
@@ -81,7 +81,7 @@ $res=db_query($query);
 if($res && ($num=db_num_rows($res)))
     $showing=$pageNav->showing().' '.$title;
 else
-    $showing=__('No logs found!');
+    $showing=__('No logs found');
 ?>
 
 <div id="basic_search">
@@ -97,8 +97,9 @@ else
                     &nbsp;<?php echo __('Log Level'); ?>:&nbsp;<i class="help-tip icon-question-sign" href="#type"></i>
                     <select name='type'>
                         <option value="" selected><?php echo __('All');?></option>
-                        <option value="Error" <?php echo ($type=='Error')?'selected="selected"':''; ?>><?php echo __('Errors');?></option>
-                        <option value="Warning" <?php echo ($type=='Warning')?'selected="selected"':''; ?>><?php echo __('Warnings');?></option>                <option value="Debug" <?php echo ($type=='Debug')?'selected="selected"':''; ?>><?php echo __('Debug');?></option>
+                        <option value="Error" <?php echo ($type=='Error')?'selected="selected"':''; ?>><?php echo __('ERROR');?></option>
+                        <option value="Warning" <?php echo ($type=='Warning')?'selected="selected"':''; ?>><?php echo __('WARN');?></option>
+                        <option value="Debug" <?php echo ($type=='Debug')?'selected="selected"':''; ?>><?php echo __('DEBUG');?></option>
                     </select>
                     &nbsp;&nbsp;
                     <input type="submit" Value="<?php echo __('Go!');?>" />
diff --git a/include/staff/template.inc.php b/include/staff/template.inc.php
index 7dd34df89..c8a91cace 100644
--- a/include/staff/template.inc.php
+++ b/include/staff/template.inc.php
@@ -156,7 +156,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         <tr>
             <th colspan="2">
                 <em><strong><?php echo __('Internal Notes');?></strong>: <?php echo __(
-                "be liberal, they're internal");?></em>
+                "Be liberal, they're internal");?></em>
             </th>
         </tr>
         <tr>
diff --git a/include/staff/templates/task-view.tmpl.php b/include/staff/templates/task-view.tmpl.php
index f53a410ef..e2e26b7cc 100644
--- a/include/staff/templates/task-view.tmpl.php
+++ b/include/staff/templates/task-view.tmpl.php
@@ -533,14 +533,14 @@ else
                             <option value="open" <?php
                                 echo $task->isOpen() ?
                                 'selected="selected"': ''; ?>> <?php
-                                echo _('Open'); ?></option>
+                                echo __('Open'); ?></option>
                             <?php
                             if ($task->isClosed() || $canClose) {
                                 ?>
                             <option value="closed" <?php
                                 echo $task->isClosed() ?
                                 'selected="selected"': ''; ?>> <?php
-                                echo _('Closed'); ?></option>
+                                echo __('Closed'); ?></option>
                             <?php
                             } ?>
                         </select>
@@ -593,14 +593,14 @@ else
                             <option value="open" <?php
                                 echo $task->isOpen() ?
                                 'selected="selected"': ''; ?>> <?php
-                                echo _('Open'); ?></option>
+                                echo __('Open'); ?></option>
                             <?php
                             if ($task->isClosed() || $canClose) {
                                 ?>
                             <option value="closed" <?php
                                 echo $task->isClosed() ?
                                 'selected="selected"': ''; ?>> <?php
-                                echo _('Closed'); ?></option>
+                                echo __('Closed'); ?></option>
                             <?php
                             } ?>
                         </select>
diff --git a/include/staff/templates/user-account.tmpl.php b/include/staff/templates/user-account.tmpl.php
index ce1605f96..78c0afdc4 100644
--- a/include/staff/templates/user-account.tmpl.php
+++ b/include/staff/templates/user-account.tmpl.php
@@ -139,7 +139,7 @@ if ($info['error']) {
                     'checked="checked"' : ''; ?>> <?php echo __('Password Reset Required'); ?></div>
                    <div><input type="checkbox" name="forbid-pwchange-flag" value="1" <?php
                     echo !$account->isPasswdResetEnabled() ?
-                    'checked="checked"' : ''; ?>> <?php echo __('User Cannot Change Password'); ?></div>
+                    'checked="checked"' : ''; ?>> <?php echo __('User cannot change password'); ?></div>
                 </td>
             </tr>
         </tbody>
diff --git a/include/staff/ticket-open.inc.php b/include/staff/ticket-open.inc.php
index c7680704f..5319cb1af 100644
--- a/include/staff/ticket-open.inc.php
+++ b/include/staff/ticket-open.inc.php
@@ -371,7 +371,7 @@ print $response_form->getField('attachments')->render();
                     <?php
                     if($thisstaff->getSignature()) { ?>
                         <label><input type="radio" name="signature" value="mine"
-                            <?php echo ($info['signature']=='mine')?'checked="checked"':''; ?>> <?php echo __('My signature');?></label>
+                            <?php echo ($info['signature']=='mine')?'checked="checked"':''; ?>> <?php echo __('My Signature');?></label>
                     <?php
                     } ?>
                     <label><input type="radio" name="signature" value="dept"
diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php
index 782151d32..ffa44110d 100644
--- a/include/staff/ticket-view.inc.php
+++ b/include/staff/ticket-view.inc.php
@@ -896,7 +896,8 @@ if ($errors['err'] && isset($_POST['a'])) {
             '<b><span id="newuser">this guy</span></b>'); ?>
     </p>
     <p class="confirm-action" style="display:none;" id="delete-confirm">
-        <font color="red"><strong><?php echo __('Are you sure you want to DELETE this ticket?');?></strong></font>
+        <font color="red"><strong><?php echo sprintf(
+            __('Are you sure you want to DELETE %s?', __('this ticket')));?></strong></font>
         <br><br><?php echo __('Deleted data CANNOT be recovered, including any associated attachments.');?>
     </p>
     <div><?php echo __('Please confirm to continue.');?></div>
diff --git a/include/upgrader/done.inc.php b/include/upgrader/done.inc.php
index 58edda1cb..894d7ff29 100644
--- a/include/upgrader/done.inc.php
+++ b/include/upgrader/done.inc.php
@@ -29,7 +29,7 @@ $_SESSION['ost_upgrader']=null;
                 sprintf('<a href="http://osticket.com/wiki/Release_Notes" target="_blank">%s</a>', __('osTicket Wiki')));?></p>
             <p><b><?php echo __('Stay up to date');?></b>: <?php echo __("It's important to keep your osTicket installation up to date. Get announcements, security updates and alerts delivered directly to you!");?>
             <?php echo sprintf(__('%1$s Get in the loop %2$s today and stay informed!'), '<a target="_blank" href="http://osticket.com/subscribe.php">', '</a>');?></p>
-            <p><b><?php echo __('Commercial support available');?></b>: <?php echo sprintf(__('Get guidance and hands-on expertise to address unique challenges and make sure your osTicket runs smoothly, efficiently, and securely. %1$s Learn More! %2$s'), '<a target="_blank" href="http://osticket.com/support">','</a>');?></p>
+            <p><b><?php echo __('Commercial Support Available');?></b>: <?php echo sprintf(__('Get guidance and hands-on expertise to address unique challenges and make sure your osTicket runs smoothly, efficiently, and securely. %1$s Learn More! %2$s'), '<a target="_blank" href="http://osticket.com/support">','</a>');?></p>
    </div>
    <div class="clear"></div>
 </div>
diff --git a/include/upgrader/prereq.inc.php b/include/upgrader/prereq.inc.php
index 7ab7b4c5b..2c0e8d853 100644
--- a/include/upgrader/prereq.inc.php
+++ b/include/upgrader/prereq.inc.php
@@ -41,7 +41,7 @@ if(!defined('OSTSCPINC') || !$thisstaff || !$thisstaff->isAdmin()) die('Access D
             <p>1. <?php echo __('Remember to back up your osTicket database');?></p>
             <p>2. <?php echo sprintf(__('Refer to %1$s Upgrade Guide %2$s for the latest tips'), '<a href="http://osticket.com/wiki/Upgrade_and_Migration" target="_blank">', '</a>');?></p>
             <p>3. <?php echo __('If you experience any problems, you can always restore your files/database backup.');?></p>
-            <p>4. <?php echo sprintf(__('We can help, feel free to %1$s contact us %2$s for professional help.'), '<a href="http://osticket.com/support/" target="_blank">', '</a>');?></p>
+            <p>4. <?php echo sprintf(__('We can help. Feel free to %1$s contact us %2$s for professional help.'), '<a href="http://osticket.com/support/" target="_blank">', '</a>');?></p>
 
     </div>
     <div class="clear"></div>
diff --git a/include/upgrader/upgrade.inc.php b/include/upgrader/upgrade.inc.php
index 8588f742e..302688689 100644
--- a/include/upgrader/upgrade.inc.php
+++ b/include/upgrader/upgrade.inc.php
@@ -33,14 +33,15 @@ $action=$upgrader->getNextAction();
                     <input type="hidden" name="s" value="upgrade">
                     <input type="hidden" id="mode" name="m" value="<?php echo $upgrader->getMode(); ?>">
                     <input type="hidden" name="sh" value="<?php echo $upgrader->getSchemaSignature(); ?>">
-                    <input class="btn"  type="submit" name="submit" value="<?php echo __('Upgrade Now!');?>">
+                    <input class="btn"  type="submit" name="submit" value="<?php echo __('Upgrade Now');?>">
                 </form>
             </div>
     </div>
     <div class="sidebar">
         <div class="content">
             <h3><?php echo __('Upgrade Tips');?></h3>
-            <p>1. <?php echo __('Be patient the process will take a couple of minutes.');?></p>
+            <p>1. <?php echo __("Be patient. The upgrade process will take a couple of seconds.");?></p>
+
             <p>2. <?php echo __('If you experience any problems, you can always restore your files/database backup.');?></p>
             <p>3. <?php echo sprintf(__('We can help. Feel free to %1$s contact us %2$s for professional help.'), '<a href="http://osticket.com/support" target="_blank">', '</a>');?></p>
         </div>
diff --git a/pwreset.php b/pwreset.php
index 10a7db2fc..e083d3956 100644
--- a/pwreset.php
+++ b/pwreset.php
@@ -26,7 +26,7 @@ if($_POST) {
                     $banner = __('Unable to send reset email. Internal error');
             }
             else
-                $banner = sprintf(__('Unable to verify username: %s'),
+                $banner = sprintf(__('Unable to verify username %s'),
                     Format::htmlchars($_POST['userid']));
             break;
         case 'reset':
diff --git a/scp/apikeys.php b/scp/apikeys.php
index c4de31810..898acafa2 100644
--- a/scp/apikeys.php
+++ b/scp/apikeys.php
@@ -18,15 +18,15 @@ include_once(INCLUDE_DIR.'class.api.php');
 
 $api=null;
 if($_REQUEST['id'] && !($api=API::lookup($_REQUEST['id'])))
-    $errors['err']=sprintf(__('%s: Unknown or invalid ID.'), __('API key'));
+    $errors['err']=sprintf(__('%s: Unknown or invalid ID.'), __('API Key'));
 
 if($_POST){
     switch(strtolower($_POST['do'])){
         case 'update':
             if(!$api){
-                $errors['err']=sprintf(__('%s: Unknown or invalid'), __('API key'));
+                $errors['err']=sprintf(__('%s: Unknown or invalid'), __('API Key'));
             }elseif($api->update($_POST,$errors)){
-                $msg=sprintf(__('Succesfully updated %s'), __('this API key'));
+                $msg=sprintf(__('Successfully updated %s'), __('this API key'));
             }elseif(!$errors['err']){
                 $errors['err']=sprintf(__('Error updating %s. Try again!'), __('this API key'));
             }
@@ -57,7 +57,7 @@ if($_POST){
                                 $warn = sprintf(__('%1$d of %2$d %3$s enabled'), $num, $count,
                                     _N('selected API key', 'selected API keys', $count));
                         } else {
-                            $errors['err'] = sprintf(__('Unable to enable %s.'),
+                            $errors['err'] = sprintf(__('Unable to enable %s'),
                                 _N('selected API key', 'selected API keys', $count));
                         }
                         break;
diff --git a/scp/banlist.php b/scp/banlist.php
index bbebfa4b7..fe5af1867 100644
--- a/scp/banlist.php
+++ b/scp/banlist.php
@@ -34,7 +34,7 @@ if($_POST && !$errors && $filter){
             if(!$rule){
                 $errors['err']=sprintf(__('%s: Unknown or invalid'), __('ban rule'));
             }elseif(!$_POST['val'] || !Validator::is_email($_POST['val'])){
-                $errors['err']=$errors['val']=__('Valid email address required');
+                $errors['err']=$errors['val']=__('Valid email address is required');
             }elseif(!$errors){
                 $vars=array('what'=>'email',
                             'how'=>'equal',
@@ -53,7 +53,7 @@ if($_POST && !$errors && $filter){
             if(!$filter) {
                 $errors['err']=sprintf(__('%s: Unknown or invalid'), __('ban list'));
             }elseif(!$_POST['val'] || !Validator::is_email($_POST['val'])) {
-                $errors['err']=$errors['val']=__('Valid email address required');
+                $errors['err']=$errors['val']=__('Valid email address is required');
             }elseif(BanList::includes(trim($_POST['val']))) {
                 $errors['err']=$errors['val']=__('Email already in the ban list');
             }elseif($filter->addRule('email','equal',trim($_POST['val']),array('isactive'=>$_POST['isactive'],'notes'=>$_POST['notes']))) {
diff --git a/scp/canned.php b/scp/canned.php
index 6f2631e2a..06f2601b9 100644
--- a/scp/canned.php
+++ b/scp/canned.php
@@ -108,10 +108,10 @@ if ($_POST) {
                                 $msg = sprintf(__('Successfully enabled %s'),
                                     _N('selected canned response', 'selected canned responses', $count));
                             else
-                                $warn = sprintf(__('%1$d of %2$d %s enabled'), $num, $count,
+                                $warn = sprintf(__('%1$d of %2$d %3$s enabled'), $num, $count,
                                     _N('selected canned response', 'selected canned responses', $count));
                         } else {
-                            $errors['err'] = sprintf(__('Unable to enable %s.'),
+                            $errors['err'] = sprintf(__('Unable to enable %s'),
                                 _N('selected canned response', 'selected canned responses', $count));
                         }
                         break;
@@ -123,7 +123,7 @@ if ($_POST) {
                                 $msg = sprintf(__('Successfully disabled %s'),
                                     _N('selected canned response', 'selected canned responses', $count));
                             else
-                                $warn = sprintf(__('%1$d of %2$d %s disabled'), $num, $count,
+                                $warn = sprintf(__('%1$d of %2$d %3$s disabled'), $num, $count,
                                     _N('selected canned response', 'selected canned responses', $count));
                         } else {
                             $errors['err'] = sprintf(__('Unable to disable %s'),
@@ -149,7 +149,7 @@ if ($_POST) {
                                 _N('selected canned response', 'selected canned responses', $count));
                         break;
                     default:
-                        $errors['err']=__('Unknown command');
+                        $errors['err']=__('Unknown action');
                 }
             }
             break;
diff --git a/scp/categories.php b/scp/categories.php
index 3e25c1d67..0aa2785c5 100644
--- a/scp/categories.php
+++ b/scp/categories.php
@@ -43,7 +43,7 @@ if($_POST){
         case 'create':
             $category = Category::create();
             if ($category->update($_POST, $errors)) {
-                $msg=sprintf(__('Successfull added %s'), Format::htmlchars($_POST['name']));
+                $msg=sprintf(__('Successfully added %s'), Format::htmlchars($_POST['name']));
                 $_REQUEST['a']=null;
             } elseif(!$errors['err']) {
                 $errors['err']=sprintf(__('Unable to add %s. Correct error(s) below and try again.'),
diff --git a/scp/departments.php b/scp/departments.php
index d90a1953e..2f8fcfce4 100644
--- a/scp/departments.php
+++ b/scp/departments.php
@@ -62,7 +62,7 @@ if($_POST){
                                 $warn=sprintf(__(
                                     /* Phrase will read:
                                        <a> of <b> <selected objects> made PUBLIC */
-                                    '%1$d of %2$d %s made PUBLIC'), $num, $count,
+                                    '%1$d of %2$d %3$s made PUBLIC'), $num, $count,
                                     _N('selected department', 'selected departments', $count));
                         } else {
                             $errors['err']=sprintf(__('Unable to make %s PUBLIC.'),
@@ -111,7 +111,7 @@ if($_POST){
                                     '%1$d of %2$d %3$s deleted'), $i, $count,
                                     _N('selected department', 'selected departments', $count));
                             elseif(!$errors['err'])
-                                $errors['err'] = sprintf(__('Unable to delete %s.'),
+                                $errors['err'] = sprintf(__('Unable to delete %s'),
                                     _N('selected department', 'selected departments', $count));
                         }
                         break;
diff --git a/scp/faq.php b/scp/faq.php
index 358a2afec..0c8786a2e 100644
--- a/scp/faq.php
+++ b/scp/faq.php
@@ -68,7 +68,7 @@ if ($_POST) {
                 // Delete draft for this new faq
                 Draft::deleteForNamespace('faq', $thisstaff->getId());
             } elseif(!$errors['err'])
-                $errors['err'] = sprintf(__('Unable to add %s. Correct error(s) below and try again.'),
+                $errors['err'] = sprintf(__('Unable to add %s. Correct any errors below and try again.'),
                      __('this FAQ article'));
         break;
         case 'update':
@@ -81,7 +81,7 @@ if ($_POST) {
                 // Delete pending draft updates for this faq (for ALL users)
                 Draft::deleteForNamespace('faq.'.$faq->getId());
             } elseif(!$errors['err'])
-                $errors['err'] = sprintf(__('Unable to update %s. Correct error(s) below and try again.'),
+                $errors['err'] = sprintf(__('Unable to update %s. Correct any errors below and try again.'),
                     __('this FAQ article'));
             break;
         case 'manage-faq':
@@ -111,7 +111,7 @@ if ($_POST) {
                             $msg=sprintf(__('Successfully deleted %s'), Format::htmlchars($faq->getQuestion()));
                             $faq=null;
                         } else {
-                            $errors['err']=sprintf(__('Unable to delete %s.'), __('this FAQ article'));
+                            $errors['err']=sprintf(__('Unable to delete %s'), __('this FAQ article'));
                         }
                         break;
                     default:
diff --git a/scp/filters.php b/scp/filters.php
index 57b05e526..a70153197 100644
--- a/scp/filters.php
+++ b/scp/filters.php
@@ -94,7 +94,7 @@ if($_POST){
                             $msg = sprintf(__('Successfully deleted %s'),
                                 _N('selected ticket filter', 'selected ticket filters', $count));
                         elseif($i>0)
-                            $warn = sprintf(__('%1$d of %2$d %s deleted'), $i, $count,
+                            $warn = sprintf(__('%1$d of %2$d %3$s deleted'), $i, $count,
                                 _N('selected ticket filter', 'selected ticket filters', $count));
                         elseif(!$errors['err'])
                             $errors['err'] = sprintf(__('Unable to delete %s'),
@@ -106,7 +106,7 @@ if($_POST){
             }
             break;
         default:
-            $errors['err']=__('Unknown command/action');
+            $errors['err']=__('Unknown action');
             break;
     }
 }
diff --git a/scp/forms.php b/scp/forms.php
index 59084775c..d98e7fc0e 100644
--- a/scp/forms.php
+++ b/scp/forms.php
@@ -91,7 +91,7 @@ if($_POST) {
                             $msg = sprintf(__('Successfully deleted %s'),
                                 _N('selected custom form', 'selected custom forms', $count));
                         elseif ($i > 0)
-                            $warn = sprintf(__('%1$d of %1$d %3$s deleted'), $i, $count,
+                            $warn = sprintf(__('%1$d of %2$d %3$s deleted'), $i, $count,
                                 _N('selected custom form', 'selected custom forms', $count));
                         elseif (!$errors['err'])
                             $errors['err'] = sprintf(__('Unable to delete %s'),
diff --git a/scp/helptopics.php b/scp/helptopics.php
index 035b04da8..2ecd790fa 100644
--- a/scp/helptopics.php
+++ b/scp/helptopics.php
@@ -75,7 +75,7 @@ if($_POST){
                                 $warn = sprintf(__('%1$d of %2$d %3$s enabled'), $num, $count,
                                     _N('selected help topic', 'selected help topics', $count));
                         } else {
-                            $errors['err'] = sprintf(__('Unable to enable %s.'),
+                            $errors['err'] = sprintf(__('Unable to enable %s'),
                                 _N('selected help topic', 'selected help topics', $count));
                         }
                         break;
diff --git a/scp/lists.php b/scp/lists.php
index 6ec0fdc92..9f3e54f2a 100644
--- a/scp/lists.php
+++ b/scp/lists.php
@@ -80,7 +80,7 @@ if($_POST) {
                 }
 
                 if ($errors)
-                     $errors['err'] = $errors['err'] ?: sprintf(__('Unable to update %s. Correct error(s) below and try again!'),
+                     $errors['err'] = $errors['err'] ?: sprintf(__('Unable to update %s. Correct any errors below and try again.'),
                         __('custom list items'));
                 else {
                     $list->_items = null;
@@ -89,11 +89,11 @@ if($_POST) {
                 }
 
             } elseif ($errors)
-                $errors['err'] = $errors['err'] ?: sprintf(__('Unable to update %s. Correct error(s) below and try again!'),
+                $errors['err'] = $errors['err'] ?: sprintf(__('Unable to update %s. Correct any errors below and try again.'),
                     __('this custom list'));
             else
-                $errors['err']=sprintf(__('Unable to update %s.'), __('this custom list'))
-                    .' '.__('Internal error occurred');
+                $errors['err']=sprintf(__('Unable to update %s'), __('this custom list'))
+                    .' — '.__('Internal error occurred');
 
             break;
         case 'add':
@@ -106,8 +106,8 @@ if($_POST) {
                 $errors['err']=sprintf(__('Unable to add %s. Correct error(s) below and try again.'),
                     __('this custom list'));
             } else {
-                $errors['err']=sprintf(__('Unable to add %s.'), __('this custom list'))
-                    .' '.__('Internal error occurred');
+                $errors['err']=sprintf(__('Unable to add %s'), __('this custom list'))
+                    .' — '.__('Internal error occurred');
             }
             break;
 
@@ -146,7 +146,7 @@ if($_POST) {
             else {
                 $status = $list->importFromPost($_FILES['import'] ?: $_POST['pasted']);
                 if (is_numeric($status))
-                    $msg = sprintf(__('Successfully imported %1$d %2$s.'), $status,
+                    $msg = sprintf(__('Successfully imported %1$d %2$s'), $status,
                         _N('list item', 'list items', $status));
                 else
                     $errors['err'] = $status;
diff --git a/scp/orgs.php b/scp/orgs.php
index bfd2210ab..1e02a3f73 100644
--- a/scp/orgs.php
+++ b/scp/orgs.php
@@ -62,7 +62,7 @@ if ($_POST) {
 
     case 'mass_process':
         if (!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
-            $errors['err'] = sprintf(__('You must select at least %s.'),
+            $errors['err'] = sprintf(__('You must select at least %s'),
                 __('one organization'));
         }
         else {
diff --git a/scp/pages.php b/scp/pages.php
index 773d38fd7..b0960f4c2 100644
--- a/scp/pages.php
+++ b/scp/pages.php
@@ -30,7 +30,7 @@ if($_POST) {
                 $msg=sprintf(__('Successfully added %s'), Format::htmlchars($_POST['name']));
                 Draft::deleteForNamespace('page');
             } elseif(!$errors['err'])
-                $errors['err'] = sprintf(__('Unable to add %s. Correct error(s) below and try again.'),
+                $errors['err'] = sprintf(__('Unable to add %s. Correct any errors below and try again.'),
                     __('this site page'));
         break;
         case 'update':
@@ -43,12 +43,12 @@ if($_POST) {
                 $_REQUEST['a']=null; //Go back to view
                 Draft::deleteForNamespace('page.'.$page->getId().'%');
             } elseif(!$errors['err'])
-                $errors['err'] = sprintf(__('Unable to update %s. Correct error(s) below and try again.'),
+                $errors['err'] = sprintf(__('Unable to update %s. Correct any errors below and try again.'),
                     __('this site page'));
             break;
         case 'mass_process':
             if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
-                $errors['err'] = sprintf(__('You must select at least %s.'),
+                $errors['err'] = sprintf(__('You must select at least %s'),
                     __('one site page'));
             } elseif(array_intersect($_POST['ids'], $cfg->getDefaultPages()) && strcasecmp($_POST['a'], 'enable')) {
                 $errors['err'] = sprintf(__('One or more of the %s is in-use and CANNOT be disabled/deleted.'),
diff --git a/scp/plugins.php b/scp/plugins.php
index 06b7cbcd2..01f5d6bcc 100644
--- a/scp/plugins.php
+++ b/scp/plugins.php
@@ -25,7 +25,7 @@ if($_POST) {
                     if ($p = Plugin::lookup($id)) {
                         if (!$p->enable())
                             $errors['err'] = sprintf(
-                                __('Unable to enable %s.'),
+                                __('Unable to enable %s'),
                                 $p->getName());
                     }
                 }
diff --git a/scp/roles.php b/scp/roles.php
index 749dee96f..4482ff599 100644
--- a/scp/roles.php
+++ b/scp/roles.php
@@ -39,11 +39,11 @@ if ($_POST) {
             $msg = __('Role updated successfully');
         } elseif ($errors) {
             $errors['err'] = $errors['err'] ?:
-                sprintf(__('Unable to update %s. Correct error(s) below and try again!'),
+                sprintf(__('Unable to update %s. Correct any errors below and try again.'),
                     __('this role'));
         } else {
-            $errors['err'] = sprintf(__('Unable to update %s.'), __('this role'))
-                    .' '.__('Internal error occurred');
+            $errors['err'] = sprintf(__('Unable to update %s'), __('this role'))
+                    .' — '.__('Internal error occurred');
         }
         break;
     case 'add':
@@ -57,8 +57,8 @@ if ($_POST) {
                 sprintf(__('Unable to add %s. Correct error(s) below and try again.'),
                     __('role'));
         } else {
-            $errors['err'] = sprintf(__('Unable to add %s.'), __('role'))
-                    .' '.__('Internal error occurred');
+            $errors['err'] = sprintf(__('Unable to add %s'), __('role'))
+                    .' — '.__('Internal error occurred');
         }
         break;
     case 'mass_process':
diff --git a/scp/slas.php b/scp/slas.php
index 62ba66c92..c8bcd0e0f 100644
--- a/scp/slas.php
+++ b/scp/slas.php
@@ -19,7 +19,7 @@ include_once(INCLUDE_DIR.'class.sla.php');
 $sla=null;
 if($_REQUEST['id'] && !($sla=SLA::lookup($_REQUEST['id'])))
     $errors['err']=sprintf(__('%s: Unknown or invalid ID.'),
-        __('SLA plan'));
+        __('SLA Plan'));
 
 if($_POST){
     switch(strtolower($_POST['do'])){
@@ -48,7 +48,7 @@ if($_POST){
             break;
         case 'mass_process':
             if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
-                $errors['err'] = sprintf(__('You must select at least %s.'),
+                $errors['err'] = sprintf(__('You must select at least %s'),
                     __('one SLA plan'));
             } else {
                 $count=count($_POST['ids']);
diff --git a/scp/staff.php b/scp/staff.php
index cac7f3fa4..fc6f634ba 100644
--- a/scp/staff.php
+++ b/scp/staff.php
@@ -54,7 +54,7 @@ if($_POST){
             break;
         case 'mass_process':
             if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
-                $errors['err'] = sprintf(__('You must select at least %s.'),
+                $errors['err'] = sprintf(__('You must select at least %s'),
                     __('one agent'));
             } elseif(in_array($_POST['a'], array('disable', 'delete'))
                 && in_array($thisstaff->getId(),$_POST['ids'])
diff --git a/scp/tasks.php b/scp/tasks.php
index 616a1720a..fc1a2a7ec 100644
--- a/scp/tasks.php
+++ b/scp/tasks.php
@@ -98,9 +98,9 @@ if($_POST && !$errors):
 
             } else {
                 if (!$errors['err'])
-                    $errors['err'] = __('Unable to post reply - missing or invalid data.');
+                    $errors['err'] = __('Unable to post the reply - missing or invalid data.');
 
-                $errors['postreply'] = __('Unable to post the reply. Correct the error(s) below and try again!');
+                $errors['postreply'] = __('Unable to post the reply. Correct the errors below and try again!');
             }
             break;
         default:
@@ -221,7 +221,7 @@ if($task) {
         // Auto add new fields to the entries
         foreach ($forms as $f) $f->addMissingFields();
     } elseif($_REQUEST['a'] == 'print' && !$task->pdfExport($_REQUEST['psize']))
-        $errors['err'] = __('Internal error: Unable to export the task to PDF for print.');
+        $errors['err'] = __('Internal error: Unable to print to PDF');
 } else {
 	$inc = 'tasks.inc.php';
     if ($_REQUEST['a']=='open' &&
diff --git a/scp/teams.php b/scp/teams.php
index 670ef7cce..5ba798114 100644
--- a/scp/teams.php
+++ b/scp/teams.php
@@ -28,7 +28,7 @@ if($_POST){
                 $msg=sprintf(__('Successfully updated %s'),
                     __('this team'));
             }elseif(!$errors['err']){
-                $errors['err']=sprintf(__('Unable to update %s. Correct any error(s) below and try again.'),
+                $errors['err']=sprintf(__('Unable to update %s. Correct any errors below and try again.'),
                     __('this team'));
             }
             break;
@@ -44,7 +44,7 @@ if($_POST){
             break;
         case 'mass_process':
             if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
-                $errors['err']=sprintf(__('You must select at least %s.'), __('one team'));
+                $errors['err']=sprintf(__('You must select at least %s'), __('one team'));
             } else {
                 $count=count($_POST['ids']);
                 switch(strtolower($_POST['a'])) {
diff --git a/scp/tickets.php b/scp/tickets.php
index 72a7c8a34..57beb3d85 100644
--- a/scp/tickets.php
+++ b/scp/tickets.php
@@ -205,7 +205,9 @@ if($_POST && !$errors):
                 if(!$ticket->checkStaffPerm($thisstaff))
                     $ticket=null;
             } elseif(!$errors['err']) {
-                $errors['err']=__('Unable to update the ticket. Correct the errors below and try again!');
+                $errors['err']=sprintf(
+                    __('Unable to update %s. Correct any errors below and try again.'),
+                    __('ticket'));
             }
             break;
         case 'process':
@@ -318,7 +320,7 @@ if($_POST && !$errors):
                 if (!$thisstaff ||
                         !$thisstaff->hasPerm(TicketModel::PERM_CREATE, false)) {
                      $errors['err'] = sprintf('%s %s',
-                             sprintf(__('You do not have permission %s.'),
+                             sprintf(__('You do not have permission %s'),
                                  __('to create tickets')),
                              __('Contact admin for such access'));
                 } else {
diff --git a/scp/users.php b/scp/users.php
index f66505038..a2fc26160 100644
--- a/scp/users.php
+++ b/scp/users.php
@@ -72,7 +72,7 @@ if ($_POST) {
             break;
         case 'mass_process':
             if (!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) {
-                $errors['err'] = sprintf(__('You must select at least %s.'),
+                $errors['err'] = sprintf(__('You must select at least %s'),
                     __('one end user'));
             } else {
                 $users = User::objects()->filter(
@@ -150,7 +150,7 @@ if ($_POST) {
         case 'import-users':
             $status = User::importFromPost($_FILES['import'] ?: $_POST['pasted']);
             if (is_numeric($status))
-                $msg = sprintf(__('Successfully imported %1$d %2$s.'), $status,
+                $msg = sprintf(__('Successfully imported %1$d %2$s'), $status,
                     _N('end user', 'end users', $status));
             else
                 $errors['err'] = $status;
diff --git a/setup/inc/class.installer.php b/setup/inc/class.installer.php
index 85441fedd..5cb178887 100644
--- a/setup/inc/class.installer.php
+++ b/setup/inc/class.installer.php
@@ -72,7 +72,7 @@ class Installer extends SetupWizard {
             $this->errors['admin_email']=__('Conflicts with system email above');
         //Admin's pass confirmation.
         if(!$this->errors && strcasecmp($vars['passwd'],$vars['passwd2']))
-            $this->errors['passwd2']=__('Password(s) do not match');
+            $this->errors['passwd2']=__('Passwords do not match');
 
         //Check table prefix underscore required at the end!
         if($vars['prefix'] && substr($vars['prefix'], -1)!='_')
diff --git a/setup/inc/install-prereq.inc.php b/setup/inc/install-prereq.inc.php
index bff091f60..97d7a13c4 100644
--- a/setup/inc/install-prereq.inc.php
+++ b/setup/inc/install-prereq.inc.php
@@ -10,7 +10,7 @@ if(!defined('SETUPINC')) die('Kwaheri!');
             <p><?php echo __("The installer will guide you every step of the way in the installation process. You're minutes away from your awesome customer support system!");?></p>
             </div>
             <h2><?php echo __('Prerequisites');?></h3>
-            <p><?php echo __("Before we begin, we'll check your server configuration to make sure you meet the minimum requirements to install and run osTicket.");?></p>
+            <p><?php echo __("Before we begin, we'll check your server configuration to make sure you meet the minimum requirements to run the latest version of osTicket.");?></p>
             <h3><?php echo __('Required');?>: <font color="red"><?php echo $errors['prereq']; ?></font></h3>
             <?php echo __('These items are necessary in order to install and use osTicket.');?>
             <ul class="progress">
@@ -23,24 +23,24 @@ if(!defined('SETUPINC')) die('Kwaheri!');
             <h3><?php echo __('Recommended');?>:</h3>
             <?php echo __('You can use osTicket without these, but you may not be able to use all features.');?>
             <ul class="progress">
-                <li class="<?php echo extension_loaded('gd')?'yes':'no'; ?>">Gdlib <?php echo __('extension');?></li>
-                <li class="<?php echo extension_loaded('imap')?'yes':'no'; ?>">PHP IMAP <?php echo __('extension');?> &mdash; <em><?php
+                <li class="<?php echo extension_loaded('gd')?'yes':'no'; ?>">Gdlib <?php echo __('Extension');?></li>
+                <li class="<?php echo extension_loaded('imap')?'yes':'no'; ?>">PHP IMAP <?php echo __('Extension');?> &mdash; <em><?php
                     echo __('Required for mail fetching');?></em></li>
-                <li class="<?php echo extension_loaded('xml') ?'yes':'no'; ?>">PHP XML <?php echo __('extension');?> <?php
+                <li class="<?php echo extension_loaded('xml') ?'yes':'no'; ?>">PHP XML <?php echo __('Extension');?> <?php
                     echo __('(for XML API)');?></li>
-                <li class="<?php echo extension_loaded('dom') ?'yes':'no'; ?>">PHP XML-DOM <?php echo __('extension');?> <?php
+                <li class="<?php echo extension_loaded('dom') ?'yes':'no'; ?>">PHP XML-DOM <?php echo __('Extension');?> <?php
                     echo __('(for HTML email processing)');?></li>
-                <li class="<?php echo extension_loaded('json')?'yes':'no'; ?>">PHP JSON <?php echo __('extension');?> <?php
+                <li class="<?php echo extension_loaded('json')?'yes':'no'; ?>">PHP JSON <?php echo __('Extension');?> <?php
                     echo __('(faster performance)');?></li>
-                <li class="<?php echo extension_loaded('mbstring')?'yes':'no'; ?>">Mbstring <?php echo __('extension');?> &mdash; <?php
+                <li class="<?php echo extension_loaded('mbstring')?'yes':'no'; ?>">Mbstring <?php echo __('Extension');?> &mdash; <?php
                     echo __('recommended for all installations');?></li>
-                <li class="<?php echo extension_loaded('phar')?'yes':'no'; ?>">Phar <?php echo __('extension');?> &mdash; <?php
+                <li class="<?php echo extension_loaded('phar')?'yes':'no'; ?>">Phar <?php echo __('Extension');?> &mdash; <?php
                     echo __('recommended for plugins and language packs');?></li>
-                <li class="<?php echo extension_loaded('intl')?'yes':'no'; ?>">Intl <?php echo __('extension');?> &mdash; <?php
+                <li class="<?php echo extension_loaded('intl')?'yes':'no'; ?>">Intl <?php echo __('Extension');?> &mdash; <?php
                     echo __('recommended for improved localization');?></li>
-                <li class="<?php echo extension_loaded('apcu')?'yes':'no'; ?>">APCu <?php echo __('extension');?> &mdash; <?php
+                <li class="<?php echo extension_loaded('apcu')?'yes':'no'; ?>">APCu <?php echo __('Extension');?> &mdash; <?php
                     echo __('(faster performance)');?></li>
-                <li class="<?php echo extension_loaded('Zend OPcache')?'yes':'no'; ?>">Zend OPcache <?php echo __('extension');?> &mdash; <?php
+                <li class="<?php echo extension_loaded('Zend OPcache')?'yes':'no'; ?>">Zend OPcache <?php echo __('Extension');?> &mdash; <?php
                     echo __('(faster performance)');?></li>
             </ul>
             <div id="bar">
diff --git a/setup/inc/subscribe.inc.php b/setup/inc/subscribe.inc.php
index e60fd275f..961ce7ba2 100644
--- a/setup/inc/subscribe.inc.php
+++ b/setup/inc/subscribe.inc.php
@@ -5,7 +5,7 @@ $info=($_POST && $errors)?Format::htmlchars($_POST):$_SESSION['info'];
         <h1><?php echo __('Basic Installation Completed');?></h1>
         <p><?php echo __('osTicket installation has been completed successfully.');?></p>
         <h3 style="color:#FF7700;"><?php echo __('Stay up to date');?>: </h3>
-        <?php echo __("It's important to keep your installation up to date. Get announcements, security updates and alerts delivered directly to you!");?>
+        <?php echo __("It's important to keep your osTicket installation up to date. Get announcements, security updates and alerts delivered directly to you!");?>
         <br><br>
         <form action="install.php" method="post">
             <input type="hidden" name="s" value="subscribe">
diff --git a/setup/tips.php b/setup/tips.php
index f2722d1dc..1ed08b7a4 100644
--- a/setup/tips.php
+++ b/setup/tips.php
@@ -39,7 +39,7 @@ require_once('setup.inc.php');
 <p><?php echo __("Retype admin's password. Must match.");?></p>
 </div>
 <div id="t9">
-<b><?php echo __('MySQL Table Prefix.');?></b>
+<b><?php echo __('MySQL Table Prefix');?></b>
 <p><?php echo __('osTicket requires table prefix in order to avoid possible table conflicts in a shared database.');?></p>
 </div>
 <div id="t10">
diff --git a/tickets.php b/tickets.php
index 8ba0bd644..13a3ef423 100644
--- a/tickets.php
+++ b/tickets.php
@@ -110,7 +110,7 @@ elseif (is_object($ticket) && $ticket->getId()) {
     switch(strtolower($_REQUEST['a'])) {
     case 'print':
         if (!$ticket || !$ticket->pdfExport($_REQUEST['psize']))
-            $errors['err'] = __('Internal error: Unable to export the ticket to PDF for print.');
+            $errors['err'] = __('Internal error: Unable to print to PDF');
         break;
     }
 }
-- 
GitLab