diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-07-23 19:37:11 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-07-23 19:37:11 (GMT) |
commit | 313743a3acd62ee70d8b754c25695a8f4c16f3fd (patch) | |
tree | 5460738ef21f58d9bd5b94d7488c08f6f86f8f2d | |
parent | 8276afc4563afbca78eed42474b945a64c121e2e (diff) |
Translate Release Notes field in notification email #1086
-rw-r--r-- | site/app/controllers/components/editors.php | 10 | ||||
-rw-r--r-- | site/app/models/version.php | 20 |
2 files changed, 26 insertions, 4 deletions
diff --git a/site/app/controllers/components/editors.php b/site/app/controllers/components/editors.php index c13fd28..3f5383a 100644 --- a/site/app/controllers/components/editors.php +++ b/site/app/controllers/components/editors.php @@ -904,11 +904,13 @@ class EditorsComponent extends Object { function _sendReleaseNotes($prefix, $version_id, $emailInfo) { global $SITE_RELEASE_EMAIL; - $releasenotes = $this->controller->Version->findById($version_id, array('Version.releasenotes'), null, -1); - $emailInfo['releasenotes'] = $releasenotes[0]['releasenotes']; - $this->controller->set('info', $emailInfo); + $releasenotes = $this->controller->Version->getReleaseNotesLocales($version_id); + $en = isset($releasenotes['en-US']) ? $releasenotes['en-US'] : ''; + + foreach ($SITE_RELEASE_EMAIL as $locale => $props) { + $emailInfo['releasenotes'] = isset($releasenotes[$locale]) ? $releasenotes[$locale] : $en; + $this->controller->set('info', $emailInfo); - foreach ($SITE_RELEASE_EMAIL as $lang => $props) { $this->controller->Email->template = $prefix.'email/aslo/'.$props['template']; $this->controller->Email->to = $props['email']; $this->controller->Email->subject = sprintf($props['subject'], $emailInfo['name'], $emailInfo['version']); diff --git a/site/app/models/version.php b/site/app/models/version.php index 70c7468..36bbb85 100644 --- a/site/app/models/version.php +++ b/site/app/models/version.php @@ -301,5 +301,25 @@ class Version extends AppModel return $file_ids; } + function getReleaseNotesLocales($version_id) { + $sql = " + SELECT + Translations.locale, + Translations.localized_string + FROM + versions AS Version + INNER JOIN + translations AS Translations ON Translations.id = Version.releasenotes + WHERE + Version.id = {$version_id} + "; + + $out = array(); + + foreach ($this->query($sql) as $i) + $out[$i['Translations']['locale']] = $i['Translations']['localized_string']; + + return $out; + } } ?> |