Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2010-11-27 19:18:25 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2010-11-27 19:18:25 (GMT)
commit2fc5af0921c41a074b8a056f4b26e3e6d098e77c (patch)
treed50d620b16982a7f5cad3a9a1c25a6e5b1c26f1f
parentdd96f973d1e0a66d934489d06e1b0aeea27c0a65 (diff)
Support localized activity names in micro-format.php; bundle sizes in bytes
-rw-r--r--site/app/webroot/services/micro-format.php69
1 files changed, 64 insertions, 5 deletions
diff --git a/site/app/webroot/services/micro-format.php b/site/app/webroot/services/micro-format.php
index 58d1d43..bba2f9f 100644
--- a/site/app/webroot/services/micro-format.php
+++ b/site/app/webroot/services/micro-format.php
@@ -7,9 +7,58 @@ require_once('./functions.php');
$errors = array();
-foreach (array('collection_nickname') as $var) {
- if (empty($_GET[$var]))
- $errors[] = 'Required variable '.$var.' not set.';
+$supported_languages = array(
+ 'ar' => 'ar_EG.utf8',
+ 'ca' => 'ca_ES.utf8',
+ 'cs' => 'cs_CZ.utf8',
+ 'da' => 'da_DK.utf8',
+ 'de' => 'de_DE.utf8',
+ 'en-US' => 'en_US.utf8',
+ 'el' => 'el_GR.utf8',
+ 'es-ES' => 'es_ES.utf8',
+ 'eu' => 'eu_ES.utf8',
+ 'fa' => 'fa_IR.utf8',
+ 'fi' => 'fi_FI.utf8',
+ 'fr' => 'fr_FR.utf8',
+ 'ga-IE' => 'ga_IE.utf8',
+ 'he' => 'he_IL.utf8',
+ 'hu' => 'hu_HU.utf8',
+ 'id' => 'id_ID.utf8',
+ 'it' => 'it_IT.utf8',
+ 'ja' => 'ja_JP.utf8',
+ 'ko' => 'ko_KR.utf8',
+ 'mn' => 'mn_MN.utf8',
+ 'nl' => 'nl_NL.utf8',
+ 'pl' => 'pl_PL.utf8',
+ 'pt-BR' => 'pt_BR.utf8',
+ 'pt-PT' => 'pt_PT.utf8',
+ 'ro' => 'ro_RO.utf8',
+ 'ru' => 'ru_RU.utf8',
+ 'sk' => 'sk_SK.utf8',
+ 'sq' => 'sq_AL.utf8',
+ 'sv-SE' => 'sv_SE.utf8',
+ 'uk' => 'uk_UA.utf8',
+ 'vi' => 'vi_VN.utf8',
+ 'zh-CN' => 'zh_CN.utf8',
+ 'zh-TW' => 'zh_TW.utf8'
+);
+
+$collection_nickname = $_GET["collection_nickname"];
+if (empty($collection_nickname))
+ $errors[] = 'Required variable collection_nickname not set.';
+
+$lang = $_GET["lang"];
+if (empty($lang))
+ $lang = "en-US";
+else if (strstr($lang, "_") || strstr($lang, "-"))
+ $lang = str_replace("_", "-", $lang);
+else {
+ foreach ($supported_languages as $code => $locale) {
+ if (strstr($code, $lang . "-")) {
+ $lang = $code;
+ break;
+ }
+ }
}
$dbh = @mysql_connect(DB_HOST.':'.DB_PORT,DB_USER,DB_PASS);
@@ -25,6 +74,8 @@ if (empty($errors)) {
SELECT
addons.id,
addons.guid,
+ default_lang.localized_string as default_name,
+ requested_lang.localized_string as name,
max(versions.version) as version,
files.size,
files.filename,
@@ -35,8 +86,10 @@ if (empty($errors)) {
INNER JOIN addons ON addons.id = addons_collections.addon_id
INNER JOIN versions ON versions.addon_id = addons.id AND (addons_collections.addon_version IS NULL OR versions.version = addons_collections.addon_version)
INNER JOIN files ON files.version_id = versions.id
+ LEFT JOIN translations AS default_lang ON default_lang.id = addons.name AND default_lang.locale = addons.defaultlocale
+ LEFT JOIN translations AS requested_lang ON requested_lang.id = addons.name AND requested_lang.locale = '{$lang}'
WHERE
- collections.nickname = '{$_GET['collection_nickname']}'
+ collections.nickname = '{$collection_nickname}'
GROUP BY
addons.id
";
@@ -67,11 +120,17 @@ if (!empty($errors)) {
$url = FILES_HOST . '/' . $row['id'] . '/' . $row['filename'];
else
$url = SITE_URL . '/downloads/file/' . $row['file_id'] . '/' . $row['filename'];
+ $size = (int)$row['size'] * 1024;
+ if ($row['name'])
+ $name = $row['name'];
+ else
+ $name = $row['default_name'];
echo "<tr>\n";
echo "<td class=\"olpc-activity-info\">\n";
echo "<span class=\"olpc-activity-id\">{$row['guid']}</span>\n";
+ echo "<span class=\"olpc-activity-name\">{$name}</span>\n";
echo "<span class=\"olpc-activity-version\">{$row['version']}</span>\n";
- echo "<span class=\"olpc-activity-size\">{$row['size']}</span>\n";
+ echo "<span class=\"olpc-activity-size\">{$size}</span>\n";
echo "<span class=\"olpc-activity-url\"><a href=\"{$url}\">download</a></span>\n";
echo "</td>\n";
echo "</tr>\n";