Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/site/app/views
diff options
context:
space:
mode:
Diffstat (limited to 'site/app/views')
-rw-r--r--site/app/views/addons/browse.thtml4
-rw-r--r--site/app/views/addons/display.thtml29
-rw-r--r--site/app/views/addons/share.thtml24
-rw-r--r--site/app/views/addons/versions.thtml13
-rw-r--r--site/app/views/admin/groups_edit.thtml2
-rw-r--r--site/app/views/admin/platforms_edit.thtml2
-rw-r--r--site/app/views/admin/responses_edit.thtml2
-rw-r--r--site/app/views/admin/tags_edit.thtml2
-rw-r--r--site/app/views/api/api_addon.thtml4
-rw-r--r--site/app/views/compatibility/dashboard.thtml19
-rw-r--r--site/app/views/compatibility/report.thtml2
-rw-r--r--site/app/views/developers/addon_edit.thtml18
-rw-r--r--site/app/views/developers/addon_edit_authors.thtml40
-rw-r--r--site/app/views/developers/addon_edit_categories.thtml28
-rw-r--r--site/app/views/developers/addon_edit_descriptions.thtml30
-rw-r--r--site/app/views/developers/addon_edit_properties.thtml77
-rw-r--r--site/app/views/developers/addon_status.thtml122
-rw-r--r--site/app/views/developers/addon_status_confirm.thtml48
-rw-r--r--site/app/views/developers/addon_status_nominate.thtml8
-rw-r--r--site/app/views/developers/dashboard.thtml23
-rw-r--r--site/app/views/developers/discuss.thtml85
-rw-r--r--site/app/views/developers/previews.thtml39
-rw-r--r--site/app/views/developers/uploader.thtml55
-rw-r--r--site/app/views/developers/versions.thtml26
-rw-r--r--site/app/views/developers/versions_delete.thtml18
-rw-r--r--site/app/views/developers/versions_edit.thtml66
-rw-r--r--site/app/views/editors/email/inforequest_plain.thtml13
-rw-r--r--site/app/views/editors/email/inforequest_reply_plain.thtml11
-rw-r--r--site/app/views/editors/email/nominated/public_plain.thtml2
-rw-r--r--site/app/views/editors/email/nominated/sandbox_plain.thtml2
-rw-r--r--site/app/views/editors/email/notify_update_plain.thtml19
-rw-r--r--site/app/views/editors/email/pending/public_plain.thtml2
-rw-r--r--site/app/views/editors/email/pending/sandbox_plain.thtml2
-rw-r--r--site/app/views/editors/email/superreview_plain.thtml2
-rw-r--r--site/app/views/editors/review.thtml58
-rw-r--r--site/app/views/elements/addon_discussionheader.thtml1
-rw-r--r--site/app/views/elements/addon_listitem.thtml7
-rw-r--r--site/app/views/elements/collections_interactive_addon.thtml2
-rw-r--r--site/app/views/elements/developers/editbox.thtml22
-rw-r--r--site/app/views/elements/developers/editors_review_history_item.thtml101
-rw-r--r--site/app/views/elements/developers/rolecheck.thtml2
-rw-r--r--site/app/views/elements/developers/sidebar.thtml2
-rw-r--r--site/app/views/elements/developers/translationbox.thtml33
-rw-r--r--site/app/views/elements/footer.thtml3
-rw-r--r--site/app/views/elements/header.thtml13
-rw-r--r--site/app/views/elements/install.thtml2
-rw-r--r--site/app/views/files/browse.thtml12
-rw-r--r--site/app/views/helpers/addons_html.php4
-rw-r--r--site/app/views/layouts/mozilla.thtml2
-rw-r--r--site/app/views/pages/about.thtml14
-rw-r--r--site/app/views/pages/credits.thtml1
-rw-r--r--site/app/views/pages/experimental_addons.thtml61
-rw-r--r--site/app/views/pages/js_constants.js.thtml17
-rw-r--r--site/app/views/pages/robots.txt.thtml3
-rw-r--r--site/app/views/statistics/addon.thtml14
-rw-r--r--site/app/views/tests/discover.thtml11
56 files changed, 746 insertions, 478 deletions
diff --git a/site/app/views/addons/browse.thtml b/site/app/views/addons/browse.thtml
index 0fd3b23..7c7dc29 100644
--- a/site/app/views/addons/browse.thtml
+++ b/site/app/views/addons/browse.thtml
@@ -43,7 +43,7 @@
<div id="content" class="category">
<?php
-if (!empty($type))
+if (!empty($type) && array_key_exists('Tag', $this_tag))
echo $this->renderElement('search', array('category' =>
array($type, $this_tag['Tag']['id'])));
else
@@ -78,7 +78,7 @@ foreach ($addons as $val) {
</div><!-- /#content-main -->
<?php
-if (!empty($type))
+if (!empty($type) && array_key_exists('Tag', $this_tag))
echo $this->renderElement('sidebar', array('highlight' =>
array($type, $this_tag['Tag']['id'])));
else
diff --git a/site/app/views/addons/display.thtml b/site/app/views/addons/display.thtml
index c06b389..8a110f2 100644
--- a/site/app/views/addons/display.thtml
+++ b/site/app/views/addons/display.thtml
@@ -96,6 +96,30 @@ if (in_array($addon['Addon']['status'], $experimental_status)) {
<p class="desc"<?=$addon['Translation']['summary']['locale_html']?>><?=nl2br($addon['Translation']['summary']['string'])?> </p>
<p class="rating"><?=$this->renderElement('stars',array('rating' => $addon['Addon']['averagerating']))?> <?php if ($review_count > 0) { ?> <a href="<?=$html->url('/addon/'.$addon['Addon']['id'].'#reviews')?>"><?=sprintf(ngettext('feature_reviews','feature_reviews', $review_count), $review_count)?></a><?php } ?></p>
+
+ <div class="link-sharing rollover-reveal">
+ <div class="badge">
+ <p class="share-button">
+ <a class="activator" href="#"><span><span><span>
+ <strong><?php echo ___('addons_share_button_text', 'Share this') ?></strong>
+ </span></span></span></a>
+ </p>
+ </div>
+ <div class="choices to-reveal"><div>
+ <ul>
+ <?php foreach ($link_sharing_services as $l_name => $l_details) :?>
+ <li class="<?= $l_name ?>"><p>
+ <a class="uniquify" href="<?php echo $_SERVER['REQUEST_URI'] . '/share?service=' . $l_name ?>"><?php
+ // Escaping here because these details came via set()
+ echo htmlentities($l_details['label'])
+ ?></a>
+ </p></li>
+ <?php endforeach ?>
+ </ul>
+ <br style="clear: both" />
+ </div></div>
+ </div>
+
<? if ($hasversion): ?>
<p class="updated">
<?php
@@ -453,7 +477,10 @@ if (in_array($addon['Addon']['status'], $experimental_status)) {
</div>
<script type="text/javascript" charset="utf-8">
- $(function(){ $('.stars').rating(<?php if(!$loggedIn) { ?> {readOnly:true}<?php } ?>); });
+ $(function(){
+ $('.stars').rating(<?php if(!$loggedIn) { ?> {readOnly:true}<?php } ?>);
+ $('.rollover-reveal').rolloverReveal();
+ });
</script>
<!-- /#content -->
diff --git a/site/app/views/addons/share.thtml b/site/app/views/addons/share.thtml
new file mode 100644
index 0000000..9cfad8d
--- /dev/null
+++ b/site/app/views/addons/share.thtml
@@ -0,0 +1,24 @@
+<?php
+
+ $url = FULL_BASE_URL . $html->url("/addon/{$addon_id}");
+
+ $description = $html->truncateChars(250, $description);
+
+ $title = $share_title;
+
+ // Grab the URL template for the link sharing service and fill in the
+ // placeholders with the strings composed above.
+ $link_data = compact('url', 'title', 'description');
+ foreach ($link_data as $name => $value) {
+ $service_url = str_replace(
+ '{'.strtoupper($name).'}',
+ rawurlencode($value),
+ $service_url
+ );
+ }
+
+ // Finally, bounce the user off to the populated sharing URL.
+ header('HTTP/1.1 302 Found');
+ header('Location: ' . $service_url);
+ exit;
+?>
diff --git a/site/app/views/addons/versions.thtml b/site/app/views/addons/versions.thtml
index 15e21eb..7a0c7ae 100644
--- a/site/app/views/addons/versions.thtml
+++ b/site/app/views/addons/versions.thtml
@@ -115,17 +115,8 @@ foreach ($versions as $version):
</div>
</div>
<script type="text/javascript">
- <?php
- /* @partial 5/10/08
- if get the most recent version of Add-on Name text doesn't exist print Firefox and version number only
- */
- $latest_text = " ".APP_PRETTYNAME;
- if (_('addon_versions_getlatesttext') != 'addon_versions_getlatesttext') {
- $latest_text = _('addon_versions_getlatesttext').$latest_text;
- }
- ?>
-
+ <?php $latest_text = ___('addon_versions_getlatestversion', 'The most recent version compatible with %1$s (%2$s)'); ?>
setTimeout(function() {
- if(gLatestVersionID != null) createLatestVersionElement("<?=$latest_text ?>");
+ if(gLatestVersionID != null) createLatestVersionElement("<?=$latest_text ?>", "<?=APP_PRETTYNAME?>");
}, 0);
</script>
diff --git a/site/app/views/admin/groups_edit.thtml b/site/app/views/admin/groups_edit.thtml
index fc504fe..7e8c6a6 100644
--- a/site/app/views/admin/groups_edit.thtml
+++ b/site/app/views/admin/groups_edit.thtml
@@ -58,7 +58,7 @@
</div>
<div class="buttonBox">
<?=$html->submit('Update Group')?>
- <?=$html->submit('Delete Group', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\''._('Are you SURE you wish to delete this group? Please cancel. :(').'\');'))?>
+ <?=$html->submit('Delete Group', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\'Are you SURE you wish to delete this group? Please cancel. :(\');'))?>
</div>
</div>
</form>
diff --git a/site/app/views/admin/platforms_edit.thtml b/site/app/views/admin/platforms_edit.thtml
index 279d887..e38ca2b 100644
--- a/site/app/views/admin/platforms_edit.thtml
+++ b/site/app/views/admin/platforms_edit.thtml
@@ -50,7 +50,7 @@
<?=$this->renderElement('developers/localebox')?>
<div class="buttonBox">
<?=$html->submit('Update Platform')?>
- <?=$html->submit('Delete Platform', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\''._('Are you SURE you wish to delete this platform?').'\');'))?>
+ <?=$html->submit('Delete Platform', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\'Are you SURE you wish to delete this platform?\');'))?>
</div>
</div>
</form>
diff --git a/site/app/views/admin/responses_edit.thtml b/site/app/views/admin/responses_edit.thtml
index dd0d2c3..b9a152f 100644
--- a/site/app/views/admin/responses_edit.thtml
+++ b/site/app/views/admin/responses_edit.thtml
@@ -50,7 +50,7 @@
<?=$this->renderElement('developers/localebox')?>
<div class="buttonBox">
<?=$html->submit('Edit Response')?>
- <?=$html->submit('Delete Response', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\''._('Are you SURE you wish to delete this response?').'\');'))?>
+ <?=$html->submit('Delete Response', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\'Are you SURE you wish to delete this response?\');'))?>
</div>
</div>
</form>
diff --git a/site/app/views/admin/tags_edit.thtml b/site/app/views/admin/tags_edit.thtml
index 8af0138..e252282 100644
--- a/site/app/views/admin/tags_edit.thtml
+++ b/site/app/views/admin/tags_edit.thtml
@@ -62,7 +62,7 @@
<?=$this->renderElement('developers/localebox')?>
<div class="buttonBox">
<?=$html->submit('Update Category')?>
- <?=$html->submit('Delete Category', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\''._('Are you SURE you wish to delete this category?').'\');'))?>
+ <?=$html->submit('Delete Category', array('name' => 'delete', 'class' => 'cancel', 'onClick' => 'return confirm(\'Are you SURE you wish to delete this category?\');'))?>
</div>
</div>
</form>
diff --git a/site/app/views/api/api_addon.thtml b/site/app/views/api/api_addon.thtml
index ab736fb..077f91b 100644
--- a/site/app/views/api/api_addon.thtml
+++ b/site/app/views/api/api_addon.thtml
@@ -147,7 +147,7 @@
}?>
</reviews>
*/ ?>
- <learnmore><?php echo $amo.'/addon/'.$addon['Addon']['id']; ?></learnmore>
+ <learnmore><?php echo $amo.'/addon/'.$addon['Addon']['id']; ?>?src=api</learnmore>
<?php if ($api_version > 0 ) {
foreach($addon['fileinfo'] as $file) {?>
<install hash='<?php echo $file['File']['hash'];?>'
@@ -156,7 +156,7 @@
.$file['File']['filename']; ?></install>
<?php }
} else { ?>
- <install hash='<?php echo $addon['File']['hash'];?>'><?php echo $amo.'/downloads/file/'.$addon['File']['id'].'/'.$addon['File']['filename']; ?></install>
+ <install hash='<?php echo $addon['File']['hash'];?>'><?php echo $amo.'/downloads/file/'.$addon['File']['id'].'/'.$addon['File']['filename']; ?>?src=api</install>
<?php
} ?>
<?php
diff --git a/site/app/views/compatibility/dashboard.thtml b/site/app/views/compatibility/dashboard.thtml
index dc4623e..1792e93 100644
--- a/site/app/views/compatibility/dashboard.thtml
+++ b/site/app/views/compatibility/dashboard.thtml
@@ -55,10 +55,10 @@
<div id="report-intro">
<?php
$percentages = array(
- COMPAT_OTHER => (($totals[$version][COMPAT_OTHER]['adu'] / $totals['adu95']) * 100),
- COMPAT_ALPHA => (($totals[$version][COMPAT_ALPHA]['adu'] / $totals['adu95']) * 100),
- COMPAT_BETA => (($totals[$version][COMPAT_BETA]['adu'] / $totals['adu95']) * 100),
- COMPAT_LATEST => (($totals[$version][COMPAT_LATEST]['adu'] / $totals['adu95']) * 100),
+ COMPAT_OTHER => (($totals[COMPAT_OTHER]['adu'] / $totals['adu95']) * 100),
+ COMPAT_ALPHA => (($totals[COMPAT_ALPHA]['adu'] / $totals['adu95']) * 100),
+ COMPAT_BETA => (($totals[COMPAT_BETA]['adu'] / $totals['adu95']) * 100),
+ COMPAT_LATEST => (($totals[COMPAT_LATEST]['adu'] / $totals['adu95']) * 100),
);
?>
<div class="header">
@@ -101,7 +101,7 @@
<div id="report-details">
<div class="header">
<div class="title">
- <?=$html->image('wordmarks/firefox-'.$version.'_small.png')?><?=___('compatibility_dashboard_report', 'Add-on Compatibility Report')?>
+ <?=$html->image('wordmarks/firefox-'.$version.'_small.png', array('alt' => APP_PRETTYNAME." {$version}"))?><?=___('compatibility_dashboard_report', 'Add-on Compatibility Report')?>
</div>
</div>
<div class="loading"><?=___('compatibility_dashboard_loading', 'Loading data...')?></div>
@@ -111,7 +111,7 @@
<div id="developers-intro">
<div class="header">
<div class="title">
- <?=$html->image('wordmarks/firefox-'.$version.'_small.png')?><?=___('compatibility_developer_info', 'Information for Activity Developers')?>
+ <?=$html->image('wordmarks/firefox-'.$version.'_small.png', array('alt' => APP_PRETTYNAME." {$version}"))?><?=___('compatibility_developer_info', 'Information for Add-on Developers')?>
</div>
</div>
<br />
@@ -134,7 +134,7 @@
<div id="developers-details">
<div class="header">
<div class="title">
- <?=$html->image('wordmarks/firefox-'.$version.'_small.png')?><?=___('compatibility_developers_results', 'Add-on Status Check Results')?>
+ <?=$html->image('wordmarks/firefox-'.$version.'_small.png', array('alt' => APP_PRETTYNAME." {$version}"))?><?=___('compatibility_developers_results', 'Add-on Status Check Results')?>
</div>
</div>
@@ -145,7 +145,11 @@
<div id="users-intro">
<div class="header">
<div class="title">
+<<<<<<< HEAD:site/app/views/compatibility/dashboard.thtml
<?=$html->image('wordmarks/firefox-'.$version.'_small.png')?><?=___('compatibility_user_info', 'Information for Activity Users')?>
+=======
+ <?=$html->image('wordmarks/firefox-'.$version.'_small.png', array('alt' => APP_PRETTYNAME." {$version}"))?><?=___('compatibility_user_info', 'Information for Add-on Users')?>
+>>>>>>> svn:site/app/views/compatibility/dashboard.thtml
</div>
</div>
<br />
@@ -158,7 +162,6 @@
$html->url('/'),
APP_PRETTYNAME
))?>
-</div>
</div>
</div>
</div>
diff --git a/site/app/views/compatibility/report.thtml b/site/app/views/compatibility/report.thtml
index a747674..c97f37d 100644
--- a/site/app/views/compatibility/report.thtml
+++ b/site/app/views/compatibility/report.thtml
@@ -48,7 +48,7 @@ if ($format != 'ajax'):
$bar_current_width = 0;
$i = 0;
foreach ($addons as $addon) {
- $class = $addon['classification'][$version];
+ $class = $addon['classification'];
echo '<tr'.($i > 5000 ? ' style="display: none;"' : '').'>';
echo '<td class="name"><a href="'.$html->url('/addon/'.$addon['id']).'" target="_blank">'.$addon['name'].'</a></td>';
diff --git a/site/app/views/developers/addon_edit.thtml b/site/app/views/developers/addon_edit.thtml
index 1d15fb3..5e0d147 100644
--- a/site/app/views/developers/addon_edit.thtml
+++ b/site/app/views/developers/addon_edit.thtml
@@ -40,17 +40,17 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<dl id="edit-listing" class="actionbar">
- <dt class="edit-authors"><?=$html->link('Manage Activity Authors', "/developers/addon/edit/{$addon_id}/authors")?></dt>
- <dd>Add or remove users that can manage this activity.</dd>
- <dt class="edit-categories"><?=$html->link('Manage Activity Categories', "/developers/addon/edit/{$addon_id}/categories")?></dt>
- <dd>Select the relevant categories for your activity.</dd>
- <dt class="edit-descriptions"><?=$html->link('Edit Activity Descriptions', "/developers/addon/edit/{$addon_id}/descriptions")?></dt>
- <dd>Add and modify translations for your activity's summary, description, end-user license, and privacy policy.</dd>
- <dt class="edit-properties"><?=$html->link('Edit Activity Properties', "/developers/addon/edit/{$addon_id}/properties")?></dt>
- <dd>Change your activies's name, homepage, icon, and other flags.</dd>
+ <dt class="edit-authors"><?=$html->link(___('devcp_edit_dt_manage_authors'), "/developers/addon/edit/{$addon_id}/authors")?></dt>
+ <dd><?=___('devcp_edit_dd_manage_authors')?></dd>
+ <dt class="edit-categories"><?=$html->link(___('devcp_edit_dt_manage_categories'), "/developers/addon/edit/{$addon_id}/categories")?></dt>
+ <dd><?=___('devcp_edit_dd_manage_categories')?></dd>
+ <dt class="edit-descriptions"><?=$html->link(___('devcp_edit_dt_manage_descriptions'), "/developers/addon/edit/{$addon_id}/descriptions")?></dt>
+ <dd><?=___('devcp_edit_dd_manage_description')?></dd>
+ <dt class="edit-properties"><?=$html->link(___('devcp_edit_dt_manage_properties'), "/developers/addon/edit/{$addon_id}/properties")?></dt>
+ <dd><?=___('devcp_edit_dd_manage_properties')?></dd>
</dl>
</div>
diff --git a/site/app/views/developers/addon_edit_authors.thtml b/site/app/views/developers/addon_edit_authors.thtml
index a86dffc..dcfb3f3 100644
--- a/site/app/views/developers/addon_edit_authors.thtml
+++ b/site/app/views/developers/addon_edit_authors.thtml
@@ -40,13 +40,13 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_OWNER ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($success)) {
- echo '<div class="notice-success rounded"><span>Your changes have been saved.</span><br />Please note that some changes may take several hours to appear in all areas of the website.</div>';
+ echo '<div class="notice-success rounded">'.___('devcp_notice_changes_saved').'</div>';
}
?>
- <h2>Manage Add-on Authors</h2>
+ <h2><?=___('devcp_edit_authors_header_manage')?></h2>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
@@ -54,46 +54,46 @@
<?=$html->hiddenSession();?>
<div class="graybox field rounded spaced">
- <h4>Current Authors</h4>
+ <h4><?=___('devcp_edit_authors_header_current')?></h4>
<table id="author-table" class="pretty-table">
<thead><tr>
<th></th>
- <th>Author</th>
- <th>Role</th>
- <th>Listed</th>
+ <th><?=___('devcp_edit_authors_th_author')?></th>
+ <th><?=___('devcp_edit_authors_th_role')?></th>
+ <th><?=___('devcp_edit_authors_th_listed')?></th>
<th></th>
</tr></thead>
<tbody></tbody>
</table>
<div class="save-changes rounded">
- <strong>You have unsaved changes.</strong> Click the Update Authors button below to save.
+ <strong><?=___('devcp_notice_unsaved_changes')?></strong><?=___('devcp_edit_authors_click_save')?>
</div>
- <div class="add-button-container"><a href="#add-author" onclick="addon_edit_authors.showAddForm();" class="add-button rounded">Add New Author</a></div>
+ <div class="add-button-container"><a href="#add-author" onclick="addon_edit_authors.showAddForm();" class="add-button rounded"><?=___('devcp_edit_authors_add_author')?></a></div>
</div>
</form>
- <div class="action-button-container centered"><a href="#" onclick="addon_edit_authors.save(); return false;" class="action-button rounded">Update Authors</a></div>
+ <div class="action-button-container centered"><a href="#" onclick="addon_edit_authors.save(); return false;" class="action-button rounded"><?=___('devcp_edit_authors_update_author')?></a></div>
<br />
<div id="add-author" class="graybox rounded spaced field" style="display: none;">
- <h4>Add New Author</h4>
+ <h4><?=___('devcp_edit_authors_add_author')?></h4>
<br />
- <p><label>Author Account Email: <input id="add-email" type="text" size="40" /></label></p>
+ <p><label><?=___('devcp_edit_authors_add_email')?> <input id="add-email" type="text" size="40" /></label></p>
<div id="add-error" class="rounded"></div>
- <p>Select a role for the author:</p>
+ <p><?=___('devcp_edit_authors_select_role')?></p>
<ul>
- <li><label><input id="add-role-owner" type="radio" name="role" checked="checked" />&nbsp;<strong>Owner</strong> - Can manage all aspects of the add-on listing, including adding and removing other authors.</label></li>
- <li><label><input id="add-role-developer" type="radio" name="role" />&nbsp;<strong>Developer</strong> - Can manage all aspects of the add-on listing, except for adding and removing other authors.</label></li>
- <li><label><input id="add-role-viewer" type="radio" name="role" />&nbsp;<strong>Viewer</strong> - Can view add-on developer listing and statistics, but can't make any changes.</label></li>
+ <li><label><input id="add-role-owner" type="radio" name="role" checked="checked" />&nbsp;</strong><?=___('devcp_edit_authors_label_owner')?></label></li>
+ <li><label><input id="add-role-developer" type="radio" name="role" />&nbsp;</strong><?=___('devcp_edit_authors_label_developer')?></label></li>
+ <li><label><input id="add-role-viewer" type="radio" name="role" />&nbsp;</strong><?=___('devcp_edit_authors_label_viewer')?></label></li>
</ul>
- <p><label><input id="add-listed" type="checkbox" checked="checked" />&nbsp;List as author in public display pages</label></p>
+ <p><label><input id="add-listed" type="checkbox" checked="checked" />&nbsp;<?=___('devcp_edit_authors_label_add_listed')?></label></p>
<table><tr><td>
- <div id="add-author-button" class="add-button-container"><a href="#author-table" onclick="return addon_edit_authors.checkAddForm();" class="add-button rounded bigger">Add Author</a></div>
+ <div id="add-author-button" class="add-button-container"><a href="#author-table" onclick="return addon_edit_authors.checkAddForm();" class="add-button rounded bigger"><?=___('devcp_edit_authors_add_author_button')?></a></div>
</td><td valign="middle">
- <div id="add-loading"><?=$html->image('ajax_loading.gif', array('alt' => 'Loading'))?>&nbsp;Checking account email...</div>
+ <div id="add-loading"><?=$html->image('ajax_loading.gif', array('alt' => 'Loading'))?>&nbsp;<?=___('devcp_edit_authors_add_loading')?></div>
</td></tr></table>
</div>
</div>
@@ -113,4 +113,4 @@ $(document).ready(function() {
?>
});
-</script> \ No newline at end of file
+</script>
diff --git a/site/app/views/developers/addon_edit_categories.thtml b/site/app/views/developers/addon_edit_categories.thtml
index e9ab173..20e5e22 100644
--- a/site/app/views/developers/addon_edit_categories.thtml
+++ b/site/app/views/developers/addon_edit_categories.thtml
@@ -40,13 +40,13 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($success)) {
- echo '<div class="notice-success rounded"><span>Your changes have been saved.</span><br />Please note that some changes may take several hours to appear in all areas of the website.</div>';
+ echo '<div class="notice-success rounded">'.___('devcp_notice_changes_saved').'</div>';
}
?>
- <h2>Manage Add-on Categories</h2>
+ <h2><?=___('devcp_edit_categories_header_manage')?></h2>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
<?php
@@ -58,15 +58,15 @@
echo '<div class="edit-categories-box field graybox rounded spaced app-'.$application_id.'">';
echo '<h4 style="border-bottom: none;">'.$html->image('app-icons/'.strtolower($applications[$application_id]).'_small.png', array('alt' => $applications[$application_id]));
- echo sprintf('%s Categories', $applications[$application_id]).'</h4>';
+ echo sprintf(___('devcp_edit_categories_header_application'), $applications[$application_id]).'</h4>';
if (!empty($tags)) {
- echo '<p>'.sprintf('Select up to three %s categories for your add-on', $applications[$application_id]).':</p>';
+ echo '<p>'.sprintf(___('devcp_edit_categories_select_application_categories'), $applications[$application_id]).':</p>';
echo '<table style="width: 100%;"><tr><td style="width: 50%;">';
for ($i = 1; $i <= 3; $i++) {
$selected = false;
- echo '<label>'.sprintf('Category %s', $i).':&nbsp;';
+ echo '<label>'.sprintf(___('devcp_edit_categories_label_category_num'), $i).':&nbsp;';
echo '<select name="data[Tag]['.$application_id.'][]"'.($otherSelected ? ' disabled="disabled"' : '').'>';
- echo '<option value="" style="color: gray;">(none selected)</option>';
+ echo '<option value="" style="color: gray;">'.___('devcp_edit_authors_option_empty').'</option>';
foreach ($tags as $tag_id => $tag_name) {
if ($otherTags[$application_id] == $tag_id)
continue;
@@ -83,25 +83,25 @@
echo '</select></label>';
}
if (!empty($otherTags[$application_id])) {
- echo '<label onmouseover="addon_edit_categories.updateDescription('.$application_id.', \''.$html->entities('<strong>'.$sortedTags[$application_id][$otherTags[$application_id]].'</strong><br />Place your add-on into this category only if it does not fit into any other available categories.').'\');">';
+ echo '<label onmouseover="addon_edit_categories.updateDescription('.$application_id.', \''.$html->entities('<strong>'.$sortedTags[$application_id][$otherTags[$application_id]].'</strong><br />'.___('devcp_edit_categories_other')).'\');">';
echo '<input type="checkbox" name="data[Tag]['.$application_id.'][]" value="'.$otherTags[$application_id].'" onclick="addon_edit_categories.toggleDropdowns(this, '.$application_id.');"'.($otherSelected ? ' checked="checked"' : '').' />&nbsp;';
- echo 'My add-on doesn\'t fit into any available categories.';
+ echo ___('devcp_edit_categories_does_not_fit');
echo '</label>';
}
- echo '</td><td id="edit-categories-descriptions'.$application_id.'" style="border-left: 1px solid #CCCCCC;">Hover over a category to see its description.</td></tr></table>';
+ echo '</td><td id="edit-categories-descriptions'.$application_id.'" style="border-left: 1px solid #CCCCCC;">'.___('devcp_edit_categories_hover').'</td></tr></table>';
}
else {
- echo '<p>'.'No categories are available for this add-on type and application.'.'</p>';
+ echo '<p>'.___('devcp_edit_categories_none_available').'</p>';
}
echo '</div>';
}
- echo '<div class="action-button-container centered"><a href="#" onclick="addon_edit_categories.save(); return false;" class="action-button rounded">Update Categories</a></div>';
+ echo '<div class="action-button-container centered"><a href="#" onclick="addon_edit_categories.save(); return false;" class="action-button rounded">'.___('devcp_edit_categories_button_update').'</a></div>';
echo '</form>';
}
else {
- echo '<p>'.'No categories are available for this add-on type and application.'.'</p>';
+ echo '<p>'.___('devcp_edit_categories_none_available').'</p>';
}
?>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/site/app/views/developers/addon_edit_descriptions.thtml b/site/app/views/developers/addon_edit_descriptions.thtml
index 1214b18..69ad01d 100644
--- a/site/app/views/developers/addon_edit_descriptions.thtml
+++ b/site/app/views/developers/addon_edit_descriptions.thtml
@@ -40,14 +40,14 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="edit-addon <?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($success)) {
- echo '<div class="notice-success rounded"><span>Your changes have been saved.</span><br />Please note that some changes may take several hours to appear in all areas of the website.</div>';
+ echo '<div class="notice-success rounded">'.___('devcp_notice_changes_saved').'</div>';
}
?>
- <h2>Edit Add-on Descriptions</h2>
+ <h2><?=___('devcp_edit_descriptions_header')?></h2>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
<form id="addon-edit-descriptions-form" action="" method="post">
@@ -73,24 +73,24 @@
'translations' => $translations['summary'],
'height' => '60',
'maxLength' => '250',
- 'displayName' => 'Add-on Summary',
- 'description' => 'The summary is a short explanation of your add-on\'s basic functionality that is displayed in search and browse listings, as well as at the top of your add-on\'s display page. <strong>Limit of 250 characters.</strong>'
+ 'displayName' => ___('devcp_edit_descriptions_transbox_summary_name'),
+ 'description' => ___('devcp_edit_descriptions_transbox_summary_description'),
));
// Description
echo $this->renderElement('developers/translationbox', array(
'field' => 'description',
'translations' => $translations['description'],
- 'displayName' => 'Add-on Description',
- 'description' => 'The description of your add-on is a longer explanation of features, functionality, and other relevant information. It is displayed under the summary on the add-on\'s display page.'
+ 'displayName' => ___('devcp_edit_descriptions_transbox_description_name'),
+ 'description' => ___('devcp_edit_descriptions_transbox_description_description'),
));
// Developer Comments
echo $this->renderElement('developers/translationbox', array(
'field' => 'developercomments',
'translations' => $translations['developercomments'],
- 'displayName' => 'Developer Comments',
- 'description' => 'Any information end users may want to know that isn\'t necessarily applicable to the add-on summary or description. Common uses include listing known major bugs, information on how to report bugs, anticipated release date of a new version, etc.'
+ 'displayName' => ___('devcp_edit_descriptions_transbox_comments_name'),
+ 'description' => ___('devcp_edit_descriptions_transbox_comments_description'),
));
// EULA
@@ -98,8 +98,8 @@
'field' => 'eula',
'translations' => $translations['eula'],
'height' => '200',
- 'displayName' => 'End-User License Agreement',
- 'description' => 'If your add-on has an End-User License Agreement (EULA), please enter its text below. If set below, users will be required to agree to this before installing your add-on. Please note that a EULA is not the same as a code license such as GPL or MPL.'
+ 'displayName' => ___('devcp_edit_descriptions_transbox_eula_name'),
+ 'description' => ___('devcp_edit_descriptions_transbox_eula_description'),
));
// Privacy Policy
@@ -107,12 +107,12 @@
'field' => 'privacypolicy',
'translations' => $translations['privacypolicy'],
'height' => '200',
- 'displayName' => 'Privacy Policy',
- 'description' => 'If your add-on has a privacy policy, enter its text here. Your add-on\'s display page will display a link to the policy.'
+ 'displayName' => ___('devcp_edit_descriptions_transbox_privacy_name'),
+ 'description' => ___('devcp_edit_descriptions_transbox_privacy_description'),
));
?>
- <div id="edit-error" class="error" style="display: none;">Please correct the errors above indicated in red.</div>
- <div class="action-button-container centered" style="width: 600px;"><a href="#" onclick="addon_edit_descriptions.save(); return false;" class="action-button rounded">Update Descriptions</a></div>
+ <div id="edit-error" class="error" style="display: none;"><?=___('devcp_edit_description_correct_error')?></div>
+ <div class="action-button-container centered" style="width: 600px;"><a href="#" onclick="addon_edit_descriptions.save(); return false;" class="action-button rounded"><?=___('devcp_edit_description_button_update')?></a></div>
</form>
</div>
</div>
diff --git a/site/app/views/developers/addon_edit_properties.thtml b/site/app/views/developers/addon_edit_properties.thtml
index 6850441..5efd28a 100644
--- a/site/app/views/developers/addon_edit_properties.thtml
+++ b/site/app/views/developers/addon_edit_properties.thtml
@@ -40,16 +40,16 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($success)) {
- echo '<div class="notice-success rounded"><span>Your changes have been saved.</span><br />Please note that some changes may take several hours to appear in all areas of the website.</div>';
+ echo '<div class="notice-success rounded">'.___('devcp_notice_changes_saved').'</div>';
}
if (!empty($errors)) {
- echo '<div class="notice-error rounded"><span>One or more of your changes couldn\'t be saved.</span><br />Please look for the errors below. The rest of your changes were successfully saved.</div>';
+ echo '<div class="notice-error rounded">'.___('devcp_notice_changes_error').'</div>';
}
?>
- <h2>Edit Add-on Properties</h2>
+ <h2><?=___('devcp_edit_properties_header')?></h2>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
<form id="addon-edit-properties-form" action="" method="post" enctype="multipart/form-data">
@@ -74,14 +74,14 @@
'field' => 'name',
'translations' => $translations['name'],
'type' => 'textbox',
- 'displayName' => 'Add-on Name',
- 'description' => 'The name of your add-on is displayed everywhere your add-on is listed.'
+ 'displayName' => ___('devcp_edit_properties_transbox_name_name'),
+ 'description' => ___('devcp_edit_properties_transbox_name_description'),
));
?>
<div class="field graybox rounded spaced" style="width: 600px;">
- <h4>Default Locale</h4>
- <p>An add-on's default locale is the main locale in which translations must be present. If translations for your add-on's descriptions are unavailable in a user's selected language, they will fall back to this default locale.</p>
+ <h4><?=___('devcp_edit_properties_header_default_locale')?></h4>
+ <p><?=___('devcp_edit_properties_default_locale')?></p>
<select name="data[Addon][defaultlocale]">
<?php
// Retrieve language arrays from bootstrap.
@@ -100,13 +100,13 @@
</div>
<div class="field graybox rounded spaced<?=(!empty($errors['icon']) ? ' errors' : '')?>" style="width: 600px;">
- <h4>Add-on Icon</h4>
+ <h4><?=___('devcp_edit_properties_header_icon')?></h4>
<?=(!empty($errors['icon']) ? '<div class="error-message">'.$errors['icon'].'</div>' : '')?>
- <p>The add-on icon is a small image that is displayed next to your add-on's name in browse and search results, display pages, and in the add-on installation dialog. The image will automatically be resized to 32 x 32 pixels. Please use one of the following image types: <?=implode(', ', $this->controller->Developers->imageExtensions)?></p>
+ <p><?=sprintf(___('devcp_edit_properties_icon'), implode(', ', $this->controller->Developers->imageExtensions))?></p>
<table width="100%" id="edit-properties-icon-table">
<tr>
- <th style="width: 20%;">Current icon:</th>
- <th>New icon:</th>
+ <th style="width: 20%;"><?=___('devcp_edit_properties_current_icon')?></th>
+ <th><?=___('devcp_edit_properties_new_icon')?></th>
</tr>
<tr>
<td style="text-align: center;">
@@ -114,8 +114,8 @@
$addonIconPath = $this->controller->Image->getAddonIconURL($addon_id);
echo '<img id="addon-icon" src="'.$addonIconPath.'" alt="" />';
if (!empty($addon['Addon']['icontype'])) {
- echo '<div id="delete-icon-area" class="require-privs"><a href="#" onclick="addon_edit_properties.deleteIcon(); return false;">Remove Icon</a></div>';
- echo '<div id="undelete-icon-area" style="display: none;">Icon will be deleted on save. <a href="#" onclick="addon_edit_properties.undeleteIcon(); return false;">Cancel?</a></div>';
+ echo '<div id="delete-icon-area" class="require-privs"><a href="#" onclick="addon_edit_properties.deleteIcon(); return false;">'.___('devcp_edit_properties_remove_icon').'</a></div>';
+ echo '<div id="undelete-icon-area" style="display: none;">'.sprintf(___('devcp_edit_properties_undelete'), 'href="#" onclick="addon_edit_properties.undeleteIcon(); return false;"').'</div>';
echo '<input id="delete-icon" type="hidden" name="data[Addon][deleteIcon]" value="0" />';
}
?>
@@ -131,8 +131,8 @@
'field' => 'homepage',
'translations' => $translations['homepage'],
'type' => 'textbox',
- 'displayName' => 'Add-on Homepage',
- 'description' => 'If your add-on has another homepage, enter its address here. Adding other translations is not necessary unless your website is localized into other languages.'
+ 'displayName' => ___('devcp_edit_properties_transbox_homepage_name'),
+ 'description' => ___('devcp_edit_properties_transbox_homepage_description'),
));
// Support Email
@@ -140,8 +140,8 @@
'field' => 'supportemail',
'translations' => $translations['supportemail'],
'type' => 'textbox',
- 'displayName' => 'Support Email Address',
- 'description' => 'If you have an email address for support inquiries, enter it here. Adding other translations is not necessary unless you have different email addresses for different languages.'
+ 'displayName' => ___('devcp_edit_properties_transbox_supportemail_name'),
+ 'description' => ___('devcp_edit_properties_transbox_supportemail_description'),
));
// Support URL
@@ -149,26 +149,27 @@
'field' => 'supporturl',
'translations' => $translations['supporturl'],
'type' => 'textbox',
- 'displayName' => 'Support Website',
- 'description' => 'If your add-on has a support website or forum, enter its address here. Adding other translations is not necessary unless your website is localized into other languages.'
+ 'displayName' => ___('devcp_edit_properties_transbox_supporturl_name'),
+ 'description' => ___('devcp_edit_properties_transbox_supporturl_description'),
));
?>
<div class="field graybox rounded spaced" style="width: 600px;">
- <h4>Other Settings</h4>
- <h5>View Source Online</h5>
- <p class="smallmargin">The source of your add-on files can be viewed online by any logged in user if you wish.</p>
- <label class="indented"><input type="radio" name="data[Addon][viewsource]" value="1" <?=($addon['Addon']['viewsource'] == 0 ? '' : 'checked="checked"')?>/>&nbsp;Allow online source viewing</label>
- <label class="indented"><input type="radio" name="data[Addon][viewsource]" value="0" <?=($addon['Addon']['viewsource'] == 0 ? 'checked="checked"' : '')?>/>&nbsp;Do not allow online source viewing</label>
+ <h4><?=___('devcp_edit_properties_header_other_settings')?></h4>
+ <h5><?=___('devcp_edit_properties_header_view_source')?></h5>
+ <p class="smallmargin"><?=___('devcp_edit_properties_view_source')?></p>
+ <label class="indented"><input type="radio" name="data[Addon][viewsource]" value="1" <?=($addon['Addon']['viewsource'] == 0 ? '' : 'checked="checked"')?>/>&nbsp;<?=___('devcp_edit_properties_view_source_allow')?></label>
+ <label class="indented"><input type="radio" name="data[Addon][viewsource]" value="0" <?=($addon['Addon']['viewsource'] == 0 ? 'checked="checked"' : '')?>/>&nbsp;<?=___('devcp_edit_properties_view_source_do_not_allow')?></label>
<?php if ($addon['Addon']['addontype_id'] != ADDON_SEARCH): ?>
- <h5>Add-on Flags</h5>
- <p class="smallmargin">These flags are used to filter and classify add-ons.</p>
+ <h5><?=___('devcp_edit_properties_header_flags')?></h5>
+ <p class="smallmargin"><?=___('devcp_edit_properties_flags')?></p>
<label class="indented"><input type="checkbox" name="data[Addon][prerelease]" value="1" <?=($addon['Addon']['prerelease'] == 1 ? 'checked="checked"' : '')?>/>&nbsp;<?=_('devcp_edit_label_prerelease')?></label>
<label class="indented"><input type="checkbox" name="data[Addon][sitespecific]" value="1" <?=($addon['Addon']['sitespecific'] == 1 ? 'checked="checked"' : '')?>/>&nbsp;<?=_('devcp_edit_label_sitespecific')?></label>
<label class="indented"><input type="checkbox" name="data[Addon][externalsoftware]" value="1" <?=($addon['Addon']['externalsoftware'] == 1 ? 'checked="checked"' : '')?> />&nbsp;<?=_('devcp_edit_label_externalsoftware')?></label>
- <label class="indented"><input type="checkbox" name="data[Addon][binary]" value="1" <?=($addon['Addon']['binary'] == 1 ? 'checked="checked"' : '')?> />&nbsp;This add-on contains binary components</label>
-
+ <label class="indented"><input type="checkbox" name="data[Addon][binary]" value="1" <?=($addon['Addon']['binary'] == 1 ? 'checked="checked"' : '')?> />&nbsp;<?=___('devcp_edit_properties_label_binary')?></label>
+ <h5><?=___('devcp_edit_properties_header_guid')?></h5>
+ <p class="smallmargin"><?=___('devcp_edit_properties_guid')?></p>
<h5>Add-on GUID</h5>
<p class="smallmargin">The GUID of your add-on is specified in its install.rdf and uniquely identifies it. You cannot change your GUID once it is listed on <?=SITE_NAME?>.</p>
<label class="indented"><tt><?=$addon['Addon']['guid']?></tt></label>
@@ -177,12 +178,12 @@
<?php if ($this->controller->SimpleAcl->actionAllowed('Admin', 'ConfigureAnyAddon', $this->controller->Session->read('User'))): ?>
<div class="field graybox rounded spaced" style="width: 600px;">
- <h4>Admin Settings</h4>
- <h5>Trusted Add-on?</h5>
- <p class="smallmargin">Trusted add-ons can become public without Editor review.</p>
- <label class="indented"><input type="radio" name="data[Addon][trusted]" value="1" <?=($addon['Addon']['trusted'] == 1 ? 'checked="checked"' : '')?>/>&nbsp;Trusted</label>
- <label class="indented"><input type="radio" name="data[Addon][trusted]" value="0" <?=($addon['Addon']['trusted'] == 1 ? '' : 'checked="checked"')?>/>&nbsp;Not Trusted</label>
- <h5>Add-on Type</h5>
+ <h4><?=___('devcp_edit_properties_header_admin_settings')?></h4>
+ <h5><?=___('devcp_edit_properties_header_trusted')?></h5>
+ <p class="smallmargin"><?=___('devcp_edit_properties_trusted')?></p>
+ <label class="indented"><input type="radio" name="data[Addon][trusted]" value="1" <?=($addon['Addon']['trusted'] == 1 ? 'checked="checked"' : '')?>/>&nbsp;<?=___('devcp_edit_properties_label_trusted')?></label>
+ <label class="indented"><input type="radio" name="data[Addon][trusted]" value="0" <?=($addon['Addon']['trusted'] == 1 ? '' : 'checked="checked"')?>/>&nbsp;<?=___('devcp_edit_properties_label_not_trusted')?></label>
+ <h5><?=___('devcp_edit_properties_header_addon_type')?></h5>
<select name="data[Addon][addontype_id]">
<?php
if (!empty($addontypes)) {
@@ -193,8 +194,8 @@
?>
</select>
- <h5>Add-on GUID</h5>
- <p class="smallmargin">Only change if you understand all of the consequences.</p>
+ <h5><?=___('devcp_edit_properties_header_guid')?></h5>
+ <p class="smallmargin"><?=___('devcp_edit_properties_change_guid')?></p>
<input type="text" name="data[Addon][guid]" value="<?=$addon['Addon']['guid']?>" size="50" />
<?php if (in_array($addon['Addon']['addontype_id'], array(ADDON_DICT, ADDON_LPAPP))): ?>
@@ -208,7 +209,7 @@
</div>
<?php endif; ?>
- <div class="action-button-container centered" style="width: 600px;"><a href="#" onclick="addon_edit_properties.save(); return false;" class="action-button rounded">Update Properties</a></div>
+ <div class="action-button-container centered" style="width: 600px;"><a href="#" onclick="addon_edit_properties.save(); return false;" class="action-button rounded"><?=___('devcp_edit_properties_button_update')?></a></div>
</form>
</div>
</div>
diff --git a/site/app/views/developers/addon_status.thtml b/site/app/views/developers/addon_status.thtml
index 7763ea1..0ef7489 100644
--- a/site/app/views/developers/addon_status.thtml
+++ b/site/app/views/developers/addon_status.thtml
@@ -40,13 +40,13 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "{$addon_name} Status", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_addon_status_title'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($success)) {
- echo '<div class="notice-success rounded"><span>Your changes have been saved.</span><br />Please note that some changes may take several hours to appear in all areas of the website.</div>';
+ echo '<div class="notice-success rounded"><span>'.___('devcp_notice_changes_saved').'</div>';
}
if (!empty($errors)) {
- echo '<div class="notice-error rounded"><span>One or more of your changes couldn\'t be saved.</span><br />Please look for the errors below. The rest of your changes were successfully saved.</div>';
+ echo '<div class="notice-error rounded"><span>'.___('devcp_notice_changes_error').'</div>';
}
?>
<?=$this->renderElement('noscript')?>
@@ -55,100 +55,102 @@
<?=$html->hiddenSession();?>
<div class="field graybox rounded spaced">
- <h4 class="status">Add-on Status: <span class="status-<?=$addon['Addon']['status']?>"><?=$statuses[$addon['Addon']['status']]?></span></h4>
+ <h4 class="status"><?=sprintf(___('devcp_addon_status_header'), '<span class="status-'.$addon['Addon']['status'].'">'.$statuses[$addon['Addon']['status']].'</span>')?></h4>
<p>
<?php
+ function status_span($i, $status) { return '<span class="status-'.$i.'">'.$status.'</span>'; }
// Add-on Status
+ $sandbox = status_span(STATUS_SANDBOX, ___('devcp_addon_status_sandbox'));
+ $public = status_span(STATUS_PUBLIC, ___('devcp_addon_status_public'));
switch ($addon['Addon']['status']) {
- case STATUS_NULL:
- echo 'Your add-on is currently <span class="status-0">Incomplete</span>. This means your add-on is not showing up on any portion of the site or update check service. You may come to this page to complete your add-on after it meets the criteria below for completion and transfer to the <span class="status-1">Sandbox</span>.';
- break;
-
- case STATUS_SANDBOX:
- echo 'Your add-on is in the <span class="status-1">Sandbox</span>, which means it will show up in listings and searches, but users must log in to download it. Updates are <b>not</b> being provided to your add-on through the update check service.';
- break;
-
- case STATUS_NOMINATED:
- echo 'Your add-on is in the <span class="status-1">Sandbox</span>, which means it will show up in listings and searches, but users must log in to download it. Updates are <b>not</b> being provided to your add-on through the update check service.';
-
- echo '</p><p>';
- echo 'Your add-on is currently nominated to become <span class="status-4">Public</span> and is awaiting editor review. There are currently '.$nominationCount.' other add-ons in the nomination queue.';
- break;
+ case STATUS_NULL:
+ echo ___('devcp_addon_status_switch_incomplete');
+ break;
+
+ case STATUS_SANDBOX:
+ ___('devcp_addon_status_switch_sandbox');
+ break;
- case STATUS_PENDING:
- echo 'Your add-on is pending. This shouldn\'t have happened. Please e-mail amo-editors@mozilla.org with your add-on ID and state this error.';
- break;
+ case STATUS_NOMINATED:
+ ___('devcp_addon_status_switch_sandbox');
+ echo '</p><p>';
+ echo sprintf(___('devcp_addon_status_switch_nominated'), $nominationCount);
+ break;
- case STATUS_PUBLIC:
- echo 'Your add-on is <span class="status-4">Public</span>, which means it will show up in all listings and searches and can be downloaded without restriction. Updates are being provided to your add-on through the update check service.';
- break;
+ case STATUS_PENDING:
+ echo sprintf(___('devcp_addon_status_switch_pending'), 'amo-editors@mozilla.org');
+ break;
+
+ case STATUS_PUBLIC:
+ ___('devcp_addon_status_switch_public');
+ break;
- case STATUS_DISABLED:
- echo 'Your add-on was <span class="status-5">disabled</span> by an administrator and cannot be used. If you have any questions, please e-mail '.ADMIN_EMAIL.'.';
- break;
+ case STATUS_DISABLED:
+ echo sprintf(___('devcp_addon_status_switch_disabled'), 'amo-admins@mozilla.org');
+ break;
}
?>
</p>
<?php
if ($addon['Addon']['status'] == STATUS_NULL) {
- echo '<h5>Add-on Completion Criteria</h5>';
+ echo '<h5>'.___('devcp_addon_status_header_criteria').'</h5>';
echo '<ul class="criteria">';
- echo '<li class="'.($criteria['name'] ? 'pass' : 'fail').'">Add-on Name required</li>';
- echo '<li class="'.($criteria['summary'] ? 'pass' : 'fail').'">Add-on Summary required</li>';
- echo '<li class="'.($criteria['description'] ? 'pass' : 'fail').'">Add-on Description required</li>';
- echo '<li class="'.($criteria['category'] ? 'pass' : 'fail').'">At least one category selected</li>';
+ echo '<li class="'.($criteria['name'] ? 'pass' : 'fail').'">'.___('devcp_addon_status_criteria_name').'</li>';
+ echo '<li class="'.($criteria['summary'] ? 'pass' : 'fail').'">'.___('devcp_addon_status_criteria_summary').'</li>';
+ echo '<li class="'.($criteria['description'] ? 'pass' : 'fail').'">'.___('devcp_addon_status_criteria_description').'</li>';
+ echo '<li class="'.($criteria['category'] ? 'pass' : 'fail').'">'.___('devcp_addon_status_criteria_category').'</li>';
echo '</ul>';
$completionEnabled = false;
if ($criteria['name'] && $criteria['summary'] && $criteria['description'] && $criteria['category']) {
$completionEnabled = true;
- echo '<p>You may now complete your add-on and move it to the <span class="status-1">Sandbox</span> by clicking the button below.</p>';
+ echo '<p>'.sprintf(___('devcp_addon_status_completion_enabled'), $sandbox).'</p>';
}
else {
- echo '<p>Please fulfill the criteria above before you can complete your add-on and move it to the <span class="status-1">Sandbox</span>.</p>';
+ echo '<p>'.sprintf(___('devcp_addon_status_completion_disabled'), $sandbox).'</p>';
}
}
$nominationEnabled = false;
- if ($addon['Addon']['status'] == STATUS_SANDBOX && $addon['Addon']['higheststatus'] < STATUS_PUBLIC) {
- echo '<h5>Public Nomination Criteria</h5>';
+ if ($addon['Addon']['status'] == STATUS_SANDBOX || $addon['Addon']['higheststatus'] < STATUS_PUBLIC) {
+ echo '<h5>'.___('devcp_addon_status_header_nomination').'</h5>';
echo '<ul class="criteria">';
- echo '<li class="'.($criteria['previews'] ? 'pass' : 'fail').'">At least one preview image required for extensions and themes.</li>';
- echo '<li class="'.($criteria['reviews'] ? 'pass' : 'meh').'">Several user reviews of the add-on (may be external reviews).</li>';
- echo '<li class="'.($criteria['prerelease'] ? 'pass' : 'fail').'">Add-on is not marked as pre-release.</li>';
+ echo '<li class="'.($criteria['previews'] ? 'pass' : 'fail').'">'.___('devcp_addon_status_criteria_preview').'</li>';
+ echo '<li class="'.($criteria['reviews'] ? 'pass' : 'meh').'">'.___('devcp_addon_status_criteria_review').'</li>';
+ echo '<li class="'.($criteria['prerelease'] ? 'pass' : 'fail').'">'.___('devcp_addon_status_criteria_prerelease').'</li>';
echo '</ul>';
if ((!in_array($addon['Addon']['addontype_id'], array(ADDON_EXTENSION, ADDON_THEME)) || $criteria['previews']) && $criteria['prerelease']) {
$nominationEnabled = true;
- echo '<p>You may now nominate your add-on for <span class="status-4">Public</span> by clicking the button below.</p>';
+ echo '<p>'.___('devcp_addon_status_nominate_enabled').'</p>';
}
else {
- echo '<p>Please fulfill the criteria above before nominating your add-on to become <span class="status-4">Public</span>.</p>';
+ echo '<p>'.___('devcp_addon_status_nominate_disabled').'</p>';
}
}
// Actions
$actions = '';
if ($addon['Addon']['status'] == STATUS_NULL && $completionEnabled === true) {
- $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/complete").'" class="complete add-button rounded">Complete Add-on</a></td>';
- $actions .= '<td class="description">Complete your add-on and move to the Sandbox</td></tr>';
+ $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/complete").'" class="complete add-button rounded">'.___('devcp_addon_status_action_complete').'</a></td>';
+ $actions .= '<td class="description">'.___('devcp_addon_status_action_complete_description').'</td></tr>';
}
if ($addon['Addon']['status'] == STATUS_SANDBOX && $nominationEnabled === true) {
- $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/nominate").'" class="nominate add-button rounded">Nominate for Public</a></td>';
- $actions .= '<td class="description">Nominate your add-on to become Public</td></tr>';
+ $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/nominate").'" class="nominate add-button rounded">'.___('devcp_addon_status_action_nominate').'</a></td>';
+ $actions .= '<td class="description">'.___('devcp_addon_status_action_nominate_description').'</td></tr>';
}
if ($addon['Addon']['status'] == STATUS_PUBLIC) {
- $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/sandbox").'" class="to-sandbox add-button rounded">Move to Sandbox</a></td>';
- $actions .= '<td class="description">Move your add-on back to the Sandbox. This is reversible.</td></tr>';
+ $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/sandbox").'" class="to-sandbox add-button rounded">'.___('devcp_addon_status_action_move').'</a></td>';
+ $actions .= '<td class="description">'.___('devcp_addon_status_action_move_description').'</td></tr>';
}
if ($addon['Addon']['status'] == STATUS_SANDBOX && $addon['Addon']['higheststatus'] == STATUS_PUBLIC) {
- $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/public").'" class="to-public add-button rounded">Make Public</a></td>';
- $actions .= '<td class="description">Make your add-on Public again.</td></tr>';
+ $actions .= '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/public").'" class="to-public add-button rounded">'.___('devcp_addon_status_action_public').'</a></td>';
+ $actions .= '<td class="description">'.___('devcp_addon_status_action_public_description').'</td></tr>';
}
if (!empty($actions)) {
- echo '<h5>Available Actions</h5>';
+ echo '<h5>'.___('devcp_addon_status_header_actions').'</h5>';
echo '<table class="actions"><tbody>';
echo $actions;
echo '</tbody></table>';
@@ -157,14 +159,15 @@
</div>
<div class="field graybox rounded spaced">
- <h4 class="status">Active Status: <span class="inactive-<?=($addon['Addon']['inactive'] == 1 ? '1">Inactive' : '0">Active')?></span></h4>
<p>
<?php
if ($addon['Addon']['inactive'] == 1) {
- echo 'Your add-on is <span class="inactive-1">Inactive</span>. This means your add-on will not show up in any listing, regardless of its status above. Updates are <b>not</b> being provided to your add-on through the update check service.';
+ echo '<h4 class="status">'.___('devcp_addon_status_header_inactive').'</h4>';
+ echo ___('devcp_addon_status_inactive');
}
else {
- echo 'Your add-on is <span class="inactive-0">Active</span>. This means your add-on is showing up in all available listings appropriate for its status above.';
+ echo '<h4 class="status">'.___('devcp_addon_status_header_active').'</h4>';
+ echo ___('devcp_addon_status_active');
}
?>
</p>
@@ -172,12 +175,12 @@
<table class="actions"><tbody>
<?php
if ($addon['Addon']['inactive'] == 1) {
- echo '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/active").'" class="make-active add-button rounded">Make Active</a></td>';
- echo '<td class="description">Make your add-on active for it to show up in public listings and enable the update check service.</td></tr>';
+ echo '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/active").'" class="make-active add-button rounded">'.___('devcp_addon_status_action_activate').'</a></td>';
+ echo '<td class="description">'.___('devcp_addon_status_action_activate_description').'</tr>';
}
else {
- echo '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/inactive").'" class="make-inactive add-button rounded">Make Inactive</a></td>';
- echo '<td class="description">Make your add-on inactive to hide it from all public listings and disable the update check service.</td></tr>';
+ echo '<tr><td class="action"><a href="'.$html->url("/developers/addon/status/{$addon_id}/inactive").'" class="make-inactive add-button rounded">'.___('devcp_addon_status_action_deactivate').'</td>';
+ echo '<td class="description">'.___('devcp_addon_status_action_deactivate_description').'</tr>';
}
?>
</tbody></table>
@@ -185,9 +188,8 @@
<?php if ($addon['Addon']['trusted'] == 1): ?>
<div class="field graybox rounded spaced">
- <h4 class="status">Trusted Status: <span class="status-4">Trusted</span></h4>
-
- <p>Your add-on is <span class="status-4">Trusted</span>. This means you can submit updates to your add-on without editor review.</p>
+ <h4 class="status"><?=___('devcp_addon_status_header_trusted')?></h4>
+ <p><?=___('devcp_addon_status_trusted')?></p>
</div>
<?php endif; ?>
</form>
diff --git a/site/app/views/developers/addon_status_confirm.thtml b/site/app/views/developers/addon_status_confirm.thtml
index 0361888..fb3f6a3 100644
--- a/site/app/views/developers/addon_status_confirm.thtml
+++ b/site/app/views/developers/addon_status_confirm.thtml
@@ -40,49 +40,41 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "{$addon_name} Status", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_addon_status_title'), $addon_name), 'addon_id' => $addon_id));?>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
<form id="status-form" name="status-form" action="" method="post">
<?=$html->hiddenSession();?>
<input type="hidden" name="confirmed" value="true" />
<div class="graybox field rounded">
- <h4>Are you sure?</h4>
+ <h4><?=___('devcp_status_confirm_header_sure')?></h4>
<p>
<?php
switch ($subaction) {
- case 'inactive':
- echo 'Marking this add-on inactive will prevent it from showing up in any public areas, including search and browse listings. It will not be downloadable from the website and will not be returned in client update checks. You will be able to return here and re-enable it at your convenience.';
- echo '</p><p>';
- echo 'Are you sure you wish to mark this add-on inactive?';
- break;
-
- case 'active':
- echo 'Marking this add-on active will cause it to show up in public areas appropriate for its status, including search and browse listings. It will be downloadable from the website and could be returned in client update checks, depending on its status. You will be able to return here and disable it again at your convenience.';
- echo '</p><p>';
- echo 'Are you sure you wish to mark this add-on active?';
- break;
-
- case 'sandbox':
- echo 'Moving this add-on back to the sandbox will require users to login before downloading and updates will no longer be offered to existing users. Because your add-on is currently public, you will be able to return here at any time to make it public again.';
- echo '</p><p>';
- echo 'Are you sure you wish to move this add-on to the sandbox?';
- break;
-
- case 'public':
- echo 'Making this add-on public will make it available for anyone to download and will begin offering updates to existing users.';
- echo '</p><p>';
- echo 'Are you sure you wish to make this add-on public?';
- break;
+ case 'inactive':
+ echo ___('devcp_status_confirm_inactive').'</p><p>'.___('devcp_status_confirm_inactive_sure');
+ break;
+
+ case 'active':
+ echo ___('devcp_status_confirm_active').'</p><p>'.___('devcp_status_confirm_active_sure');
+ break;
+
+ case 'sandbox':
+ echo ___('devcp_status_confirm_sandbox').'</p><p>'.___('devcp_status_confirm_sandbox_sure');
+ break;
+
+ case 'public':
+ echo ___('devcp_status_confirm_public').'</p><p>'.___('devcp_status_confirm_public_sure');
+ break;
}
?>
</p>
<div style="text-align: center;">
- <a href="#" onclick="addon_status.confirm(); return false;" class="complete add-button rounded">Yes, I'm sure</a>&nbsp;&nbsp;
- <a href="<?=$html->url("/developers/addon/status/{$addon_id}/")?>" class="button rounded">No, cancel</a>
+ <a href="#" onclick="addon_status.confirm(); return false;" class="complete add-button rounded"><?=___('devcp_status_confirm_yes')?></a>&nbsp;&nbsp;
+ <a href="<?=$html->url("/developers/addon/status/{$addon_id}/")?>" class="button rounded"><?=___('devcp_status_confirm_no')?></a>
</div>
</div>
</form>
-
+
</div>
</div> \ No newline at end of file
diff --git a/site/app/views/developers/addon_status_nominate.thtml b/site/app/views/developers/addon_status_nominate.thtml
index bdb495d..2373732 100644
--- a/site/app/views/developers/addon_status_nominate.thtml
+++ b/site/app/views/developers/addon_status_nominate.thtml
@@ -40,10 +40,10 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "{$addon_name} Status", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_addon_status_title'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($errors)) {
- echo '<div class="notice-error rounded"><span>A nomination message is required.</span><br />Please fill in the text box with the requested information and try again.</div>';
+ echo '<div class="notice-error rounded">'.___('devcp_status_nominate_error_notice').'</div>';
}
?>
<?=$this->renderElement('noscript')?>
@@ -52,14 +52,14 @@
<?=$html->hiddenSession();?>
<input type="hidden" name="confirmed" value="true" />
<div class="graybox field rounded">
- <h4>Add-on Nomination</h4>
+ <h4><?=___('devcp_status_nominate_header')?></h4>
<?=$localization->includeLocalPage('nomination', array($html->url('/pages/policy')))?>
<div style="text-align: center;">
<textarea cols="70" rows="5" name="data[Addon][nominationmessage]"><?=(!empty($addon['Addon']['nominationmessage']) ? $addon['Addon']['nominationmessage'] : '')?></textarea>
<div><a href="#" onclick="addon_status.confirm(); return false;" class="nominate add-button rounded"><?=sprintf(_('devcp_nominate_submit_nominate'), $addon_name)?></a><br />
- <a href="<?=$html->url("/developers/addon/status/{$addon_id}/")?>">Cancel and return</a>
+ <a href="<?=$html->url("/developers/addon/status/{$addon_id}/")?>"><?=___('devcp_nominate_cancel')?></a>
</div>
</div>
</div>
diff --git a/site/app/views/developers/dashboard.thtml b/site/app/views/developers/dashboard.thtml
index 14bd92a..4659ece 100644
--- a/site/app/views/developers/dashboard.thtml
+++ b/site/app/views/developers/dashboard.thtml
@@ -40,7 +40,7 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons));?>
<div id="content-main">
- <h3>Developer Dashboard</h3>
+ <h3><?= ___('devcp_dashboard_header_main') ?></h3>
<div id="summary">
<?php
@@ -62,10 +62,13 @@
echo '<ul class="actionbar index-actions">';
// Edit Add-on
echo '<li class="edit"><a href="'.$html->url('/developers/addon/edit/'.$addon_id).'" class="view">'._('devcp_actionbar_link_edit').'</a>';
- echo '<span class="action-details">'.sprintf('Last edited on %s', strftime(_('date'), strtotime($addon['Addon']['modified']))).'</span></li>';
+ echo '<span class="action-details">'.sprintf(___('devcp_dashboard_last_edited'), strftime(_('date'), strtotime($addon['Addon']['modified']))).'</span></li>';
// Change Status
- echo '<li class="status"><a href="'.$html->url('/developers/addon/status/'.$addon_id).'" class="view">Change Status</a>';
- echo '<span class="action-details">'.sprintf('%s currently %s and %s', $addontypes[$addon['Addon']['addontype_id']], '<span class="inactive-'.$addon['Addon']['inactive'].'">'.($addon['Addon']['inactive'] == 1 ? 'Inactive' : 'Active').'</span>', '<span class="status-'.$addon['Addon']['status'].'">'.$statuses[$addon['Addon']['status']].'</span>').'</span></li>';
+ echo '<li class="status"><a href="'.$html->url('/developers/addon/status/'.$addon_id).'" class="view">'.___('devcp_dashboard_change_status').'</a>';
+ $active = $addon['Addon']['inactive'] == 1 ? ___('devcp_dashboard_inactive') : ___('devcp_dashboard_active');
+ echo '<span class="action-details">'.sprintf(___('devcp_dashboard_addontype_status'), $addontypes[$addon['Addon']['addontype_id']],
+ '<span class="inactive-'.$addon['Addon']['inactive'].'">'.$active.'</span>',
+ '<span class="status-'.$addon['Addon']['status'].'">'.$statuses[$addon['Addon']['status']].'</span>').'</span></li>';
// Statistics Dashboard
echo '<li class="statistics"><a href="'.$html->url('/statistics/addon/'.$addon_id).'" class="view">'._('devcp_actionbar_link_stats').'</a>';
echo '<span class="action-details stats">';
@@ -76,7 +79,7 @@
echo sprintf(_('devcp_statsbar_adu'), $html->number_format($addon['Addon']['updatepings'], 0));
echo '</span></li>';
// Versions and Files
- echo '<li class="versions"><a href="'.$html->url('/developers/versions/'.$addon_id).'" class="view">Versions and Files</a>';
+ echo '<li class="versions"><a href="'.$html->url('/developers/versions/'.$addon_id).'" class="view">'.___('devcp_dashboard_versions').'</a>';
echo '<span class="action-details">';
if (!empty($latestVersion)) {
echo _('devcp_summary_lastversion').' '.$html->link($latestVersion['version'], '/developers/versions/edit/'.$latestVersion['id']).' ('.$this->controller->Amo->describeVersionStatus($latestVersion['File']).')';
@@ -85,7 +88,7 @@
}
}
if ($addon['Addon']['inactive'] != 1) {
- echo '<a href="'.$html->url('/developers/versions/add/'.$addon_id).'">Upload a new version</a>';
+ echo '<a href="'.$html->url('/developers/versions/add/'.$addon_id).'">'.___('devcp_dashboard_versions_new').'</a>';
}
echo '</span></li>';
// Previews
@@ -94,8 +97,8 @@
}
else {
// Admin Disabled Add-on
- echo '<p>Add-on Status: <span class="status-'.STATUS_DISABLED.'">'.$statuses[STATUS_DISABLED].'</span></p>';
- echo '<p>Your add-on was disabled by an administrator and cannot be used. If you have any questions, please e-mail'.ADMIN_EMAIL.'.</p>';
+ echo '<p>'.sprintf(___('devcp_dashboard_disabled_status'), '<span class ="'.STATUS_DISABLED.'">'.$statuses[STATUS_DISABLED].'</span>').'</p>';
+ echo '<p>'.sprintf(___('devcp_dashboard_disabled_questions'), 'amo-admins@mozilla.org').'</p>';
}
?>
</div>
@@ -106,6 +109,10 @@
}
else {
echo '<div class="graybox rounded">';
+ echo '<h4>'.___('devcp_dashboard_header_welcome').'</h4>';
+ echo '<p>'.___('devcp_dashboard_learn').'</p>';
+ echo '<div style="text-align: center;"><a href="'.$html->url('/developers/addon/submit').'" class="action-button rounded">'.___('devcp_dashboard_start').'</a></div>';
+
echo '<h4>Welcome to the Developer Dashboard</h4>';
echo '<p>You don\'t currently have any add-ons hosted on '.SITE_NAME.'. To learn how the process works and submit your first add-on, click Get Started below.</p>';
echo '<div style="text-align: center;"><a href="'.$html->url('/developers/addon/submit').'" class="action-button rounded">Get Started</a></div>';
diff --git a/site/app/views/developers/discuss.thtml b/site/app/views/developers/discuss.thtml
new file mode 100644
index 0000000..914ee4b
--- /dev/null
+++ b/site/app/views/developers/discuss.thtml
@@ -0,0 +1,85 @@
+<?php
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/e
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is addons.mozilla.org site.
+ *
+ * The Initial Developer of the Original Code is
+ * Frederic Wenzel <fwenzel@mozilla.com>.
+ * Portions created by the Initial Developer are Copyright (C) 2009
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+?>
+<div id="content">
+ <?=$this->renderElement('developers/sidebar', array('addons' => $all_addons));?>
+
+ <div id="content-main">
+
+ <h3><?=sprintf(___('devcp_discuss_pagetitle', 'Provide More Information For the Add-on Review of %1$s'), $addonName)?></h3>
+
+
+ <p><?=sprintf(___('devcp_discuss_intro', 'A Mozilla Add-ons Editor requested further '
+ .'information from you regarding version %2$s of your add-on %1$s.'), $addonName, $versionno)?></p>
+
+ <div class="corner-box">
+ <p><?=$inforequest['Approval']['comments']?></p>
+ <cite>
+ <?=sprintf(___('devcp_discuss_writtenby', 'written by %1$s on %2$s'), $html->linkUserFromModel($inforequest['User']), strftime(_('datetime'), strtotime($inforequest['Approval']['created'])))?>
+ </cite>
+ </div>
+
+ <?php if (!empty($replies)): ?>
+ <h4><?=___('devcp_discuss_allreplies_header', 'Replies')?></h4>
+ <?php foreach ($replies as &$reply): ?>
+ <div class="corner-box">
+ <p><?=$reply['Approval']['comments']?></p>
+ <cite>
+ <?=sprintf(___('devcp_discuss_writtenby', 'written by %1$s on %2$s'), $html->linkUserFromModel($reply['User']), strftime(_('datetime'), strtotime($reply['Approval']['created'])))?>
+ </cite>
+ </div>
+ <?php endforeach; ?>
+ <?php endif; ?>
+
+ <h4><?=___('devcp_discuss_addreply_header', 'Add Reply')?></h4>
+ <?php if (!empty($error)): ?>
+ <div class="error-notice"><p><?=sprintf(___('devcp_discuss_error_notice', 'There was an error saving your reply. Please contact %1$s about the issue.'), $link->email('amo-editors@mozilla.org'))?></p></div>
+ <?php elseif (!empty($success)): ?>
+ <div><p><?=___('devcp_discuss_success_message', 'Your reply was successfully saved. The other participants of the discussion will be notified by email.')?></p></div>
+ <?php else: ?>
+ <?=$html->formTag()?>
+ <div id="commentsbox">
+ <?=$html->textarea('Approval/comments', array('cols' => '70', 'rows' => '5', 'id' => 'comments', 'class' => 'input'))?>
+ </div>
+ <div id="finish">
+ <?=$html->submit(___('devcp_discuss_submit_reply', 'Submit Reply'), array('id' => 'submit'))?>
+ </div>
+ </form>
+ <?php endif; ?>
+
+ </div> <!-- content-main -->
+</div> <!-- content -->
diff --git a/site/app/views/developers/previews.thtml b/site/app/views/developers/previews.thtml
index 2c3768d..2cbdccf 100644
--- a/site/app/views/developers/previews.thtml
+++ b/site/app/views/developers/previews.thtml
@@ -40,13 +40,13 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "{$addon_name} Preview Manager", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_previews_title'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($messages['success'])) {
- echo '<div class="notice-success rounded"><span>Your previews have been updated successfully.</span><br /><ul><li>'.implode('</li><li>', $messages['success']).'</li></ul></div>';
+ echo '<div class="notice-success rounded"><span>'.___('devcp_previews_notice_success').'</span><br /><ul><li>'.implode('</li><li>', $messages['success']).'</li></ul></div>';
}
if (!empty($messages['errors'])) {
- echo '<div class="notice-error rounded"><span>One or more of your new previews could not be saved.</span><br /><ul><li>'.implode('</li><li>', $messages['errors']).'</li></ul></div>';
+ echo '<div class="notice-error rounded"><span>'.___('devcp_previews_notice_error').'</span><br /><ul><li>'.implode('</li><li>', $messages['errors']).'</li></ul></div>';
}
echo $this->renderElement('noscript');
@@ -55,7 +55,7 @@
echo $html->hiddenSession();
if (!empty($previews)) {
- echo '<p>The preview screenshots for your add-on are shown below. You can make changes to captions or images below. The Default Preview is the preview that is displayed next to your add-on in search and browse listings.</p>';
+ echo '<p>'.___('devcp_previews_p_screenshots').'</p>';
// Retrieve language arrays from bootstrap.
global $valid_languages, $native_languages;
foreach (array_keys($valid_languages) as $key) {
@@ -74,9 +74,9 @@
?>
<div class="preview-box graybox rounded spaced field">
<table style="width: 100%;"><tr><td style="width: 200px; text-align: center; vertical-align: top;">
- <img src="<?=$this->controller->Image->getPreviewURL($preview['Preview']['id'])?>/0" alt="Thumbnail" />
+ <img src="<?=$this->controller->Image->getPreviewURL($preview['Preview']['id'])?>/0" alt="<?=___('devcp_previews_thumbnail')?>" />
</td><td style="vertical-align: top;">
- <h5 style="margin-top: 0; margin-bottom: 2px;">Preview Caption</h5>
+ <h5 style="margin-top: 0; margin-bottom: 2px;"><?=___('devcp_previews_header_caption')?></h5>
<div class="translation-box">
<?php
echo $this->renderElement('developers/translationbox', array(
@@ -91,22 +91,21 @@
<table style="width: 100%; padding-top: 10px;"><tr><td>
<label><input type="radio" name="data[Preview][highlight]" value="<?=$preview['Preview']['id']?>" style="vertical-align: top;"<?=($preview['Preview']['highlight'] == 1 ? ' checked="checked"' : '')?>/>
- Default Preview</label>
+ <?=___('devcp_previews_label_default')?></label>
</td><td style="text-align: right;">
- <a href="#" onclick="previews.showReplaceBox(this); return false;" class="edit-button rounded">Replace Preview</a>&nbsp;
- <a href="#" onclick="previews.deletePreview(this); return false;" class="remove-button rounded">Delete Preview</a>
+ <a href="#" onclick="previews.showReplaceBox(this); return false;" class="edit-button rounded"><?=___('devcp_previews_a_replace')?></a>&nbsp;
+ <a href="#" onclick="previews.deletePreview(this); return false;" class="remove-button rounded"><?=___('devcp_previews_a_delete')?></a>
</td></tr></table>
<div class="replace-preview" style="display: none;">
- <label>New image:
+ <label><?=___('devcp_previews_label_new')?>
<input type="file" name="data[Preview][New][<?=$preview['Preview']['id']?>]" /></label>
- <p>Click the Update Previews button below to save this image. (<a href="#" onclick="previews.cancelReplace(this); return false;">Cancel?</a>)</p>
+ <p><?=sprintf(___('devcp_previews_click_update'), 'href="#" onclick="previews.cancelReplace(this); return false;"')?></p>
</div>
</td></tr></table>
<input type="hidden" class="delete" name="data[Preview][Delete][<?=$preview['Preview']['id']?>]" value="false" />
- <div class="error-message">This preview will be deleted when Update Previews is clicked below. (<a href="#" onclick="previews.cancelDelete(this); return false;">Cancel?</a>)</div>
-
+ <div class="error-message"><?=sprintf(___('devcp_previews_error_message'), 'href="#" onclick="previews.cancelDelete(this); return false;"')?></div>
</div>
<?php
}
@@ -114,18 +113,18 @@
?>
<div id="add-preview-box" class="graybox rounded spaced field" style="<?=(!empty($previews) ? 'display: none;' : '')?>">
- <h4>Add New Preview</h4>
- <p>Select an image to upload below. Images larger than the maximum size of 700 pixels wide by 525 pixels tall will be resized. Allowed file types: <?=implode(', ', $this->controller->Developers->imageExtensions)?></p>
+ <h4><?=___('devcp_previews_add_new')?></h4>
+ <p><?=sprintf(___('devcp_previews_add_select'), implode(', ', $this->controller->Developers->imageExtensions))?></p>
<div id="new-preview-container">
- <label class="new-preview">Upload Preview: <input type="file" name="data[Preview][New][]" size="40" /></label>
+ <label class="new-preview"><?=___('devcp_previews_label_upload')?><input type="file" name="data[Preview][New][]" size="40" /></label>
</div>
- <div class="add-button-container"><a href="#" onclick="previews.addUploadBox(); return false;" class="add-button rounded">Add Another Preview</a></div>
- <div style="text-align: right;">Click Update Previews below to upload.</div>
+ <div class="add-button-container"><a href="#" onclick="previews.addUploadBox(); return false;" class="add-button rounded"><?=___('devcp_previews_a_another')?></a></div>
+ <div style="text-align: right;"><?=___('devcp_previews_click_below')?></div>
</div>
- <div class="add-button-container" style="<?=(empty($previews) ? 'display: none;' : '')?>"><a href="#add-preview-box" onclick="previews.showAddBox(this);" class="add-button rounded">Add New Preview</a></div>
+ <div class="add-button-container" style="<?=(empty($previews) ? 'display: none;' : '')?>"><a href="#add-preview-box" onclick="previews.showAddBox(this);" class="add-button rounded"><?=___('devcp_previews_add_new')?></a></div>
- <div class="action-button-container centered"><a href="#" onclick="previews.save(); return false;" class="action-button rounded">Update Previews</a></div>
+ <div class="action-button-container centered"><a href="#" onclick="previews.save(); return false;" class="action-button rounded"><?=___('devcp_previews_a_update')?></a></div>
</form>
</div>
</div> \ No newline at end of file
diff --git a/site/app/views/developers/uploader.thtml b/site/app/views/developers/uploader.thtml
index 7a16fc2..6d5c425 100644
--- a/site/app/views/developers/uploader.thtml
+++ b/site/app/views/developers/uploader.thtml
@@ -47,14 +47,14 @@
echo '<div id="content-main" class="'.($type != 'new' && $author_role < AUTHOR_ROLE_DEV ? 'no-privs' : 'privs').'">';
if ($type == 'new') {
- $title = 'Submit New Add-on';
+ $title = ___('devcp_uploader_title_submit');
$addon_id = 0;
}
elseif ($type == 'update') {
- $title = sprintf('Update %s', $addon_name);
+ $title = sprintf(___('devcp_uploader_title_update'), $addon_name);
}
elseif ($type == 'file') {
- $title = sprintf('Add File to %s', "{$addon_name} {$version}");
+ $title = sprintf(___('devcp_uploader_title_file'), $addon_name, $version);
}
echo $this->renderElement('developers/addonheader', array('title' => $title, 'addon_id' => $addon_id));
?>
@@ -63,6 +63,10 @@
<div id="submission-area" class="rounded graybox">
<?php if ($type == 'new'): ?>
<div id="step-intro">
+ <h3><?=___('devcp_uploader_header_how')?></h3>
+ <?=___('devcp_uploader_how')?>
+ <div style="text-align: center;"><a href="#" onclick="upload.showAgreement(); return false;" class="action-button rounded"><?=___('devcp_uploader_a_start')?></a></div>
+
<h3>How does it all work?</h3>
<p>Thanks for your interest in submitting your add-on to <?=SITE_NAME?>. Hosting your add-on on <?=SITE_NAME?> is the easiest way to handle distribution of your add-on. Here's what you'll get:</p>
<ul>
@@ -87,16 +91,16 @@
<?php endif; ?>
<div id="file-upload"<?=($type == 'new' ? ' style="display: none;"' : '')?>>
- <h3>Upload Your File</h3>
- <p>Upload your add-on file using the form below. If you have multiple, platform-specific files to upload, choose a single file and then upload the others using the Versions and Files Manager.</p>
+ <h3><?=___('devcp_uploader_header_upload')?></h3>
+ <p><?=___('devcp_uploader_p_upload')?>
<br />
<form id="upload-form" method="post" enctype="multipart/form-data" action="<?=$html->url('/developers/json/fileupload/'.$type)?>" target="upload-frame" onsubmit="return upload.uploadFile();">
<?=$html->hiddenSession();?>
<?=(!empty($addon_id) ? '<input type="hidden" name="data[Addon][id]" value="'.$addon_id.'" />' : '')?>
<?=(!empty($version_id) ? '<input type="hidden" name="data[Version][id]" value="'.$version_id.'" />' : '')?>
- <label>Add-on File: <input id="upload-field" type="file" name="file" /></label><br />
- Supported Platforms:&nbsp;&nbsp;<label><input type="radio" name="platformtype" onclick="upload.platformAll();" checked />&nbsp;All</label>&nbsp;&nbsp;
- <label><input type="radio" name="platformtype" onclick="upload.platformSpecific();" />&nbsp;Specific:</label>
+ <label><?=___('devcp_uploader_label_upload_field')?><input id="upload-field" type="file" name="file" /></label><br />
+ <?=___('devcp_uploader_label_platformtype')?>&nbsp;&nbsp;<label><input type="radio" name="platformtype" onclick="upload.platformAll();" checked />&nbsp;<?=___('devcp_uploader_platformtype_all')?></label>&nbsp;&nbsp;
+ <label><input type="radio" name="platformtype" onclick="upload.platformSpecific();" />&nbsp;<?=___('devcp_uploader_platformtype_specific')?></label>
<?php
$platforms = $this->controller->Platform->getNames();
foreach ($platforms as $platform_id => $platform_name) {
@@ -107,13 +111,13 @@
<div class="submit">
<input type="submit" value="Upload File" class="require-privs" />
</div>
- <div id="upload-loading"><?=$html->image('ajax_loading.gif')?>&nbsp;Uploading file...</div>
+ <div id="upload-loading"><?=$html->image('ajax_loading.gif')?>&nbsp;<?=___('devcp_uploader_ajax_loading')?></div>
</form>
<div id="upload-error" class="redbox-tr"><div class="redbox-tl">
<div id="upload-error-content">
- <h4>Oops! There seems to be a problem with this file...</h4>
+ <h4><?=___('devcp_uploader_header_error')?></h4>
<p id="upload-error-text" class="smallmargin"></p>
- <p class="smallmargin">Please correct this problem and upload your file again.</p>
+ <p class="smallmargin"><?=___('devcp_uploader_error_correct')?></p>
</div>
<div class="redbox-br"><div class="redbox-bl"></div></div>
</div></div>
@@ -124,33 +128,30 @@
<div id="upload-success" class="greenbox-tr"><div class="greenbox-tl">
<?php if ($type == 'new'): ?>
<div id="addon-created-content">
- <h3>Add-on Created!</h3>
+ <h3><?=___('devcp_uploader_header_created')?>
<div id="created-results">
- <p>Your add-on listing has been successfully created. The basic information obtained from your uploaded file has been stored, but there's a lot more to your listing that can be customized.</p>
- <p>Your add-on is currently marked as <strong>Incomplete</strong>. In order to complete your add-on, you'll need to make sure it has an accurate name, summary, and description, as well as at least one selected category. You can edit your add-on's information using the link below and check the status of your add-on at any time on the <a id="status-link" href="<?=$html->url('/developers/addon/status/')?>">status page</a>.</p>
-
- <div class="action-button-container centered"><a id="complete-link" href="<?=$html->url('/developers/addon/edit/')?>" class="action-button rounded">Edit My Add-on</a></div>
- <div style="text-align: center;"><a href="<?=$html->url('/developers')?>">I'll complete my add-on later.</a></div>
+ <?=sprintf(___('devcp_uploader_created_results'), 'href="/developers/addon/status/" id="status-link"')?>
+ <div class="action-button-container centered"><a id="complete-link" href="<?=$html->url('/developers/addon/edit/')?>" class="action-button rounded"><?=___('devcp_uploader_button_edit')?></a></div>
+ <div style="text-align: center;"><a href="<?=$html->url('/developers')?>"><?=___('devcp_uploader_button_later')?></a></div>
</div>
</div><!-- /#addon-created-content -->
<?php elseif ($type == 'update'): ?>
<div id="version-created-content">
- <h3>Version <span id="new-version-number"></span> Created!</h3>
+ <h3><?=sprintf(___('devcp_uploader_header_update_created'), '<span id="new-version-number"></span>')?></h3>
<div id="created-results">
- <p>Your new version has been created and is currently marked as <span id="new-file-status"></span>.</p>
- <p id="pending-message">The new version will be available to the public as soon as an editor is able to review it. There are currently <span id="queue-count"></span> other add-ons in the queue. Want to be reviewed faster? Consider <a href="http://wiki.sugarlabs.org/go/ActivityTeam/aslo">becoming an editor</a>.</p>
- <p>View your new version in the <a id="version-link" href="<?=$html->url('/developers/versions/edit/')?>">Versions and Files page</a>, check out your add-on's <a href="<?=$html->url('/developers/addon/status/'.$addon_id)?>">current status</a>, or <b>add release notes</b> by clicking the button below (highly recommended).</p>
-
- <div class="action-button-container centered"><a id="complete-link" href="<?=$html->url('/developers/versions/edit/')?>" class="action-button rounded">Add Release Notes</a></div>
+ <p><?=sprintf(___('devcp_uploader_p_update_created'), '<span id="new-file-status"></span>')?></p>
+ <p id="pending-message"><?=sprintf(___('devcp_uploader_p_pending_version'), '<span id="queue-count"></span>', 'href="https://wiki.mozilla.org/Update:Editors"')?></p>
+ <p><?=sprintf(___('devcp_uploader_p_update_version'), '/developers/versions/edit/', '/developers/addon/status/'.$addon_id)?>
+ <div class="action-button-container centered"><a id="complete-link" href="<?=$html->url('/developers/versions/edit/')?>" class="action-button rounded"><?=___('devcp_uploader_button_release')?></a></div>
</div>
</div><!-- /#version-created-content -->
<?php elseif ($type == 'file'): ?>
<div id="file-created-content">
- <h3>File Added!</h3>
+ <h3><?=___('devcp_uploader_header_file_added')?></h3>
<div id="created-results">
- <p>Your new file has been added to version <?=$version?> and is currently marked as <span id="new-file-status"></span>.</p>
- <p id="pending-message">The new version will be available to the public as soon as an editor is able to review it. There are currently <span id="queue-count"></span> other add-ons in the queue. Want to be reviewed faster? Consider <a href="http://wiki.sugarlabs.org/go/ActivityTeam/aslo">becoming an editor</a>.</p>
- <p>View your new file in the <a href="<?=$html->url('/developers/versions/edit/'.$version_id)?>">Versions and Files page</a>, or check out your add-on's <a href="<?=$html->url('/developers/addon/status/'.$addon_id)?>">current status</a>.</p>
+ <p><?=sprintf(___('devcp_uploader_file_created'), $version, '<span id="new-file-status"></span>')?></p>
+ <p id="pending-message"><?=sprintf(___('devcp_uploader_p_pending_file'), '<span id="queue-count"></span>', 'href="https://wiki.mozilla.org/Update:Editors"')?></p>
+ <p><?=sprintf(___('devcp_uploader_p_update_file'), '/developers/versions/edit/', '/developers/addon/status/'.$addon_id)?>
</div>
</div><!-- /#file-created-content -->
<?php endif; ?>
diff --git a/site/app/views/developers/versions.thtml b/site/app/views/developers/versions.thtml
index 1fd67d9..323ba34 100644
--- a/site/app/views/developers/versions.thtml
+++ b/site/app/views/developers/versions.thtml
@@ -40,22 +40,22 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($deleteSuccess)) {
- echo '<div class="notice-success rounded"><span>Version '.$deletedVersion.' deleted successfully.</span></div>';
+ echo '<div class="notice-success rounded"><span>'.sprintf(___('devcp_versions_notice_success'), $deletedVersion).'</span></div>';
}
?>
- <h2>Manage Versions and Files</h2>
+ <h2><?=___('devcp_versions_header_manage')?></h2>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
<div class="graybox spaced rounded">
<table id="versions-table" class="pretty-table">
<?php
echo '<tr>';
- echo '<th style="width: 25%;">Version</th>';
- echo '<th style="width: 30%;">File Status</th>';
- echo '<th style="width: 30%;">Created</th>';
+ echo '<th style="width: 25%;">'.___('devcp_versions_th_version').'</th>';
+ echo '<th style="width: 30%;">'.___('devcp_versions_th_status').'</th>';
+ echo '<th style="width: 30%;">'.___('devcp_versions_th_created').'</th>';
echo '<th style="width: 15%;"></th>';
echo '</tr>';
if (!empty($versions)) {
@@ -68,15 +68,15 @@
echo '<td class="delete-area" style="text-align: right;">';
if (empty($version['File'])) {
echo '<div class="inline-delete-button uses-button">';
- echo '<a href="#" onclick="versions.deleteVersion(this); return false;" class="remove-button rounded trigger">Remove?</a>';
+ echo '<a href="#" onclick="versions.deleteVersion(this); return false;" class="remove-button rounded trigger">'.___('devcp_versions_a_remove').'</a>';
echo '<div class="inline-delete-box">';
- echo '<p>This version has no files associated with it and can be removed. Would you like to remove this version?</p><br />';
- echo '<p><a href="'.$html->url('/developers/versions/delete/'.$version['Version']['id']).'" class="remove-button rounded">Remove Empty Version</a>&nbsp;&nbsp;';
- echo '<a href="#" onclick="versions.cancelDelete(this); return false;" class="button rounded">Cancel</a></p>';
+ echo '<p>'.___('devcp_versions_p_remove').'</p><br />';
+ echo '<p><a href="'.$html->url('/developers/versions/delete/'.$version['Version']['id']).'" class="remove-button rounded">'.___('devcp_versions_a_empty').'</a>&nbsp;&nbsp;';
+ echo '<a href="#" onclick="versions.cancelDelete(this); return false;" class="button rounded">'.___('devcp_versions_a_cancel').'</a></p>';
echo '</div></div>';
}
else {
- echo '<a href="'.$html->url('/developers/versions/delete/'.$version['Version']['id']).'">'.$html->image('developers/delete.png', array('alt' => 'Delete Version', 'title' => 'Delete Version')).'</a>';
+ echo '<a href="'.$html->url('/developers/versions/delete/'.$version['Version']['id']).'">'.$html->image('developers/delete.png', array('alt' => ___('devcp_versions_a_delete'), 'title' => ___('devcp_versions_a_delete'))).'</a>';
}
echo '</td>';
echo '</tr>';
@@ -84,11 +84,11 @@
}
}
else {
- echo '<tr><td colspan="3" style="text-align: center;"><i>No versions.</i></td></tr>';
+ echo '<tr><td colspan="3" style="text-align: center;"><i>'.___('devcp_versions_no_versions').'</i></td></tr>';
}
?>
</table>
- <div class="add-button-container"><a href="<?=$html->url("/developers/versions/add/{$addon_id}")?>" class="add-button rounded">Add New Version</a></div>
+<div class="add-button-container"><a href="<?=$html->url("/developers/versions/add/{$addon_id}")?>" class="add-button rounded"><?=___('devcp_versions_add')?></a></div>
</div>
</div>
</div> \ No newline at end of file
diff --git a/site/app/views/developers/versions_delete.thtml b/site/app/views/developers/versions_delete.thtml
index ff5016a..c1d7d67 100644
--- a/site/app/views/developers/versions_delete.thtml
+++ b/site/app/views/developers/versions_delete.thtml
@@ -40,20 +40,24 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?=$this->renderElement('noscript')?>
<form id="versions-delete-form" action="" method="post">
<?=$html->hiddenSession();?>
<div class="graybox rounded">
- <h4>Delete Version <?=$version['Version']['version']?>?</h4>
- <p class="smallmargin">Are you sure you want to permanently delete version <?=$version['Version']['version']?>?</p>
- <p>This will also delete its <?=count($version['Review'])?> review(s) and <?=count($version['File'])?> file(s).</p>
+ <h4><?=sprintf(___('devcp_versions_delete_header'), $version['Version']['version'])?></h4>
+ <p class="smallmargin"><?=sprintf(___('devcp_versions_delete_sure'), $version['Version']['version'])?></p>
+ <p><?=___('devcp_versions_delete_also')?></p>
+ <ul>
+ <li><?=sprintf(n___('devcp_versions_delete_reviews', 'devcp_versions_delete_reviews', count($version['Review'])), count($version['Review']))?></li>
+ <li><?=sprintf(n___('devcp_versions_delete_files', 'devcp_versions_delete_files', count($version['File'])), count($version['File']))?></li>
+ </ul>
<div>
- <a href="#" onclick="versions_delete.confirm(); return false;" class="remove-button rounded">Delete Version</a>
+ <a href="#" onclick="versions_delete.confirm(); return false;" class="remove-button rounded"><?=___('devcp_versions_delete_a_delete')?></a>
<input type="hidden" name="confirmDelete" value="1"/>&nbsp;&nbsp;
- <a href="<?=$html->url('/developers/versions/'.$addon_id)?>" class="button rounded">Cancel</a>
+ <a href="<?=$html->url('/developers/versions/'.$addon_id)?>" class="button rounded"><?=___('devcp_versions_delete_a_cancel')?></a>
</div>
</div>
</form>
</div>
-</div> \ No newline at end of file
+</div>
diff --git a/site/app/views/developers/versions_edit.thtml b/site/app/views/developers/versions_edit.thtml
index c3dc730..da0504e 100644
--- a/site/app/views/developers/versions_edit.thtml
+++ b/site/app/views/developers/versions_edit.thtml
@@ -40,16 +40,16 @@
<?=$this->renderElement('developers/sidebar', array('addons' => $all_addons, 'extra' => 'developers/editbox'));?>
<div id="content-main" class="<?=($author_role >= AUTHOR_ROLE_DEV ? 'privs' : 'no-privs')?>">
- <?=$this->renderElement('developers/addonheader', array('title' => "Edit {$addon_name}", 'addon_id' => $addon_id));?>
+ <?=$this->renderElement('developers/addonheader', array('title' => sprintf(___('devcp_title_edit_addon'), $addon_name), 'addon_id' => $addon_id));?>
<?php
if (!empty($success)) {
- echo '<div class="notice-success rounded"><span>Your changes have been saved.</span><br />Please note that some changes may take several hours to appear in all areas of the website.</div>';
+ echo '<div class="notice-success rounded">'.___('devcp_notice_changes_saved').'</div>';
}
if (!empty($errors)) {
- echo '<div class="notice-error rounded"><span>One or more of your changes couldn\'t be saved.</span><br />Please look for the errors below. The rest of your changes were successfully saved.</div>';
+ echo '<div class="notice-error rounded">'.___('devcp_notice_changes_error').'</div>';
}
?>
- <h2>Manage Version <?=$version['Version']['version']?></h2>
+ <h2><?=sprintf(___('devcp_versions_edit_header_manage'), $version['Version']['version'])?></h2>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
<form id="versions-edit-form" action="" method="post">
@@ -70,14 +70,14 @@
);
echo '<div class="graybox rounded spaced field">';
- echo '<h4>File Information</h4>';
+ echo '<h4>'.___('devcp_versions_edit_header_file').'</h4>';
if (!empty($version['File'])) {
echo '<table id="files-table" class="pretty-table">';
echo '<thead><tr>';
- echo '<th>File</th>';
- echo '<th>Platform</th>';
- echo '<th>Size</th>';
- echo '<th>Status</th>';
+ echo '<th>'.___('devcp_versions_edit_th_file').'</th>';
+ echo '<th>'.___('devcp_versions_edit_th_platform').'</th>';
+ echo '<th>'.___('devcp_versions_edit_th_size').'</th>';
+ echo '<th>'.___('devcp_versions_edit_th_status').'</th>';
echo '<th style="width: 25px;"></th>';
echo '</tr></thead><tbody>';
$i = 0;
@@ -94,11 +94,11 @@
echo '<td>'.sprintf(_('size_kb'), $file['size']).'</td>';
echo '<td>'.$statuses[$file['status']].'</td>';
echo '<td><div class="inline-delete-button uses-image">';
- echo '<a href="#" onclick="versions_edit.deleteVersion(this); return false;">'.$html->image('developers/delete.png', array('alt' => 'Delete File', 'title' => 'Delete File')).'</a>';
+ echo '<a href="#" onclick="versions_edit.deleteVersion(this); return false;">'.$html->image('developers/delete.png', array('alt' => ___('devcp_versions_edit_img_delete'), 'title' => ___('devcp_versions_edit_img_delete'))).'</a>';
echo '<div class="inline-delete-box">';
- echo '<p>Are you <b>sure</b> you wish to permanently delete this file?</p><br />';
- echo '<p><a href="#" onclick="versions_edit.confirmDelete(this); return false;" class="remove-button rounded">Delete File</a>&nbsp;&nbsp;';
- echo '<a href="#" onclick="versions_edit.cancelDelete(this); return false;" class="button rounded">Cancel</a></p>';
+ echo '<p>'.___('devcp_versions_edit_delete_sure').'</p><br />';
+ echo '<p><a href="#" onclick="versions_edit.confirmDelete(this); return false;" class="remove-button rounded">'.___('devcp_versions_edit_a_delete').'</a>&nbsp;&nbsp;';
+ echo '<a href="#" onclick="versions_edit.cancelDelete(this); return false;" class="button rounded">'.___('devcp_versions_edit_a_cancel').'</a></p>';
echo '</div>';
echo '</div></td>';
echo '</tr>';
@@ -107,17 +107,17 @@
echo '</tbody></table>';
}
else {
- echo '<p><i>No files found.</i></p>';
+ echo '<p><i>'.___('devcp_versions_edit_no_files').'</i></p>';
}
- echo '<div class="save-changes rounded"><strong>You have unsaved changes.</strong> Files will not be deleted until you click Update Version below.</div>';
- echo '<div class="add-button-container"><a href="'.$html->url("/developers/versions/addfile/{$version['Version']['id']}").'" class="add-button rounded">Add New File</a></div>';
+ echo '<div class="save-changes rounded">'.___('devcp_versions_edit_unsaved_files').'</div>';
+ echo '<div class="add-button-container"><a href="'.$html->url("/developers/versions/addfile/{$version['Version']['id']}").'" class="add-button rounded">'.___('devcp_versions_edit_add').'</a></div>';
echo '</div>';
// Compatible applications (hidden for search engines)
if ($addon['Addon']['addontype_id'] != ADDON_SEARCH) {
echo '<div class="graybox rounded spaced field">';
- echo '<h4>Compatible Applications</h4>';
- echo '<p>Adjusting application information here will allow users to install your add-on even if the install.rdf in the package indicates that the add-on is incompatible. <a href="'.$html->url('/pages/appversions').'">List of supported applications and versions</a></p>';
+ echo '<h4>'.___('devcp_versions_edit_header_compat').'</h4>';
+ echo '<p>'.sprintf(___('devcp_versions_edit_adjust'), '/pages/appversions').'</p>';
echo '<table id="edit-versions-targetapps-table" class="pretty-table"><tbody>';
$i = 0;
@@ -147,11 +147,11 @@
echo '</select></td>';
echo '<td style="width: 25px;">';
echo '<div class="inline-delete-button uses-image">';
- echo '<a href="#" onclick="versions_edit.deleteVersion(this); return false;">'.$html->image('developers/delete.png', array('alt' => 'Remove Application Compatibility', 'title' => 'Remove Application Compatibility')).'</a>';
- echo '<div class="inline-delete-box">';
- echo '<p>Are you <b>sure</b> you wish to remove compatibility with this application?</p><br />';
- echo '<p><a href="#" onclick="versions_edit.confirmDelete(this); return false;" class="remove-button rounded">Remove Application</a>&nbsp;&nbsp;';
- echo '<a href="#" onclick="versions_edit.cancelDelete(this); return false;" class="button rounded">Cancel</a></p>';
+ echo '<a href="#" onclick="versions_edit.deleteVersion(this); return false;">'.$html->image('developers/delete.png', array('alt' => ___('devcp_versions_edit_remove_compat'), 'title' => ___('devcp_versions_edit_remove_compat'))).'</a>';
+ echo '<div class="inline-delete-box">';
+ echo '<p>'.___('devcp_versions_edit_compat_sure').'</p><br />';
+ echo '<p><a href="#" onclick="versions_edit.confirmDelete(this); return false;" class="remove-button rounded">'.___('devcp_versions_edit_a_remove_app').'</a>&nbsp;&nbsp;';
+ echo '<a href="#" onclick="versions_edit.cancelDelete(this); return false;" class="button rounded">'.___('devcp_versions_edit_a_cancel').'</a></p>';
echo '</div>';
echo '</div></td>';
@@ -160,10 +160,10 @@
}
}
echo '</tbody></table>';
- echo '<div class="save-changes rounded"><strong>You have unsaved changes.</strong> Compatibility will not be modified until you click Update Version below.</div>';
- echo '<div class="add-button-container" style="width: 60%; margin: 10px auto 0;"><a href="#" onclick="versions_edit.showAppPicker(); return false;" class="add-button rounded">Add New Application</a>';
+ echo '<div class="save-changes rounded">'.___('devcp_versions_edit_unsaved_compat').'</div>';
+ echo '<div class="add-button-container" style="width: 60%; margin: 10px auto 0;"><a href="#" onclick="versions_edit.showAppPicker(); return false;" class="add-button rounded">'.___('devcp_versions_edit_a_new_app').'</a>';
echo '<span id="new-app-picker"><select onchange="versions_edit.addApplication(this);">';
- echo '<option value="">Please Select an Application</option>';
+ echo '<option value="">'.___('devcp_versions_edit_select_app').'</option>';
foreach ($applications as $application_id => $application_name) {
echo '<option value="'.$application_id.'">'.$application_name.'</option>';
}
@@ -178,26 +178,26 @@
'translations' => $translations['releasenotes'],
'height' => '130',
'width' => 'inherit',
- 'displayName' => 'Release Notes',
- 'description' => 'Information about changes in this release, new features, known bugs, and other useful information specific to this release/version. This information will also be available to users updating the add-on in the Firefox 3 Add-ons Manager interface.'
+ 'displayName' => ___('devcp_versions_edit_transbox_releasenotes_name'),
+ 'description' => ___('devcp_versions_edit_transbox_releasenotes_description'),
));
echo '<div class="graybox rounded spaced field">';
- echo '<h4>Approval Information</h4>';
+ echo '<h4>'.___('devcp_versions_edit_header_approval').'</h4>';
if (!empty($version['File'])) {
echo '<ul>';
foreach ($version['File'] as $file) {
- echo '<li>'.sprintf('File %1$s (%2$s) created on %3$s and changed to %4$s on %5$s', $file['id'], $platforms[$file['platform_id']], strftime(_('date'), strtotime($file['created'])), $statuses[$file['status']], strftime(_('date'), strtotime($file['datestatuschanged']))).'</li>';
+ echo '<li>'.sprintf(___('devcp_versions_edit_li_file'), $file['id'], $platforms[$file['platform_id']], strftime(_('date'), strtotime($file['created'])), $statuses[$file['status']], strftime(_('date'), strtotime($file['datestatuschanged']))).'</li>';
}
echo '</ul>';
}
- echo '<h5>Approval Notes</h5>';
- echo '<p class="smallmargin">Optional information for the Editor that reviews this version.</p>';
+ echo '<h5>'.___('devcp_versions_edit_header_notes').'</h5>';
+ echo '<p class="smallmargin">'.___('devcp_versions_edit_optional').'</p>';
echo '<textarea name="data[Version][approvalnotes]" cols="" rows="" style="width: 100%; height: 70px;" class="rounded">'.$version['Version']['approvalnotes'].'</textarea>';
echo '</div>';
?>
- <div class="action-button-container centered"><a href="#" onclick="versions_edit.save(); return false;" class="action-button rounded">Update Version</a></div>
+ <div class="action-button-container centered"><a href="#" onclick="versions_edit.save(); return false;" class="action-button rounded"><?=___('devcp_versions_edit_update')?></a></div>
</form>
</div>
</div>
diff --git a/site/app/views/editors/email/inforequest_plain.thtml b/site/app/views/editors/email/inforequest_plain.thtml
new file mode 100644
index 0000000..6d99f11
--- /dev/null
+++ b/site/app/views/editors/email/inforequest_plain.thtml
@@ -0,0 +1,13 @@
+A Mozilla Add-ons Editor requested further information from you regarding version <?=$info['version']?> of your add-on <?=$info['name']?>.
+
+<?=$info['reviewer']?> wrote:
+
+"<?=$info['comments']?>"
+
+Please go to <?=FULL_BASE_URL.$html->url("/developers/discuss/{$info['infoid']}", true, true, false)?> to reply.
+
+
+If you have further questions, please e-mail amo-editors@mozilla.org or join #addons on irc.mozilla.org.
+
+Mozilla Add-ons
+<?=SITE_URL?>
diff --git a/site/app/views/editors/email/inforequest_reply_plain.thtml b/site/app/views/editors/email/inforequest_reply_plain.thtml
new file mode 100644
index 0000000..4a3d859
--- /dev/null
+++ b/site/app/views/editors/email/inforequest_reply_plain.thtml
@@ -0,0 +1,11 @@
+<?=$info['sender']?> has commented on version <?=$info['version']?> of the add-on <?=$info['name']?>:
+
+"<?=$info['comments']?>"
+
+Please go to <?=FULL_BASE_URL.$html->url("/developers/discuss/{$info['infoid']}", true, true, false)?> if you would like to reply.
+
+
+If you have further questions, please e-mail amo-editors@mozilla.org or join #addons on irc.mozilla.org.
+
+Mozilla Add-ons
+<?=SITE_URL?>
diff --git a/site/app/views/editors/email/nominated/public_plain.thtml b/site/app/views/editors/email/nominated/public_plain.thtml
index 86072da..4f161e5 100644
--- a/site/app/views/editors/email/nominated/public_plain.thtml
+++ b/site/app/views/editors/email/nominated/public_plain.thtml
@@ -8,7 +8,7 @@ You can view your public add-on now at: <?=SITE_URL?>/addon/<?=$info['id']?>
Review Information:
Reviewer: <?=$info['reviewer']?>
-Comments: <?=nl2br($info['comments'])?>
+Comments: <?=$info['comments']?>
If you have questions about this review, please e-mail amo-editors@mozilla.org or join #addons on irc.mozilla.org.
diff --git a/site/app/views/editors/email/nominated/sandbox_plain.thtml b/site/app/views/editors/email/nominated/sandbox_plain.thtml
index fe86809..71caaa9 100644
--- a/site/app/views/editors/email/nominated/sandbox_plain.thtml
+++ b/site/app/views/editors/email/nominated/sandbox_plain.thtml
@@ -3,7 +3,7 @@ Your nominated add-on, <?=$info['name']?>, has been reviewed by a <?=SITE_NAME?>
Review Information:
Reviewer: <?=$info['reviewer']?>
-Comments: <?=nl2br($info['comments'])?>
+Comments: <?=$info['comments']?>
If you have questions about this review, please e-mail amo-editors@mozilla.org or join #addons on irc.mozilla.org.
diff --git a/site/app/views/editors/email/notify_update_plain.thtml b/site/app/views/editors/email/notify_update_plain.thtml
new file mode 100644
index 0000000..5694fd3
--- /dev/null
+++ b/site/app/views/editors/email/notify_update_plain.thtml
@@ -0,0 +1,19 @@
+Dear editor,
+
+An add-on you previously reviewed was just updated.
+
+
+Add-on Information:
+
+Name: <?=$info['name']?>
+URL: <?=FULL_BASE_URL.$html->url("/addon/{$info['id']}")?>
+
+Version Number: <?=$info['version']?>
+Review Link: <?=FULL_BASE_URL.$html->url("/editors/review/{$info['versionid']}")?>
+
+
+Thanks!
+Mozilla Add-ons
+<?=SITE_URL?>
+
+This is a one-time notification sent to you because you requested a follow up email regarding queue activity for <?=$info['name']?>. There is no need to unsubscribe if you don't wish to receive further mail.
diff --git a/site/app/views/editors/email/pending/public_plain.thtml b/site/app/views/editors/email/pending/public_plain.thtml
index 19b5157..8e099a7 100644
--- a/site/app/views/editors/email/pending/public_plain.thtml
+++ b/site/app/views/editors/email/pending/public_plain.thtml
@@ -11,7 +11,7 @@ Reviewer: <?=$info['reviewer']?>
Tested on <?=$info['os']?> with <?=$info['apps']?>
-Comments: <?=nl2br($info['comments'])?>
+Comments: <?=$info['comments']?>
If you have questions about this review, please e-mail amo-editors@mozilla.org or join #addons on irc.mozilla.org.
diff --git a/site/app/views/editors/email/pending/sandbox_plain.thtml b/site/app/views/editors/email/pending/sandbox_plain.thtml
index 8a08d33..8bcc353 100644
--- a/site/app/views/editors/email/pending/sandbox_plain.thtml
+++ b/site/app/views/editors/email/pending/sandbox_plain.thtml
@@ -6,7 +6,7 @@ Reviewer: <?=$info['reviewer']?>
Tested on <?=$info['os']?> with <?=$info['apps']?>
-Comments: <?=nl2br($info['comments'])?>
+Comments: <?=$info['comments']?>
If you have questions about this review, please e-mail amo-editors@mozilla.org or join #addons on irc.mozilla.org.
diff --git a/site/app/views/editors/email/superreview_plain.thtml b/site/app/views/editors/email/superreview_plain.thtml
index 6a5ac65..8eb4a8b 100644
--- a/site/app/views/editors/email/superreview_plain.thtml
+++ b/site/app/views/editors/email/superreview_plain.thtml
@@ -10,7 +10,7 @@ Please open your plethora of knowledge and wield your mighty administrative swor
Review Information:
Reviewer: <?=$info['reviewer']?>
-Comments: <?=nl2br($info['comments'])?>
+Comments: <?=$info['comments']?>
Love,
diff --git a/site/app/views/editors/review.thtml b/site/app/views/editors/review.thtml
index fd26be7..f0229d4 100644
--- a/site/app/views/editors/review.thtml
+++ b/site/app/views/editors/review.thtml
@@ -120,10 +120,10 @@
echo '<li>';
echo $html->checkbox('Approval/File][', null, array('value' => $file['id'], 'class' => 'fileCheckbox', 'checked' => $checked, 'disabled' => $file['disabled'], 'onClick' => 'selectedFile();'));
- echo '&nbsp;<b>'.$html->link($platforms[$file['platform_id']], '/downloads/file/'.$file['id'].'/'.$file['filename'], array('onClick' => $this->controller->Amo->installTrigger($addon['Addon']['addontype_id'], $html->url('/downloads/file/'.$file['id'].'/'.$file['filename']), $addon['Translation']['name']['string'].' '.$version['Version']['version'], '', $file['hash']).' return false;')).'</b>';
+ echo '&nbsp;<b>'.$html->link($platforms[$file['platform_id']], '/downloads/file/'.$file['id'].'/'.$file['filename'], array('onClick' => $this->controller->Amo->installTrigger($addon['Addon']['addontype_id'], FULL_BASE_URL.$html->url('/downloads/file/'.$file['id'].'/'.$file['filename']), $addon['Translation']['name']['string'].' '.$version['Version']['version'], '', $file['hash']).' return false;')).'</b>';
echo ' - '.$approval[$file['status']].' ('.$file['created'].')';
echo ' - '.$html->link(_('editors_review_file_viewcontents_link'), '/files/browse/'.$file['id'].'/1');
- if ($has_public) {
+ if ($has_public && $addontype != ADDON_SEARCH) {
//if (count($addon['Version']) > 1) {
echo ' - '.$html->link(_('editors_review_file_diff_link'), '/files/diff/'.$file['id'].'/');
}
@@ -150,6 +150,7 @@
<div id="actionbox">
<span id="public" class="action_color" onClick="selectAction('public');"><?=$html->image('developers/public-bw.png', array('id' => 'publicIcon')).' '._('editors_review_action_public')?></span>
<span id="sandbox" class="action_color" onClick="selectAction('sandbox');"><?=$html->image('developers/sandbox-bw.png', array('id' => 'sandboxIcon')).' '._('editors_review_action_sandbox')?></span>
+ <span id="info" class="action_color" onClick="selectAction('info');"><?=$html->image('developers/info-bw.png', array('id' => 'infoIcon')).' '.___('editors_review_action_info', 'Request More Information')?></span>
<span id="superreview" class="action_color" onClick="selectAction('superreview');"><?=$html->image('developers/superreview-bw.png', array('id' => 'superreviewIcon')).' '._('editors_review_action_request_superreview')?></span>
</div>
<div id="actiondetails">
@@ -170,10 +171,15 @@
echo _('editors_review_details_nominated_sandbox');
echo '</div>';
}
- echo '<div id="details-superreview" style="display: none;">';
- echo _('editors_review_details_superreview');
- echo '</div>';
?>
+ <div id="details-info" style="display: none;">
+ <?=___('editors_review_details_info_request', 'Use this form to request more information '
+ .'from the author. They will receive an email and be able to answer here. You will be '
+ .'notified by email when they reply.');?>
+ </div>
+ <div id="details-superreview" style="display: none;">
+ <?=_('editors_review_details_superreview');?>
+ </div>
</div>
<div id="subform" style="display: none;">
<div id="commentsbox">
@@ -183,7 +189,7 @@
<?php
if (!empty($cannedresponses)) {
echo '<div id="canned">';
- echo _('editors_review_label_cannedresponse');
+ echo _('editors_review_label_cannedresponse').' ';
echo $html->selectTag('Approval/CannedResponse', $cannedresponses, null, array("onChange" => "document.getElementById('comments').value = this.value;", 'class' => 'input'));
echo '</div>';
}
@@ -202,6 +208,13 @@
<?
}
?>
+ <div id="subscribe">
+ <?php
+ $_subscribetext = ___('editors_review_update_notify_once', 'Notify me the next time this add-on is updated. (Subsequent updates will not generate an email)');
+ echo $html->checkbox('Approval/subscribe', $_subscribetext);
+ ?>
+ <label for="ApprovalSubscribe"><?=$_subscribetext?></label>
+ </div>
<div id="finish">
<?=$html->submit(_('editors_review_submit_process_action'), array('id' => 'process', 'onClick' => 'return validateReview(\''.$reviewType.'\');'))?>
</div>
@@ -278,37 +291,8 @@ if (!empty($addon['Translation']['developercomments']['string'])) {
</tr>
<?php
if (!empty($history)) {
- foreach ($history as $hist) {
- echo '<tr>';
- echo '<td>'.$hist['Version']['version'].' ('.$platforms[$hist['File']['platform_id']].')</td>';
- echo '<td>'.$hist['Approval']['created'].'</td>';
- echo '<td>'.$html->linkEmail($hist['User']['firstname'].' '.$hist['User']['lastname'], $hist['User']['email']).'</td>';
- echo '<td>';
- if ($hist['Approval']['reviewtype'] == 'nominated') {
- if ($hist['Approval']['action'] == STATUS_PUBLIC) {
- echo _('editors_review_history_nominated_approved');
- }
- elseif ($hist['Approval']['action'] == STATUS_SANDBOX) {
- echo _('editors_review_history_nominated_denied');
- }
- elseif ($hist['Approval']['action'] == STATUS_NOMINATED) {
- echo _('editors_review_history_nominated_adminreview');
- }
- }
- elseif ($hist['Approval']['reviewtype'] == 'pending') {
- if ($hist['Approval']['action'] == STATUS_PUBLIC) {
- echo _('editors_review_history_pending_approved');
- }
- elseif ($hist['Approval']['action'] == STATUS_SANDBOX) {
- echo _('editors_review_history_pending_denied');
- }
- elseif ($hist['Approval']['action'] == STATUS_PENDING) {
- echo _('editors_review_history_pending_adminreview');
- }
- }
- echo '</td>';
- echo '<td>'.nl2br($hist['Approval']['comments']).'</td>';
- echo '</tr>';
+ foreach ($history as &$hist) {
+ echo $this->renderElement('developers/editors_review_history_item', array('hist'=>$hist));
}
}
else {
diff --git a/site/app/views/elements/addon_discussionheader.thtml b/site/app/views/elements/addon_discussionheader.thtml
index ff8225b..1dd3fae 100644
--- a/site/app/views/elements/addon_discussionheader.thtml
+++ b/site/app/views/elements/addon_discussionheader.thtml
@@ -51,7 +51,6 @@ $addonID = $addon['Addon']['id'];
$addonName = $addon['Translation']['name']['string'];
$hasVersion = (isset($addon['Version']) && !empty($addon['Version']));
$addonVersion = ($hasVersion ? $addon['Version'][0]['version'] : '');
-$addonCreated = $addon['Addon']['created'];
$addonCreators = $addon['User'];
$addonSummary = $addon['Translation']['summary']['string'];
diff --git a/site/app/views/elements/addon_listitem.thtml b/site/app/views/elements/addon_listitem.thtml
index ccbb11c..9bcfd94 100644
--- a/site/app/views/elements/addon_listitem.thtml
+++ b/site/app/views/elements/addon_listitem.thtml
@@ -59,7 +59,6 @@ if ($hasFiles) {
return;
}
-$addonCreated = $addon['Addon']['created'];
$addonCreators = $addon['User'];
$addonSummary = $addon['Translation']['summary']['string'];
@@ -90,12 +89,6 @@ if (isset($addonIconPath) && !empty($addonIconPath))
$icon = '<img src="'.$addonIconPath.'" class="icon" alt=""/>';
else
$icon = '';
-// prepare version string
-if ($hasVersion)
- $version = sprintf(_('addon_display_header_version'), $addonVersion)
- .' &mdash; '. strftime(_('date'), strtotime($addonCreated));
-else
- $version = '';
// prepare categories
if (!empty($addon['Tag'])) {
diff --git a/site/app/views/elements/collections_interactive_addon.thtml b/site/app/views/elements/collections_interactive_addon.thtml
index 735e40f..eb8edbb 100644
--- a/site/app/views/elements/collections_interactive_addon.thtml
+++ b/site/app/views/elements/collections_interactive_addon.thtml
@@ -82,7 +82,7 @@ if (!isset($addonSummary) || empty($addonSummary))
<div class="item-desc">
<h4><?=$html->link("$icon <span>$addonName</span>", "/addon/{$addonID}");?></h4>
<?php if(isset($showDate) && $showDate == true){ ?>
- <p class="date-added"><?php echo sprintf(_('added'), strftime(_('date'), strtotime($addonDateAdded))); ?></p>
+ <p class="date-added"><?php echo sprintf(_('collections_interactive_addon_added'), strftime(_('date'), strtotime($addonDateAdded))); ?></p>
<?php } ?>
<p class="desc"><?=$addonSummary?> <?=$html->link('Learn more...', "/addon/{$addonID}")?></p>
diff --git a/site/app/views/elements/developers/editbox.thtml b/site/app/views/elements/developers/editbox.thtml
index 889e1e2..530bab1 100644
--- a/site/app/views/elements/developers/editbox.thtml
+++ b/site/app/views/elements/developers/editbox.thtml
@@ -39,24 +39,24 @@
<div class="pitch">
<h4><?=$html->link($addon_name, '/developers/dashboard#addon-'.$addon_id)?></h4>
<ul class="actionbar">
- <li class="displaypage"><?=$html->link('View Listing', "/addon/{$addon_id}/")?></li>
- <li class="edit<?=($action == 'edit' ? ' selected' : '')?>"><?=$html->link('Edit Add-on', "/developers/addon/edit/{$addon_id}/")?></li>
+ <li class="displaypage"><?=$html->link(___('devcp_editbox_view_listing'), "/addon/{$addon_id}/")?></li>
+ <li class="edit<?=($action == 'edit' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_edit_addon'), "/developers/addon/edit/{$addon_id}/")?></li>
<?php if ($action == 'edit'): ?>
<li class="container"><ul>
- <li class="edit-authors<?=($subaction == 'authors' ? ' selected' : '')?>"><?=$html->link('Authors', "/developers/addon/edit/{$addon_id}/authors")?></li>
- <li class="edit-categories<?=($subaction == 'categories' ? ' selected' : '')?>"><?=$html->link('Categories', "/developers/addon/edit/{$addon_id}/categories")?></li>
- <li class="edit-descriptions<?=($subaction == 'descriptions' ? ' selected' : '')?>"><?=$html->link('Descriptions', "/developers/addon/edit/{$addon_id}/descriptions")?></li>
- <li class="edit-properties<?=($subaction == 'properties' ? ' selected' : '')?>"><?=$html->link('Properties', "/developers/addon/edit/{$addon_id}/properties")?></li>
+ <li class="edit-authors<?=($subaction == 'authors' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_authors'), "/developers/addon/edit/{$addon_id}/authors")?></li>
+ <li class="edit-categories<?=($subaction == 'categories' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_categories'), "/developers/addon/edit/{$addon_id}/categories")?></li>
+ <li class="edit-descriptions<?=($subaction == 'descriptions' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_descriptions'), "/developers/addon/edit/{$addon_id}/descriptions")?></li>
+ <li class="edit-properties<?=($subaction == 'properties' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_properties'), "/developers/addon/edit/{$addon_id}/properties")?></li>
</ul></li>
<?php endif; ?>
- <li class="status<?=($action == 'status' ? ' selected' : '')?>"><?=$html->link('Change Status', "/developers/addon/status/{$addon_id}/")?></li>
- <li class="statistics"><?=$html->link('Statistics Dashboard', "/statistics/addon/{$addon_id}/")?></li>
- <li class="versions<?=($action == 'versions' ? ' selected' : '')?>"><?=$html->link('Versions and Files', "/developers/versions/{$addon_id}/")?></li>
+ <li class="status<?=($action == 'status' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_change_status'), "/developers/addon/status/{$addon_id}/")?></li>
+ <li class="statistics"><?=$html->link(___('devcp_editbox_statistics_dashboard'), "/statistics/addon/{$addon_id}/")?></li>
+ <li class="versions<?=($action == 'versions' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_versions'), "/developers/versions/{$addon_id}/")?></li>
<?php if ($action == 'versions'): ?>
<li class="container"><ul>
- <li class="versions-add<?=($subaction == 'add' ? ' selected' : '')?>"><?=$html->link('New Version', "/developers/versions/add/{$addon_id}")?></li>
+ <li class="versions-add<?=($subaction == 'add' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_new_version'), "/developers/versions/add/{$addon_id}")?></li>
</ul></li>
<?php endif; ?>
- <li class="previews<?=($action == 'previews' ? ' selected' : '')?>"><?=$html->link('Preview Screenshots', "/developers/previews/{$addon_id}/")?></li>
+ <li class="previews<?=($action == 'previews' ? ' selected' : '')?>"><?=$html->link(___('devcp_editbox_screenshots'), "/developers/previews/{$addon_id}/")?></li>
</ul>
</div> \ No newline at end of file
diff --git a/site/app/views/elements/developers/editors_review_history_item.thtml b/site/app/views/elements/developers/editors_review_history_item.thtml
new file mode 100644
index 0000000..349ab62
--- /dev/null
+++ b/site/app/views/elements/developers/editors_review_history_item.thtml
@@ -0,0 +1,101 @@
+<?php
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is addons.mozilla.org site.
+ *
+ * The Initial Developer of the Original Code is
+ * Frederic Wenzel <fwenzel@mozilla.com>.
+ * Portions created by the Initial Developer are Copyright (C) 2009
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/**
+ * This element uses the following local variables:
+ * - $hist -- review history item
+ */
+if (!empty($hist['Approval']['reply_to']))
+ $trclass="class=\"hidden reply_to_{$hist['Approval']['reply_to']}\"";
+else
+ $trclass="";
+?>
+
+<tr <?=$trclass?>>
+ <td><?php if (!empty($hist['Version'])) echo "{$hist['Version']['version']} ({$platforms[$hist['File']['platform_id']]})"?></td>
+ <td><?=$hist['Approval']['created']?></td>
+ <td><?=$html->linkEmail($hist['User']['firstname'].' '.$hist['User']['lastname'], $hist['User']['email'])?></td>
+ <td>
+ <?php
+ if ($hist['Approval']['reviewtype'] == 'nominated') {
+ if ($hist['Approval']['action'] == STATUS_PUBLIC) {
+ echo _('editors_review_history_nominated_approved');
+ }
+ elseif ($hist['Approval']['action'] == STATUS_SANDBOX) {
+ echo _('editors_review_history_nominated_denied');
+ }
+ elseif ($hist['Approval']['action'] == STATUS_NOMINATED) {
+ echo _('editors_review_history_nominated_adminreview');
+ }
+ }
+ elseif ($hist['Approval']['reviewtype'] == 'pending') {
+ if ($hist['Approval']['action'] == STATUS_PUBLIC) {
+ echo _('editors_review_history_pending_approved');
+ }
+ elseif ($hist['Approval']['action'] == STATUS_SANDBOX) {
+ echo _('editors_review_history_pending_denied');
+ }
+ elseif ($hist['Approval']['action'] == STATUS_PENDING) {
+ echo _('editors_review_history_pending_adminreview');
+ }
+ }
+ elseif ($hist['Approval']['reviewtype'] == 'info') {
+ if (empty($hist['Approval']['reply_to']))
+ echo ___('editors_review_history_info_request', 'Information Request');
+ else
+ echo ___('editors_review_history_info_reply', 'Reply');
+ }
+ ?>
+ </td>
+ <td><?=nl2br($hist['Approval']['comments'])?></td>
+</tr>
+<?php if ($hist['Approval']['reviewtype'] == 'info' && empty($hist['Approval']['reply_to'])
+ && !empty($hist['replies'])):?>
+<tr>
+ <td colspan="5">
+ <?=$html->link(sprintf(n___('editors_review_history_show_hide_replies',
+ 'editors_review_history_show_hide_replies', count($hist['replies']),
+ 'Show/Hide Replies (%1$s)'), count($hist['replies'])), "#",
+ array('onclick'=>"$('tr.reply_to_{$hist['Approval']['id']}').toggle();return false;"))?></td>
+</tr>
+<?php
+// show all replies
+foreach ($hist['replies'] as &$reply) {
+ echo $this->renderElement('developers/editors_review_history_item', array('hist'=>$reply));
+}
+?>
+<?php endif; ?>
diff --git a/site/app/views/elements/developers/rolecheck.thtml b/site/app/views/elements/developers/rolecheck.thtml
index 862a463..93d46f7 100644
--- a/site/app/views/elements/developers/rolecheck.thtml
+++ b/site/app/views/elements/developers/rolecheck.thtml
@@ -39,7 +39,7 @@
if (empty($required_role) || (!empty($required_role) && $author_role < $required_role)):
?>
<div class="notice no-privs-box rounded">
- <span>You do not have sufficient privileges to make changes on this page.</span><br />Contact the Add-on Owner if you need to make changes.
+ <?=___('devcp_rolecheck_no_privs')?>
</div>
<?php
endif;
diff --git a/site/app/views/elements/developers/sidebar.thtml b/site/app/views/elements/developers/sidebar.thtml
index c5c33ab..2f4bc15 100644
--- a/site/app/views/elements/developers/sidebar.thtml
+++ b/site/app/views/elements/developers/sidebar.thtml
@@ -49,7 +49,7 @@
<ul id="cat-list">
<?php if ($this->controller->Session->check('User')): ?>
- <li><?=$html->link(_('Dashboard'), '/developers/dashboard')?></li>
+ <li><?=$html->link(___('devcp_sidebar_a_dashboard'), '/developers/dashboard')?></li>
<?php
if (!empty($addons)) {
foreach ($addons as $addon_id => $addon_name) {
diff --git a/site/app/views/elements/developers/translationbox.thtml b/site/app/views/elements/developers/translationbox.thtml
index 6fdc479..ff8e4c0 100644
--- a/site/app/views/elements/developers/translationbox.thtml
+++ b/site/app/views/elements/developers/translationbox.thtml
@@ -61,7 +61,7 @@
if (!isset($graybox) || $graybox === true) {
echo '<div class="translation-box graybox rounded spaced" style="width: '.(!empty($width) ? $width : '600px').';">';
}
- echo (!empty($displayName) ? '<h4><a href="#" title="Help (does not leave page)" onclick="translation_box.showHelp(this); return false;">'.$html->image('developers/help.png', array('alt' => 'Help')).'</a>'.$displayName.' </h4>' : '');
+ echo (!empty($displayName) ? '<h4><a href="#" title="'.___('devcp_transbox_a_title_help').'" onclick="translation_box.showHelp(this); return false;">'.$html->image('developers/help.png', array('alt' => ___('devcp_transbox_alt_help'))).'</a>'.$displayName.' </h4>' : '');
echo (!empty($description) ? "<p>{$description}</p>" : '');
?>
<div class="translation-row">
@@ -78,8 +78,8 @@ if (!isset($graybox) || $graybox === true) {
}
?>
</div>
- <div class="translation-button"><?=$html->image('developers/tab_add.png', array('onclick' => 'translation_box.addTab(this);', 'alt' => 'Add Translation', 'title' => 'Add Translation'))?></div>
- <div class="translation-button remove" style="display: none;"><?=$html->image('developers/tab_delete.png', array('onclick' => 'translation_box.confirmRemove(this);', 'alt' => 'Remove Translation', 'title' => 'Remove Translation'))?></div>
+ <div class="translation-button"><?=$html->image('developers/tab_add.png', array('onclick' => 'translation_box.addTab(this);', 'alt' => ___('devcp_transbox_img_add_trans'), 'title' => ___('devcp_transbox_img_add_trans')))?></div>
+ <div class="translation-button remove" style="display: none;"><?=$html->image('developers/tab_delete.png', array('onclick' => 'translation_box.confirmRemove(this);', 'alt' => ___('devcp_transbox_img_remove_trans'), 'title' => ___('devcp_transbox_img_remove_trans')))?></div>
</div>
<div class="translation-area" table="<?=$this->translationBox['table']?>" field="<?=$field?>" defaultLocale="<?=$this->translationBox['defaultLocale']?>"<?=(!empty($id) ? ' itemID="'.$id.'"' : '')?>>
<?php
@@ -94,7 +94,7 @@ if (!isset($graybox) || $graybox === true) {
}
if (!empty($maxLength)) {
- echo '<div class="translation-maxlength '.$locale.($this->translationBox['defaultLocale'] == $locale ? ' selected' : '').'">'.$html->image('developers/exclamation.png', array('alt' => '')).' Characters used:&nbsp;&nbsp;<span>'.strlen($translation).'</span> / '.$maxLength.'</div>';
+ echo '<div class="translation-maxlength '.$locale.($this->translationBox['defaultLocale'] == $locale ? ' selected' : '').'">'.$html->image('developers/exclamation.png', array('alt' => '')).sprintf(___('devcp_transbox_chars_used'), '<span>'.strlen($translation).'</span>', $maxLength).'</div>';
}
}
?>
@@ -110,7 +110,7 @@ if (!isset($graybox) || $graybox === true) {
<div class="translation-newlocale-container">
<div class="translation-newlocale new selected">
<div class="padded">
- Select the locale of the translation to add:
+ <?=___('devcp_transbox_select_locale')?>
<select>
<?php
foreach ($this->translationBox['languages'] as $code => $name) {
@@ -119,9 +119,9 @@ if (!isset($graybox) || $graybox === true) {
?>
</select>
<div class="buttons">
- <input type="button" value="Add Locale" onclick="translation_box.addLocale(this, false);" />
- <input type="button" value="Add Locale to All" onclick="translation_box.addLocale(this, true);" />
- <input type="button" value="Cancel" onclick="translation_box.cancelAdd(this);" />
+ <input type="button" value="<?=___('devcp_transbox_input_add_locale')?>" onclick="translation_box.addLocale(this, false);" />
+ <input type="button" value="<?=___('devcp_transbox_input_add_all')?>" onclick="translation_box.addLocale(this, true);" />
+ <input type="button" value="<?=___('devcp_transbox_input_cancel')?>" onclick="translation_box.cancelAdd(this);" />
</div>
</div>
</div>
@@ -129,10 +129,10 @@ if (!isset($graybox) || $graybox === true) {
<div class="translation-deletelocale-container">
<div class="translation-deletelocale">
<div class="padded">
- Are you sure you wish to delete this translation?
+ <?=___('devcp_transbox_delete_sure')?>
<div class="buttons">
- <input type="button" value="Delete It" onclick="translation_box.removeLocale(this);" />
- <input type="button" value="Cancel" onclick="translation_box.cancelRemove(this);" />
+ <input type="button" value="<?=___('devcp_transbox_input_delete')?>" onclick="translation_box.removeLocale(this);" />
+ <input type="button" value="<?=___('devcp_transbox_input_cancel')?>" onclick="translation_box.cancelRemove(this);" />
</div>
</div>
</div>
@@ -140,12 +140,11 @@ if (!isset($graybox) || $graybox === true) {
<div class="translation-help-container">
<div class="translation-help bluebox-tr"><div class="bluebox-tl">
<div class="padded">
- <h4>What are these "<?=$this->translationBox['defaultLocale']?>" tabs?</h4>
- <p>This is a <i>Translation Box</i>. It allows you to localize a specific field into any other languages for which you might have a translation. You can add, edit, and remove translations using the locale tabs.</p>
-
- <h4>What if I don't have any translations?</h4>
- <p>If a user browses the site and a translation isn't available in their own language, it will fall back to your add-on's Default Locale, specified in the Edit Add-on Properties area. If you don't have any translations, just enter what you can into your Default Locale, which should be a language you speak.</p>
- <div style="text-align: right;"><a href="#" onclick="translation_box.hideHelp(this); return false;">Hide Help</a></div>
+ <h4><?=sprintf(___('devcp_transbox_help_header_tabs'), $this->translationBox['defaultLocale'])?></h4>
+ <p><?=___('devcp_transbox_help_transbox')?></p>
+ <h4><?=___('devcp_transbox_help_header_what')?></h4>
+ <p><?=___('devcp_transbox_help_if')?>
+ <div style="text-align: right;"><a href="#" onclick="translation_box.hideHelp(this); return false;"><?=___('devcp_transbox_help_hide')?></a></div>
</div>
<div class="bluebox-br"><div class="bluebox-bl"></div></div>
</div></div>
diff --git a/site/app/views/elements/footer.thtml b/site/app/views/elements/footer.thtml
index 917fcc9..bd6d396 100644
--- a/site/app/views/elements/footer.thtml
+++ b/site/app/views/elements/footer.thtml
@@ -69,6 +69,9 @@
<li><?=$html->link(_('footer_privacy_policy'), '/pages/privacy');?></li>
<li><a href="http://www.mozilla.com/<?=LANG?>/about/legal.html"><?=_('footer_legal_notices')?></a></li>
<?php if (!isset($suppressCredits) || !$suppressCredits): ?><li><?=$html->link(_('footer_credits'), '/pages/credits')?></li><?php endif; ?>
+ <li><?=$html->link(___('footer_a_about'), '/pages/about')?></li>
+ <li><?=$html->link('<abbr title="'.___('footer_abbr_faq').'">'.___('footer_a_faq').'</abbr>', '/pages/faq')?></li>
+ <li><a href="http://blog.mozilla.com/addons"><?=___('footer_a_blog')?></a></li>
</ul>
<p id="footer-disclaimer"><?=_('footer_disclaimer')?></p>
</div>
diff --git a/site/app/views/elements/header.thtml b/site/app/views/elements/header.thtml
index c870e3e..a22e1ca 100644
--- a/site/app/views/elements/header.thtml
+++ b/site/app/views/elements/header.thtml
@@ -143,10 +143,19 @@
if ($this->controller->Session->check('User')) {
$user = $this->controller->Session->read('User');
echo '<li>' . $html->link(_('header_navlink_myaccount'), '/users/edit', array('title' => $user['email'])) . '</li>' . "\n";
+ echo '<li>' . $html->link(_('sidebar_navlink_developer_tools'), '/developers') . '</li>' . "\n";
+ if ($this->controller->SimpleAcl->actionAllowed('Editors', '%', $this->controller->Session->read('User'))) {
+ echo '<li>' . $html->link(_('sidebar_navlink_editor_tools'), '/editors') .'</li>' . "\n";
+ }
+ if ($this->controller->SimpleAcl->actionAllowed('Localizers', '%', $this->controller->Session->read('User'))) {
+ echo '<li>' . $html->link('Localizer Tools', '/localizers') . '</li>' . "\n";
+ }
+ if ($this->controller->SimpleAcl->actionAllowed('Admin', '%', $this->controller->Session->read('User'))) {
+ echo '<li>' . $html->link(_('sidebar_navlink_admin_tools'), '/admin') . '</li>' . "\n";
+ }
echo '<li>' . $html->link(_('sidebar_navlink_developer_tools'), '/developers/dashboard') . '</li>' . "\n";
echo '<li>' . $html->link(_('header_navlink_logout'), $html->logout_url()) . '</li>' . "\n";
- }
- else {
+ } else {
echo '<li>' . $html->link(_('header_navlink_register'), '/users/register') . '</li> ' . "\n";
echo '<li>' . $html->link(_('header_navlink_login'), $html->login_url()) . '</li>' . "\n";
}
diff --git a/site/app/views/elements/install.thtml b/site/app/views/elements/install.thtml
index 206cef5..707f1e2 100644
--- a/site/app/views/elements/install.thtml
+++ b/site/app/views/elements/install.thtml
@@ -225,7 +225,7 @@ if (count($addonFiles) < 1) {
?>
</p>
<?php
- $exp_addon_url = "/pages/experimentalAddons";
+ $exp_addon_url = "/pages/faq#experimental-addons";
echo sprintf(___('install_a_login_to_install'), $html->url($login_url), $html->url($exp_addon_url));
?>
</div>
diff --git a/site/app/views/files/browse.thtml b/site/app/views/files/browse.thtml
index 7437d92..766eb00 100644
--- a/site/app/views/files/browse.thtml
+++ b/site/app/views/files/browse.thtml
@@ -43,14 +43,14 @@
<?=$javascript->link('listing')?>
<?=$javascript->link('scriptaculous/prototype')?>
<?=$javascript->link('scriptaculous/scriptaculous.js')?>
- <title><?=_('File Browser')?></title>
+ <title><?=sprintf(___('file_browser_title', '%s :: File Browser :: %s Add-ons'), $addonname, APP_PRETTYNAME)?></title>
</head>
<body>
<?
$files['dir'] = 1;
$files['filename'] = 'extension.xpi';
?>
-<iframe id="fileBrowser" src="<?=$html->url(isset($is_diff)?'/files/diff/'.$id.'?compare=install.rdf':'/files/browse/'.$id.'/?view=install.rdf')?>" border="0"></iframe>
+<iframe id="fileBrowser" src="<?=$html->url(isset($is_diff)?'/files/diff/'.$id.'?compare='.$startfile:'/files/browse/'.$id.'/?view='.$startfile)?>" border="0"></iframe>
<div id="fileContents">
<div id="fileHeader">
<?=$html->image('template/moz-com-logo.png')?>
@@ -61,11 +61,11 @@ $files['filename'] = 'extension.xpi';
</ul>
</div>
<div id="fileFooter">
- <?=($review == 1) ? $html->link(_('Back to Review'), '/editors/review/'.$version) :
- $html->link(_('Back to Add-on'), '/addon/'.$addon)?>
+ <?=($review == 1) ? $html->link(___('file_browser_link_review', 'Back to Review'), '/editors/review/'.$version) :
+ $html->link(___('file_browser_link_addon', 'Back to Add-on'), '/addon/'.$addon)?>
&nbsp;&middot;&nbsp;
- <?=$html->link('Expand All', 'javascript: void(0);', array('onClick' => 'expandNodes();'))?>&nbsp;&middot;&nbsp;
- <?=$html->link('+/-', 'javascript: void(0);', array('onClick' => 'toggleFileListing();', 'id' => 'fileControl'))?>&nbsp;&nbsp;
+ <?=$html->link(___('file_browser_link_expand_all', 'Expand All'), 'javascript: void(0);', array('onClick' => 'expandNodes();'))?>&nbsp;&middot;&nbsp;
+ <?=$html->link(___('file_browser_toggle_expand_collapse', '+/-'), 'javascript: void(0);', array('onClick' => 'toggleFileListing();', 'id' => 'fileControl'))?>&nbsp;&nbsp;
</div>
</div>
<script language="JavaScript" type="text/javascript">
diff --git a/site/app/views/helpers/addons_html.php b/site/app/views/helpers/addons_html.php
index a74b69f..b2d90b6 100644
--- a/site/app/views/helpers/addons_html.php
+++ b/site/app/views/helpers/addons_html.php
@@ -484,10 +484,10 @@ class AddonsHtmlHelper extends HtmlHelper
}
function truncateChars($length, $string) {
- if (strlen($string) <= $length) {
+ if (mb_strlen($string) <= $length) {
return $string;
} else {
- $sub = substr($string, 0, $length - 3);
+ $sub = mb_substr($string, 0, $length - 3);
return $sub.'...';
}
}
diff --git a/site/app/views/layouts/mozilla.thtml b/site/app/views/layouts/mozilla.thtml
index 31a422b..706e7d1 100644
--- a/site/app/views/layouts/mozilla.thtml
+++ b/site/app/views/layouts/mozilla.thtml
@@ -236,11 +236,13 @@
advLink.click();
<?php } ?>
+ if (typeof __utmSetVar == 'function') {
<?php if ($this->controller->Session->check('User')): ?>
__utmSetVar("Loggedin");
<?php else: ?>
__utmSetVar("Loggedout");
<?php endif; ?>
+ }
<?php if(isset($content_wide) && $content_wide): ?>
if ( $(window).width() > 1000 ) {
diff --git a/site/app/views/pages/about.thtml b/site/app/views/pages/about.thtml
new file mode 100644
index 0000000..548086f
--- /dev/null
+++ b/site/app/views/pages/about.thtml
@@ -0,0 +1,14 @@
+<?php
+$this->layout = 'mozilla';
+?>
+
+<div id="content">
+ <?php
+ echo $this->renderElement('search');
+ echo $this->renderElement('sidebar', array('pitch' => true));
+ echo $this->renderElement('app_chooser');
+ ?>
+ <div id="content-main">
+ <?=$localization->includeLocalPage('about')?>
+ </div>
+</div>
diff --git a/site/app/views/pages/credits.thtml b/site/app/views/pages/credits.thtml
index 8c823ca..918904a 100644
--- a/site/app/views/pages/credits.thtml
+++ b/site/app/views/pages/credits.thtml
@@ -132,6 +132,7 @@ ksort($other_contributors);
?>
<ul>
<li><?=_('credits_software_famfamfam')?></li>
+ <li><?=___('credits_software_timeplot', 'Some pages use elements of <a href="http://www.simile-widgets.org/timeplot/">Timeplot</a>, licensed under a <a href="http://simile.mit.edu/license.html">BSD License</a>.')?></li>
</ul>
</div>
diff --git a/site/app/views/pages/experimental_addons.thtml b/site/app/views/pages/experimental_addons.thtml
deleted file mode 100644
index 5aedb7d..0000000
--- a/site/app/views/pages/experimental_addons.thtml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is addons.mozilla.org site.
- *
- * The Initial Developer of the Original Code is
- * The Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2007
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Frederic Wenzel <fwenzel@mozilla.com> (Original Author)
- * Justin Scott <fligtar@gmail.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-$this->layout = 'mozilla';
-?>
-
-<div id="content">
- <?=$this->renderElement('search')?>
- <?=$this->renderElement('sidebar', array('pitch' => true))?>
- <?=$this->renderElement('app_chooser')?>
-
- <div id="content-main">
-
-
-
-
-<?=$localization->includeLocalPage('experimental_addons', array())?>
- <script type="text/javascript">
- if(document.referrer) {
- document.write('<p><a href="javascript:history.go(-1)"><?=___('pages_experimental_addons_backbutton'); ?></a>.</p>');
- }
-
- </script>
- </div>
-</div>
diff --git a/site/app/views/pages/js_constants.js.thtml b/site/app/views/pages/js_constants.js.thtml
index 10a2474..bd61078 100644
--- a/site/app/views/pages/js_constants.js.thtml
+++ b/site/app/views/pages/js_constants.js.thtml
@@ -64,6 +64,23 @@ var app_compat_older_firefox_only = '<?=___('app_compat_older_firefox_only')?>';
var app_compat_unreleased_version = '<?=___('app_compat_unreleased_version')?>';
var app_compat_older_version_or_ignore_check = '<?=___('app_compat_older_version_or_ignore_check')?>';
+<?php /* developers.js */ ?>
+var devcp_js_upload_alert = '<?=___('devcp_js_upload_alert')?>';
+var addons_status_public = '<?=___('addons_status_public')?>';
+var addons_status_sandbox = '<?=___('addons_status_sandbox')?>';
+var addons_status_pending = '<?=___('addons_status_pending')?>';
+var devcp_js_img_move_down = '<?=___('devcp_js_img_move_down')?>';
+var devcp_js_img_move_up = '<?=___('devcp_js_img_move_up')?>';
+var devcp_js_option_owner = '<?=___('devcp_js_option_owner')?>';
+var devcp_js_option_developer = '<?=___('devcp_js_option_developer')?>';
+var devcp_js_option_viewer = '<?=___('devcp_js_option_viewer')?>';
+var devcp_js_input_list_author = '<?=___('devcp_js_input_list_author')?>';
+var devcp_js_sure_remove = '<?=___('devcp_js_sure_remove')?>';
+var devcp_js_remove_author = '<?=___('devcp_js_remove_author')?>';
+var devcp_js_a_cancel = '<?=___('devcp_js_a_cancel')?>';
+var devcp_js_add_email = '<?=___('devcp_js_add_email')?>';
+var devcp_js_img_remove_compat = '<?=___('devcp_js_img_remove_compat')?>';
+
<?php /* Fallback from 4/14/08 */?>
var app_compat_ignore_check = '<?=___('app_compat_ignore_check')?>';
diff --git a/site/app/views/pages/robots.txt.thtml b/site/app/views/pages/robots.txt.thtml
index 105244a..2f4ac9d 100644
--- a/site/app/views/pages/robots.txt.thtml
+++ b/site/app/views/pages/robots.txt.thtml
@@ -56,8 +56,11 @@ foreach ($supported_languages as $lang => $loc) {
/* block access to all user info pages, on all locales and apps */
echo "Disallow: ".$html->url("/{$lang}/{$app}/user/\n", true, false, false);
echo "Disallow: ".$html->url("/{$lang}/{$app}/users/info/\n", true, false, false);
+ echo "Disallow: ".$html->url("/{$lang}/{$app}/users/pwreset/\n", true, false, false);
/* do not index search */
echo "Disallow: ".$html->url("/{$lang}/{$app}/search/\n", true, false, false);
+ /* do not index share links */
+ echo "Disallow: ".$html->url("/{$lang}/{$app}/addon/share/\n", true, false, false);
}
}
?>
diff --git a/site/app/views/statistics/addon.thtml b/site/app/views/statistics/addon.thtml
index ea8ff9d..b22702d 100644
--- a/site/app/views/statistics/addon.thtml
+++ b/site/app/views/statistics/addon.thtml
@@ -75,6 +75,20 @@ echo '<div id="content">';
<div id="plot-options" style="display: none;">
<div id="plot-selector-area"></div>
<div id="plot-selection">
+ <div id="weeks-legend">
+ <div class="plot-legend">
+ <div class="colorbox" style="background-color: #CC6666;"></div>
+ <div id="week1-selection" class="plot-name"><select class="template">
+ <option>--</option>
+ </select></div>
+ </div>
+ <div class="plot-legend">
+ <div class="colorbox" style="background-color: #6666CC;"></div>
+ <div id="week2-selection" class="plot-name"><select class="template">
+ <option>--</option>
+ </select></div>
+ </div>
+ </div>
<div id="summary-legend">
<div class="plot-legend">
<div class="colorbox" style="background-color: #33AAFF;"></div>
diff --git a/site/app/views/tests/discover.thtml b/site/app/views/tests/discover.thtml
new file mode 100644
index 0000000..5dd5b67
--- /dev/null
+++ b/site/app/views/tests/discover.thtml
@@ -0,0 +1,11 @@
+<?php
+
+echo '<?xml version="1.0" ?><cases>';
+
+$testlist = TestManager::getTestCaseList();
+foreach ($testlist as $k=>$testcase) {
+ echo " <case>{$testcase}</case>\n";
+}
+
+echo '</cases>';
+?>