diff --git a/scripts/copy-i18n-tags.coffee b/scripts/copy-i18n-tags.coffee
index c7f49b975..42df476ea 100644
--- a/scripts/copy-i18n-tags.coffee
+++ b/scripts/copy-i18n-tags.coffee
@@ -1,5 +1,28 @@
 fs = require 'fs'
+path = require 'path'
 en = require('../app/locale/en').translation
+
+enSource = fs.readFileSync(path.join(__dirname, '../app/locale/en.coffee'), encoding='utf8')
+commentsMap = {}
+
+categorySplitPattern = /^[\s\n]*(?=[^:\n]+:\s*$)/gm
+categoryCapturePattern = /^[\s\n]*([^:\n]+):\s*$/gm
+commentPattern = /^[\s\n]*([^:\n]+):\s*"[^#\n"]+"\s*#(.*)$/gm
+
+splitByCategories = enSource.split(categorySplitPattern)
+
+for section in splitByCategories
+  categoryMatch = categoryCapturePattern.exec section
+
+  if categoryMatch?
+    category = categoryMatch[1]
+    comment = []
+
+    commentsMap[category] ?= {}
+
+    while (comment = commentPattern.exec section)?
+      commentsMap[category][comment[1]] = comment[2]
+
 dir = fs.readdirSync 'app/locale'
 for file in dir when not (file in ['locale.coffee', 'en.coffee'])
   contents = require('../app/locale/' + file)
@@ -16,6 +39,11 @@ for file in dir when not (file in ['locale.coffee', 'en.coffee'])
       tagMissing = not cat[enTag]?
       tag = (cat[enTag] ?= enString)
       tag = tag.replace /"/g, '\\"'
-      lines.push "#{if tagMissing then '#' else ''}    #{enTag}: \"#{tag}\""
+
+      comment = ""
+      if commentsMap[enCat]? and commentsMap[enCat][enTag]?
+        comment = " \##{commentsMap[enCat][enTag]}"
+
+      lines.push "#{if tagMissing then '#' else ''}    #{enTag}: \"#{tag}\"#{comment}"
   newContents = lines.join('\n') + '\n'
   fs.writeFileSync 'app/locale/' + file, newContents