diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php index 8bb0f74731..ef2496b135 100644 --- a/src/__celerity_resource_map__.php +++ b/src/__celerity_resource_map__.php @@ -569,8 +569,8 @@ celerity_register_resource_map(array( ), '/rsrc/image/texture/dust_background.jpg' => array( - 'hash' => 'c32ab9819d4af583f5609bbd3750721a', - 'uri' => '/res/c32ab981/rsrc/image/texture/dust_background.jpg', + 'hash' => '1ff330c03712e08ca2eed006ccc6c1e7', + 'uri' => '/res/1ff330c0/rsrc/image/texture/dust_background.jpg', 'disk' => '/rsrc/image/texture/dust_background.jpg', 'type' => 'jpg', ), @@ -683,7 +683,7 @@ celerity_register_resource_map(array( ), 'aphront-form-view-css' => array( - 'uri' => '/res/efaecc2d/rsrc/css/aphront/form-view.css', + 'uri' => '/res/accfc3a4/rsrc/css/aphront/form-view.css', 'type' => 'css', 'requires' => array( @@ -692,7 +692,7 @@ celerity_register_resource_map(array( ), 'aphront-list-filter-view-css' => array( - 'uri' => '/res/e783d6e1/rsrc/css/aphront/list-filter-view.css', + 'uri' => '/res/cc6e940e/rsrc/css/aphront/list-filter-view.css', 'type' => 'css', 'requires' => array( @@ -828,7 +828,7 @@ celerity_register_resource_map(array( ), 'conpherence-widget-pane-css' => array( - 'uri' => '/res/e67ad581/rsrc/css/application/conpherence/widget-pane.css', + 'uri' => '/res/2b4113f7/rsrc/css/application/conpherence/widget-pane.css', 'type' => 'css', 'requires' => array( @@ -2591,7 +2591,7 @@ celerity_register_resource_map(array( ), 'maniphest-task-summary-css' => array( - 'uri' => '/res/14e825ce/rsrc/css/application/maniphest/task-summary.css', + 'uri' => '/res/b3930263/rsrc/css/application/maniphest/task-summary.css', 'type' => 'css', 'requires' => array( @@ -2708,7 +2708,7 @@ celerity_register_resource_map(array( ), 'phabricator-core-buttons-css' => array( - 'uri' => '/res/7320ca6d/rsrc/css/core/buttons.css', + 'uri' => '/res/4e6b94c8/rsrc/css/core/buttons.css', 'type' => 'css', 'requires' => array( @@ -2717,7 +2717,7 @@ celerity_register_resource_map(array( ), 'phabricator-core-css' => array( - 'uri' => '/res/1e7afaa9/rsrc/css/core/core.css', + 'uri' => '/res/9df0488c/rsrc/css/core/core.css', 'type' => 'css', 'requires' => array( @@ -3562,7 +3562,7 @@ celerity_register_resource_map(array( ), array( 'packages' => array( - 'b481b309' => + '4a549b8b' => array( 'name' => 'core.pkg.css', 'symbols' => @@ -3605,7 +3605,7 @@ celerity_register_resource_map(array( 35 => 'phabricator-object-item-list-view-css', 36 => 'global-drag-and-drop-css', ), - 'uri' => '/res/pkg/b481b309/core.pkg.css', + 'uri' => '/res/pkg/4a549b8b/core.pkg.css', 'type' => 'css', ), '95ceba95' => @@ -3765,7 +3765,7 @@ celerity_register_resource_map(array( 'uri' => '/res/pkg/cd1d650a/javelin.pkg.js', 'type' => 'js', ), - 'eb35a026' => + 'c41b4907' => array( 'name' => 'maniphest.pkg.css', 'symbols' => @@ -3775,7 +3775,7 @@ celerity_register_resource_map(array( 2 => 'aphront-attached-file-view-css', 3 => 'phabricator-project-tag-css', ), - 'uri' => '/res/pkg/eb35a026/maniphest.pkg.css', + 'uri' => '/res/pkg/c41b4907/maniphest.pkg.css', 'type' => 'css', ), '7707de41' => @@ -3795,18 +3795,18 @@ celerity_register_resource_map(array( ), 'reverse' => array( - 'aphront-attached-file-view-css' => 'eb35a026', - 'aphront-crumbs-view-css' => 'b481b309', - 'aphront-dialog-view-css' => 'b481b309', - 'aphront-error-view-css' => 'b481b309', - 'aphront-form-view-css' => 'b481b309', - 'aphront-list-filter-view-css' => 'b481b309', - 'aphront-pager-view-css' => 'b481b309', - 'aphront-panel-view-css' => 'b481b309', - 'aphront-table-view-css' => 'b481b309', - 'aphront-tokenizer-control-css' => 'b481b309', - 'aphront-tooltip-css' => 'b481b309', - 'aphront-typeahead-control-css' => 'b481b309', + 'aphront-attached-file-view-css' => 'c41b4907', + 'aphront-crumbs-view-css' => '4a549b8b', + 'aphront-dialog-view-css' => '4a549b8b', + 'aphront-error-view-css' => '4a549b8b', + 'aphront-form-view-css' => '4a549b8b', + 'aphront-list-filter-view-css' => '4a549b8b', + 'aphront-pager-view-css' => '4a549b8b', + 'aphront-panel-view-css' => '4a549b8b', + 'aphront-table-view-css' => '4a549b8b', + 'aphront-tokenizer-control-css' => '4a549b8b', + 'aphront-tooltip-css' => '4a549b8b', + 'aphront-typeahead-control-css' => '4a549b8b', 'differential-changeset-view-css' => '8aaacd1b', 'differential-core-view-css' => '8aaacd1b', 'differential-inline-comment-editor' => '322728f3', @@ -3820,7 +3820,7 @@ celerity_register_resource_map(array( 'differential-table-of-contents-css' => '8aaacd1b', 'diffusion-commit-view-css' => 'c8ce2d88', 'diffusion-icons-css' => 'c8ce2d88', - 'global-drag-and-drop-css' => 'b481b309', + 'global-drag-and-drop-css' => '4a549b8b', 'inline-comment-summary-css' => '8aaacd1b', 'javelin-aphlict' => '95ceba95', 'javelin-behavior' => 'cd1d650a', @@ -3892,48 +3892,48 @@ celerity_register_resource_map(array( 'javelin-util' => 'cd1d650a', 'javelin-vector' => 'cd1d650a', 'javelin-workflow' => 'cd1d650a', - 'lightbox-attachment-css' => 'b481b309', - 'maniphest-task-summary-css' => 'eb35a026', - 'maniphest-transaction-detail-css' => 'eb35a026', + 'lightbox-attachment-css' => '4a549b8b', + 'maniphest-task-summary-css' => 'c41b4907', + 'maniphest-transaction-detail-css' => 'c41b4907', 'phabricator-busy' => '95ceba95', 'phabricator-content-source-view-css' => '8aaacd1b', - 'phabricator-core-buttons-css' => 'b481b309', - 'phabricator-core-css' => 'b481b309', - 'phabricator-crumbs-view-css' => 'b481b309', - 'phabricator-directory-css' => 'b481b309', + 'phabricator-core-buttons-css' => '4a549b8b', + 'phabricator-core-css' => '4a549b8b', + 'phabricator-crumbs-view-css' => '4a549b8b', + 'phabricator-directory-css' => '4a549b8b', 'phabricator-drag-and-drop-file-upload' => '322728f3', 'phabricator-dropdown-menu' => '95ceba95', 'phabricator-file-upload' => '95ceba95', - 'phabricator-filetree-view-css' => 'b481b309', - 'phabricator-flag-css' => 'b481b309', - 'phabricator-form-view-css' => 'b481b309', - 'phabricator-header-view-css' => 'b481b309', - 'phabricator-jump-nav' => 'b481b309', + 'phabricator-filetree-view-css' => '4a549b8b', + 'phabricator-flag-css' => '4a549b8b', + 'phabricator-form-view-css' => '4a549b8b', + 'phabricator-header-view-css' => '4a549b8b', + 'phabricator-jump-nav' => '4a549b8b', 'phabricator-keyboard-shortcut' => '95ceba95', 'phabricator-keyboard-shortcut-manager' => '95ceba95', - 'phabricator-main-menu-view' => 'b481b309', + 'phabricator-main-menu-view' => '4a549b8b', 'phabricator-menu-item' => '95ceba95', - 'phabricator-nav-view-css' => 'b481b309', + 'phabricator-nav-view-css' => '4a549b8b', 'phabricator-notification' => '95ceba95', - 'phabricator-notification-css' => 'b481b309', - 'phabricator-notification-menu-css' => 'b481b309', - 'phabricator-object-item-list-view-css' => 'b481b309', + 'phabricator-notification-css' => '4a549b8b', + 'phabricator-notification-menu-css' => '4a549b8b', + 'phabricator-object-item-list-view-css' => '4a549b8b', 'phabricator-object-selector-css' => '8aaacd1b', 'phabricator-paste-file-upload' => '95ceba95', 'phabricator-prefab' => '95ceba95', - 'phabricator-project-tag-css' => 'eb35a026', - 'phabricator-remarkup-css' => 'b481b309', + 'phabricator-project-tag-css' => 'c41b4907', + 'phabricator-remarkup-css' => '4a549b8b', 'phabricator-shaped-request' => '322728f3', - 'phabricator-side-menu-view-css' => 'b481b309', - 'phabricator-standard-page-view' => 'b481b309', + 'phabricator-side-menu-view-css' => '4a549b8b', + 'phabricator-standard-page-view' => '4a549b8b', 'phabricator-textareautils' => '95ceba95', 'phabricator-tooltip' => '95ceba95', - 'phabricator-transaction-view-css' => 'b481b309', - 'phabricator-zindex-css' => 'b481b309', - 'sprite-apps-large-css' => 'b481b309', - 'sprite-gradient-css' => 'b481b309', - 'sprite-icon-css' => 'b481b309', - 'sprite-menu-css' => 'b481b309', - 'syntax-highlighting-css' => 'b481b309', + 'phabricator-transaction-view-css' => '4a549b8b', + 'phabricator-zindex-css' => '4a549b8b', + 'sprite-apps-large-css' => '4a549b8b', + 'sprite-gradient-css' => '4a549b8b', + 'sprite-icon-css' => '4a549b8b', + 'sprite-menu-css' => '4a549b8b', + 'syntax-highlighting-css' => '4a549b8b', ), )); diff --git a/src/applications/differential/controller/DifferentialRevisionListController.php b/src/applications/differential/controller/DifferentialRevisionListController.php index 35bc3fb802..ad1be4bf00 100644 --- a/src/applications/differential/controller/DifferentialRevisionListController.php +++ b/src/applications/differential/controller/DifferentialRevisionListController.php @@ -162,6 +162,7 @@ final class DifferentialRevisionListController extends DifferentialController { $filter_form = id(new AphrontFormView()) ->setMethod('GET') + ->setNoShading(true) ->setAction('/differential/filter/'.$this->filter.'/') ->setUser($user); foreach ($controls as $control) { @@ -199,6 +200,7 @@ final class DifferentialRevisionListController extends DifferentialController { $side_nav, array( 'title' => pht('Differential Home'), + 'dust' => true, )); } diff --git a/src/applications/maniphest/controller/ManiphestBatchEditController.php b/src/applications/maniphest/controller/ManiphestBatchEditController.php index 7ecd0db24c..e73c632bdf 100644 --- a/src/applications/maniphest/controller/ManiphestBatchEditController.php +++ b/src/applications/maniphest/controller/ManiphestBatchEditController.php @@ -60,11 +60,11 @@ final class ManiphestBatchEditController extends ManiphestController { 'sources' => array( 'project' => array( 'src' => '/typeahead/common/projects/', - 'placeholder' => 'Type a project name...', + 'placeholder' => pht('Type a project name...'), ), 'owner' => array( 'src' => '/typeahead/common/searchowner/', - 'placeholder' => 'Type a user name...', + 'placeholder' => pht('Type a user name...'), 'limit' => 1, ), ), @@ -96,7 +96,8 @@ final class ManiphestBatchEditController extends ManiphestController { 'name' => 'actions', 'id' => 'batch-form-actions', ))); - $form->appendChild(phutil_tag('p', array(), 'These tasks will be edited:')); + $form->appendChild( + phutil_tag('p', array(), pht('These tasks will be edited:'))); $form->appendChild($list); $form->appendChild( id(new AphrontFormInsetView()) @@ -109,7 +110,7 @@ final class ManiphestBatchEditController extends ManiphestController { 'sigil' => 'add-action', 'mustcapture' => true, ), - 'Add Another Action')) + pht('Add Another Action'))) ->setContent(javelin_tag( 'table', array( @@ -119,7 +120,7 @@ final class ManiphestBatchEditController extends ManiphestController { ''))) ->appendChild( id(new AphrontFormSubmitControl()) - ->setValue('Update Tasks') + ->setValue(pht('Update Tasks')) ->addCancelButton('/maniphest/', 'Done')); $panel->appendChild($form); @@ -128,7 +129,7 @@ final class ManiphestBatchEditController extends ManiphestController { return $this->buildStandardPageResponse( $panel, array( - 'title' => 'Batch Editor', + 'title' => pht('Batch Editor'), )); } diff --git a/src/applications/maniphest/controller/ManiphestController.php b/src/applications/maniphest/controller/ManiphestController.php index 9439fe8c77..c93a248c89 100644 --- a/src/applications/maniphest/controller/ManiphestController.php +++ b/src/applications/maniphest/controller/ManiphestController.php @@ -10,7 +10,7 @@ abstract class ManiphestController extends PhabricatorController { public function buildStandardPageResponse($view, array $data) { $page = $this->buildStandardPageView(); - $page->setApplicationName('Maniphest'); + $page->setApplicationName(pht('Maniphest')); $page->setBaseURI('/maniphest/'); $page->setTitle(idx($data, 'title')); $page->setGlyph("\xE2\x9A\x93"); @@ -22,7 +22,7 @@ abstract class ManiphestController extends PhabricatorController { return $response->setContent($page->render()); } - protected function buildBaseSideNav() { + protected function buildBaseSideNav($filter = null, $for_app = false) { $nav = new AphrontSideNavFilterView(); $nav->setBaseURI(new PhutilURI('/maniphest/view/')); @@ -50,28 +50,36 @@ abstract class ManiphestController extends PhabricatorController { $query->getName(), '/maniphest/view/custom/?key='.$query->getQueryKey()); } - $nav->addFilter('saved', 'Edit...', '/maniphest/custom/'); + $nav->addFilter('saved', pht('Edit...'), '/maniphest/custom/'); } - $nav->addLabel('User Tasks'); - $nav->addFilter('action', 'Assigned'); - $nav->addFilter('created', 'Created'); - $nav->addFilter('subscribed', 'Subscribed'); - $nav->addFilter('triage', 'Need Triage'); - $nav->addLabel('User Projects'); - $nav->addFilter('projecttriage', 'Need Triage'); - $nav->addFilter('projectall', 'All Tasks'); + if ($for_app) { + $nav->addFilter('', pht('Create Task'), + $this->getApplicationURI('task/create/')); + } + + $nav->addLabel(pht('User Tasks')); + $nav->addFilter('action', pht('Assigned')); + $nav->addFilter('created', pht('Created')); + $nav->addFilter('subscribed', pht('Subscribed')); + $nav->addFilter('triage', pht('Need Triage')); + $nav->addLabel(pht('User Projects')); + $nav->addFilter('projecttriage', pht('Need Triage')); + $nav->addFilter('projectall', pht('All Tasks')); $nav->addLabel('All Tasks'); - $nav->addFilter('alltriage', 'Need Triage'); - $nav->addFilter('all', 'All Tasks'); - $nav->addLabel('Custom'); - $nav->addFilter('custom', 'Custom Query'); - $nav->addLabel('Reports'); - $nav->addFilter('report', 'Reports', '/maniphest/report/'); + $nav->addFilter('alltriage', pht('Need Triage')); + $nav->addFilter('all', pht('All Tasks')); + $nav->addLabel(pht('Custom')); + $nav->addFilter('custom', pht('Custom Query')); + $nav->addFilter('report', pht('Reports'), '/maniphest/report/'); return $nav; } + public function buildApplicationMenu() { + return $this->buildBaseSideNav(null, true)->getMenu(); + } + protected function getDefaultQuery() { return $this->defaultQuery; } diff --git a/src/applications/maniphest/controller/ManiphestExportController.php b/src/applications/maniphest/controller/ManiphestExportController.php index d3a22a9a42..1fc4988850 100644 --- a/src/applications/maniphest/controller/ManiphestExportController.php +++ b/src/applications/maniphest/controller/ManiphestExportController.php @@ -27,18 +27,26 @@ final class ManiphestExportController extends ManiphestController { $dialog = new AphrontDialogView(); $dialog->setUser($user); - $dialog->setTitle('Excel Export Not Configured'); - $dialog->appendChild(hsprintf( - '
This system does not have PHPExcel installed. This software '. + $inst1 = pht( + 'This system does not have PHPExcel installed. This software '. 'component is required to export tasks to Excel. Have your system '. - 'administrator install it from:
'. + 'administrator install it from:'); + + $inst2 = pht( + 'Your PHP "include_path" needs to be updated to include the '. + 'PHPExcel Classes directory.'); + + $dialog->setTitle(pht('Excel Export Not Configured')); + $dialog->appendChild(hsprintf( + '%s
'. ''. 'http://www.phpexcel.net/'. '
'. 'Your PHP "include_path" needs to be updated to include the '. - 'PHPExcel Classes/ directory.
')); + '%s
', + $inst1, + $inst2)); $dialog->addCancelButton('/maniphest/'); return id(new AphrontDialogResponse())->setDialog($dialog); @@ -58,12 +66,12 @@ final class ManiphestExportController extends ManiphestController { $dialog = new AphrontDialogView(); $dialog->setUser($user); - $dialog->setTitle('Export Tasks to Excel'); + $dialog->setTitle(pht('Export Tasks to Excel')); $dialog->appendChild(phutil_tag('p', array(), pht( 'Do you want to export the query results to Excel?'))); $dialog->addCancelButton('/maniphest/'); - $dialog->addSubmitButton('Export to Excel'); + $dialog->addSubmitButton(pht('Export to Excel')); return id(new AphrontDialogResponse())->setDialog($dialog); } @@ -85,7 +93,7 @@ final class ManiphestExportController extends ManiphestController { $workbook = new PHPExcel(); $sheet = $workbook->setActiveSheetIndex(0); - $sheet->setTitle('Tasks'); + $sheet->setTitle(pht('Tasks')); $widths = array( null, @@ -113,16 +121,16 @@ final class ManiphestExportController extends ManiphestController { $rows = array(); $rows[] = array( - 'ID', - 'Owner', - 'Status', - 'Priority', - 'Date Created', - 'Date Updated', - 'Title', - 'Projects', - 'URI', - 'Description', + pht('ID'), + pht('Owner'), + pht('Status'), + pht('Priority'), + pht('Date Created'), + pht('Date Updated'), + pht('Title'), + pht('Projects'), + pht('URI'), + pht('Description'), ); $is_date = array( diff --git a/src/applications/maniphest/controller/ManiphestReportController.php b/src/applications/maniphest/controller/ManiphestReportController.php index b5a1baf73d..ff5f6ba1f3 100644 --- a/src/applications/maniphest/controller/ManiphestReportController.php +++ b/src/applications/maniphest/controller/ManiphestReportController.php @@ -34,11 +34,11 @@ final class ManiphestReportController extends ManiphestController { $nav = new AphrontSideNavFilterView(); $nav->setBaseURI(new PhutilURI('/maniphest/report/')); - $nav->addLabel('Open Tasks'); - $nav->addFilter('user', 'By User'); - $nav->addFilter('project', 'By Project'); - $nav->addLabel('Burnup'); - $nav->addFilter('burn', 'Burnup Rate'); + $nav->addLabel(pht('Open Tasks')); + $nav->addFilter('user', pht('By User')); + $nav->addFilter('project', pht('By Project')); + $nav->addLabel(pht('Burnup')); + $nav->addFilter('burn', pht('Burnup Rate')); $this->view = $nav->selectFilter($this->view, 'user'); @@ -210,20 +210,20 @@ final class ManiphestReportController extends ManiphestController { if ($week) { $rows[] = $this->formatBurnRow( - 'Week To Date', + pht('Week To Date'), $week); $rowc[] = 'week'; } if ($month) { $rows[] = $this->formatBurnRow( - 'Month To Date', + pht('Month To Date'), $month); $rowc[] = 'month'; } $rows[] = $this->formatBurnRow( - 'All Time', + pht('All Time'), $period); $rowc[] = 'aggregate'; @@ -234,10 +234,10 @@ final class ManiphestReportController extends ManiphestController { $table->setRowClasses($rowc); $table->setHeaders( array( - 'Period', - 'Opened', - 'Closed', - 'Change', + pht('Period'), + pht('Opened'), + pht('Closed'), + pht('Change'), )); $table->setColumnClasses( array( @@ -248,16 +248,17 @@ final class ManiphestReportController extends ManiphestController { )); if ($handle) { - $header = pht("Task Burn Rate for Project %s", $handle->renderLink()); - $caption = hsprintf( - "NOTE: This table reflects tasks currently in ". + $inst = pht( + "NOTE: This table reflects tasks currently in ". "the project. If a task was opened in the past but added to ". "the project recently, it is counted on the day it was ". "opened, not the day it was categorized. If a task was part ". "of this project in the past but no longer is, it is not ". - "counted at all.
"); + "counted at all."); + $header = pht("Task Burn Rate for Project %s", $handle->renderLink()); + $caption = hsprintf("%s
", $inst); } else { - $header = "Task Burn Rate for All Tasks"; + $header = pht("Task Burn Rate for All Tasks"); $caption = null; } @@ -315,7 +316,7 @@ final class ManiphestReportController extends ManiphestController { ->appendChild( id(new AphrontFormTokenizerControl()) ->setDatasource('/typeahead/common/searchproject/') - ->setLabel('Project') + ->setLabel(pht('Project')) ->setLimit(1) ->setName('set_project') ->setValue($tokens)); @@ -325,10 +326,10 @@ final class ManiphestReportController extends ManiphestController { $form ->appendChild( id(new AphrontFormTextControl()) - ->setLabel('"Recently" Means') + ->setLabel(pht('Recently Means')) ->setName('set_window') ->setCaption( - 'Configure the cutoff for the "Recently Closed" column.') + pht('Configure the cutoff for the "Recently Closed" column.')) ->setValue($window_str) ->setError($window_error)); } @@ -336,7 +337,7 @@ final class ManiphestReportController extends ManiphestController { $form ->appendChild( id(new AphrontFormSubmitControl()) - ->setValue('Filter By Project')); + ->setValue(pht('Filter By Project'))); $filter = new AphrontListFilterView(); $filter->appendChild($form); @@ -419,9 +420,9 @@ final class ManiphestReportController extends ManiphestController { array( 'href' => $base_link.ManiphestTaskOwner::OWNER_UP_FOR_GRABS, ), - phutil_tag('em', array(), '(Up For Grabs)')); - $col_header = 'User'; - $header = 'Open Tasks by User and Priority ('.$date.')'; + phutil_tag('em', array(), pht('(Up For Grabs)'))); + $col_header = pht('User'); + $header = pht('Open Tasks by User and Priority (%s)', $date); break; case 'project': $result = array(); @@ -456,9 +457,9 @@ final class ManiphestReportController extends ManiphestController { array( 'href' => $base_link.ManiphestTaskOwner::PROJECT_NO_PROJECT, ), - phutil_tag('em', array(), '(No Project)')); - $col_header = 'Project'; - $header = 'Open Tasks by Project and Priority ('.$date.')'; + phutil_tag('em', array(), pht('(No Project)'))); + $col_header = pht('Project'); + $header = pht('Open Tasks by Project and Priority (%s)', $date); break; } @@ -584,36 +585,37 @@ final class ManiphestReportController extends ManiphestController { array( 'sigil' => 'has-tooltip', 'meta' => array( - 'tip' => 'Oldest open task.', + 'tip' => pht('Oldest open task.'), 'size' => 200, ), ), - 'Oldest (All)'); + pht('Oldest (All)')); $cclass[] = 'n'; $cname[] = javelin_tag( 'span', array( 'sigil' => 'has-tooltip', 'meta' => array( - 'tip' => 'Oldest open task, excluding those with Low or Wishlist '. - 'priority.', + 'tip' => pht('Oldest open task, excluding those with Low or '. + 'Wishlist priority.'), 'size' => 200, ), ), - 'Oldest (Pri)'); + pht('Oldest (Pri)')); $cclass[] = 'n'; list($ignored, $window_epoch) = $this->getWindow(); + $edate = phabricator_datetime($window_epoch, $user); $cname[] = javelin_tag( 'span', array( 'sigil' => 'has-tooltip', 'meta' => array( - 'tip' => 'Closed after '.phabricator_datetime($window_epoch, $user), + 'tip' => pht('Closed after %s', $edate), 'size' => 260 ), ), - 'Recently Closed'); + pht('Recently Closed')); $cclass[] = 'n'; $table = new AphrontTableView($rows); diff --git a/src/applications/maniphest/controller/ManiphestSavedQueryDeleteController.php b/src/applications/maniphest/controller/ManiphestSavedQueryDeleteController.php index 9fae6869aa..c4fa4d9123 100644 --- a/src/applications/maniphest/controller/ManiphestSavedQueryDeleteController.php +++ b/src/applications/maniphest/controller/ManiphestSavedQueryDeleteController.php @@ -30,15 +30,17 @@ final class ManiphestSavedQueryDeleteController extends ManiphestController { } $name = $query->getName(); + $inst = pht( + 'Really delete the query "%s"? It will be lost forever!', $name); $dialog = id(new AphrontDialogView()) ->setUser($user) - ->setTitle('Really delete this query?') + ->setTitle(pht('Really delete this query?')) ->appendChild(hsprintf( - 'Really delete the query "%s"? It will be lost forever!
', - $name)) + '%s
', + $inst)) ->addCancelButton('/maniphest/custom/') - ->addSubmitButton('Delete'); + ->addSubmitButton(pht('Delete')); return id(new AphrontDialogResponse())->setDialog($dialog); } diff --git a/src/applications/maniphest/controller/ManiphestSavedQueryEditController.php b/src/applications/maniphest/controller/ManiphestSavedQueryEditController.php index 8fd0e5b32d..fde8404934 100644 --- a/src/applications/maniphest/controller/ManiphestSavedQueryEditController.php +++ b/src/applications/maniphest/controller/ManiphestSavedQueryEditController.php @@ -42,8 +42,8 @@ final class ManiphestSavedQueryEditController extends ManiphestController { $e_name = null; $query->setName($request->getStr('name')); if (!strlen($query->getName())) { - $e_name = 'Required'; - $errors[] = 'Saved query name is required.'; + $e_name = pht('Required'); + $errors[] = pht('Saved query name is required.'); } if (!$errors) { @@ -54,17 +54,17 @@ final class ManiphestSavedQueryEditController extends ManiphestController { if ($errors) { $error_view = new AphrontErrorView(); - $error_view->setTitle('Form Errors'); + $error_view->setTitle(pht('Form Errors')); $error_view->setErrors($errors); } else { $error_view = null; } if ($query->getID()) { - $header = 'Edit Saved Query'; + $header = pht('Edit Saved Query'); $cancel_uri = '/maniphest/custom/'; } else { - $header = 'New Saved Query'; + $header = pht('New Saved Query'); $cancel_uri = '/maniphest/view/custom/?key='.$key; } @@ -74,14 +74,14 @@ final class ManiphestSavedQueryEditController extends ManiphestController { ->addHiddenInput('id', $query->getID()) ->appendChild( id(new AphrontFormTextControl()) - ->setLabel('Name') + ->setLabel(pht('Name')) ->setValue($query->getName()) ->setName('name') ->setError($e_name)) ->appendChild( id(new AphrontFormSubmitControl()) ->addCancelButton($cancel_uri) - ->setValue('Save')); + ->setValue(pht('Save'))); $panel = new AphrontPanelView(); $panel->setHeader($header); @@ -94,10 +94,11 @@ final class ManiphestSavedQueryEditController extends ManiphestController { $nav->appendChild($error_view); $nav->appendChild($panel); - return $this->buildStandardPageResponse( + return $this->buildApplicationPage( $nav, array( - 'title' => 'Saved Queries', + 'title' => pht('Saved Queries'), + 'device' => true, )); } diff --git a/src/applications/maniphest/controller/ManiphestSavedQueryListController.php b/src/applications/maniphest/controller/ManiphestSavedQueryListController.php index 2f80e6028d..c308739c3f 100644 --- a/src/applications/maniphest/controller/ManiphestSavedQueryListController.php +++ b/src/applications/maniphest/controller/ManiphestSavedQueryListController.php @@ -81,7 +81,7 @@ final class ManiphestSavedQueryListController extends ManiphestController { 'value' => 0, 'checked' => ($default === null ? 'checked' : null), )), - phutil_tag('em', array(), 'No Default'), + phutil_tag('em', array(), pht('No Default')), '', '', ); @@ -89,10 +89,10 @@ final class ManiphestSavedQueryListController extends ManiphestController { $table = new AphrontTableView($rows); $table->setHeaders( array( - 'Default', - 'Name', - 'Edit', - 'Delete', + pht('Default'), + pht('Name'), + pht('Edit'), + pht('Delete'), )); $table->setColumnClasses( array( @@ -103,12 +103,12 @@ final class ManiphestSavedQueryListController extends ManiphestController { )); $panel = new AphrontPanelView(); - $panel->setHeader('Saved Custom Queries'); + $panel->setHeader(pht('Saved Custom Queries')); $panel->addButton( phutil_tag( 'button', array(), - 'Save Default Query')); + pht('Save Default Query'))); $panel->appendChild($table); $form = phabricator_form( @@ -122,10 +122,11 @@ final class ManiphestSavedQueryListController extends ManiphestController { $nav->selectFilter('saved', 'saved'); $nav->appendChild($form); - return $this->buildStandardPageResponse( + return $this->buildApplicationPage( $nav, array( - 'title' => 'Saved Queries', + 'title' => pht('Saved Queries'), + 'device' => true, )); } diff --git a/src/applications/maniphest/controller/ManiphestTaskDetailController.php b/src/applications/maniphest/controller/ManiphestTaskDetailController.php index d90643cc0c..ad7bda8316 100644 --- a/src/applications/maniphest/controller/ManiphestTaskDetailController.php +++ b/src/applications/maniphest/controller/ManiphestTaskDetailController.php @@ -107,7 +107,7 @@ final class ManiphestTaskDetailController extends ManiphestController { 'href' => '/maniphest/task/create/?parent='.$parent_task->getID(), 'class' => 'green button', ), - 'Create Another Subtask')); + pht('Create Another Subtask'))); $context_bar->appendChild(hsprintf( 'Created a subtask of %s', $this->getHandle($parent_task->getPHID())->renderLink())); @@ -120,15 +120,15 @@ final class ManiphestTaskDetailController extends ManiphestController { 'href' => '/maniphest/task/create/?template='.$task->getID(), 'class' => 'green button', ), - 'Similar Task')); + pht('Similar Task'))); $context_bar->addButton(phutil_tag( 'a', array( 'href' => '/maniphest/task/create/', 'class' => 'green button', ), - 'Empty Task')); - $context_bar->appendChild('New task created.'); + pht('Empty Task'))); + $context_bar->appendChild(pht('New task created.')); } $engine = new PhabricatorMarkupEngine(); @@ -201,20 +201,20 @@ final class ManiphestTaskDetailController extends ManiphestController { ->addHiddenInput('taskID', $task->getID()) ->appendChild( id(new AphrontFormSelectControl()) - ->setLabel('Action') + ->setLabel(pht('Action')) ->setName('action') ->setOptions($transaction_types) ->setID('transaction-action')) ->appendChild( id(new AphrontFormSelectControl()) - ->setLabel('Resolution') + ->setLabel(pht('Resolution')) ->setName('resolution') ->setControlID('resolution') ->setControlStyle('display: none') ->setOptions($resolution_types)) ->appendChild( id(new AphrontFormTokenizerControl()) - ->setLabel('Assign To') + ->setLabel(pht('Assign To')) ->setName('assign_to') ->setControlID('assign_to') ->setControlStyle('display: none') @@ -222,7 +222,7 @@ final class ManiphestTaskDetailController extends ManiphestController { ->setDisableBehavior(true)) ->appendChild( id(new AphrontFormTokenizerControl()) - ->setLabel('CCs') + ->setLabel(pht('CCs')) ->setName('ccs') ->setControlID('ccs') ->setControlStyle('display: none') @@ -230,7 +230,7 @@ final class ManiphestTaskDetailController extends ManiphestController { ->setDisableBehavior(true)) ->appendChild( id(new AphrontFormSelectControl()) - ->setLabel('Priority') + ->setLabel(pht('Priority')) ->setName('priority') ->setOptions($priority_map) ->setControlID('priority') @@ -238,7 +238,7 @@ final class ManiphestTaskDetailController extends ManiphestController { ->setValue($task->getPriority())) ->appendChild( id(new AphrontFormTokenizerControl()) - ->setLabel('Projects') + ->setLabel(pht('Projects')) ->setName('projects') ->setControlID('projects') ->setControlStyle('display: none') @@ -246,25 +246,25 @@ final class ManiphestTaskDetailController extends ManiphestController { ->setDisableBehavior(true)) ->appendChild( id(new AphrontFormFileControl()) - ->setLabel('File') + ->setLabel(pht('File')) ->setName('file') ->setControlID('file') ->setControlStyle('display: none')) ->appendChild( id(new PhabricatorRemarkupControl()) - ->setLabel('Comments') + ->setLabel(pht('Comments')) ->setName('comments') ->setValue($draft_text) ->setID('transaction-comments') ->setUser($user)) ->appendChild( id(new AphrontFormDragAndDropUploadControl()) - ->setLabel('Attached Files') + ->setLabel(pht('Attached Files')) ->setName('files') ->setActivatedClass('aphront-panel-view-drag-and-drop')) ->appendChild( id(new AphrontFormSubmitControl()) - ->setValue($is_serious ? 'Submit' : 'Avast!')); + ->setValue($is_serious ? pht('Submit') : pht('Avast!'))); $control_map = array( ManiphestTransactionType::TYPE_STATUS => 'resolution', @@ -280,7 +280,7 @@ final class ManiphestTaskDetailController extends ManiphestController { 'id' => 'projects-tokenizer', 'src' => '/typeahead/common/projects/', 'ondemand' => PhabricatorEnv::getEnvConfig('tokenizer.ondemand'), - 'placeholder' => 'Type a project name...', + 'placeholder' => pht('Type a project name...'), ), ManiphestTransactionType::TYPE_OWNER => array( 'id' => 'assign-tokenizer', @@ -288,13 +288,13 @@ final class ManiphestTaskDetailController extends ManiphestController { 'value' => $default_claim, 'limit' => 1, 'ondemand' => PhabricatorEnv::getEnvConfig('tokenizer.ondemand'), - 'placeholder' => 'Type a user name...', + 'placeholder' => pht('Type a user name...'), ), ManiphestTransactionType::TYPE_CCS => array( 'id' => 'cc-tokenizer', 'src' => '/typeahead/common/mailable/', 'ondemand' => PhabricatorEnv::getEnvConfig('tokenizer.ondemand'), - 'placeholder' => 'Type a user or mailing list...', + 'placeholder' => pht('Type a user or mailing list...'), ), ); diff --git a/src/applications/maniphest/controller/ManiphestTaskEditController.php b/src/applications/maniphest/controller/ManiphestTaskEditController.php index 10e1e1a20b..77e4be866a 100644 --- a/src/applications/maniphest/controller/ManiphestTaskEditController.php +++ b/src/applications/maniphest/controller/ManiphestTaskEditController.php @@ -112,15 +112,15 @@ final class ManiphestTaskEditController extends ManiphestController { $aux_field->setValueFromRequest($request); if ($aux_field->isRequired() && !$aux_field->getValue()) { - $errors[] = $aux_field->getLabel() . ' is required.'; - $aux_field->setError('Required'); + $errors[] = pht('%s is required.', $aux_field->getLabel()); + $aux_field->setError(pht('Required')); } try { $aux_field->validate(); } catch (Exception $e) { $errors[] = $e->getMessage(); - $aux_field->setError('Invalid'); + $aux_field->setError(pht('Invalid')); } } @@ -501,18 +501,22 @@ final class ManiphestTaskEditController extends ManiphestController { $panel->setHeader($header_name); $panel->appendChild($form); $panel->setNoBackground(); + $inst1 = pht('Description Preview'); + $inst2 = pht('Loading preview...'); $description_preview_panel = hsprintf( '%s%s | '. '%s | '. - '0 Selected Tasks | '. + '%s | '. '%s | '. '
%s | '. - '
%s | '. + '