diff --git a/app/assets/javascripts/discourse/controllers/static_controller.js b/app/assets/javascripts/discourse/controllers/static_controller.js index 3f86ab408..79789c92a 100644 --- a/app/assets/javascripts/discourse/controllers/static_controller.js +++ b/app/assets/javascripts/discourse/controllers/static_controller.js @@ -20,7 +20,7 @@ Discourse.StaticController = Discourse.Controller.extend({ text = text[1]; this.set('content', text); } else { - return Discourse.ajax(path + ".json", {dataType: 'html'}).then(function (result) { + return Discourse.ajax(path).then(function (result) { staticController.set('content', result); }); } diff --git a/app/assets/javascripts/discourse/models/user_stream.js b/app/assets/javascripts/discourse/models/user_stream.js index 3bd501003..2957fe67a 100644 --- a/app/assets/javascripts/discourse/models/user_stream.js +++ b/app/assets/javascripts/discourse/models/user_stream.js @@ -17,7 +17,7 @@ Discourse.UserStream = Discourse.Model.extend({ }.observes('filter'), findItems: function() { - var url = Discourse.getURL("/user_actions?offset=") + this.get('itemsLoaded') + "&username=" + (this.get('user.username_lower')); + var url = Discourse.getURL("/user_actions.json?offset=") + this.get('itemsLoaded') + "&username=" + (this.get('user.username_lower')); if (this.get('filter')) { url += "&filter=" + (this.get('filter')); } diff --git a/lib/tasks/integration.rake b/lib/tasks/integration.rake new file mode 100644 index 000000000..175c2d97b --- /dev/null +++ b/lib/tasks/integration.rake @@ -0,0 +1,51 @@ +require 'open-uri' + +desc 'Creates the integration fixtures. Requires a development instance running.' +task 'integration:create_fixtures' => :environment do + + fixtures = { + list: ["/latest.json", "/categories.json", "/category/bug.json"], + topic: ["/t/280.json"], + user: ["/users/eviltrout.json", "/user_actions.json?offset=0&username=eviltrout"], + static: ["/faq", '/tos', '/privacy'] + } + + fixtures.each do |type, urls| + + filename = "#{Rails.root}/test/javascripts/fixtures/#{type}_fixtures.js" + + content = "/*jshint maxlen:10000000 */\n" + urls.each do |url| + + http_result = fake_xhr("http://localhost:3000#{url}") + + # If the result is not JSON, convert it to JSON + begin + parsed = ::JSON.parse(http_result) + rescue + http_result = http_result.to_json + end + content << "Discourse.URL_FIXTURES[\"#{url}\"] = #{http_result};\n" + + end + + File.write(filename, content) + end + +end + + +def fake_xhr(url) + uri = URI(url) + + result = nil + Net::HTTP.start(uri.host, uri.port) do |http| + request = Net::HTTP::Get.new uri + request.add_field "X-Requested-With", "XMLHttpRequest" + response = http.request(request) + result = response.body.force_encoding("UTF-8") + end + + result + +end \ No newline at end of file diff --git a/test/javascripts/fixtures/list_fixtures.js b/test/javascripts/fixtures/list_fixtures.js index ed258d097..4f933d88a 100644 --- a/test/javascripts/fixtures/list_fixtures.js +++ b/test/javascripts/fixtures/list_fixtures.js @@ -1,3 +1,4 @@ /*jshint maxlen:10000000 */ -Discourse.URL_FIXTURES["/latest.json"] = {"categories":[{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":338,"description":"> Bug reports on Discourse. Please be sure to search prior to submitting bugs. Please include repro steps, and report only 1 bug per topic.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"secure":false},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":354,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":59,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","topic_url":"/t/category-definition-for-meta/24","hotness":5.0,"secure":false},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","topic_url":"/t/category-definition-for-discourse-hub/3038","hotness":5.0,"secure":false},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":157,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","topic_url":"/t/category-definition-for-dev/1026","hotness":5.0,"secure":false},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":88,"description":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","topic_url":"/t/category-definition-for-ux/2628","hotness":5.0,"secure":false},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":26,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility. ","topic_url":"/t/category-definition-for-extensibility/28","hotness":5.0,"secure":false},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":276,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","topic_url":"/t/category-definition-for-support/389","hotness":5.0,"secure":false},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":38,"description":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","topic_url":"/t/category-definition-for-faq/25","hotness":5.0,"secure":false}],"users":[{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":14,"username":"clay","avatar_template":"https://www.gravatar.com/avatar/e371bbd32ba2e9b27842e60ef5952d47.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":5483,"username":"briangillespie","avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon"},{"id":4757,"username":"cerberus","avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon"},{"id":247,"username":"chrishunt","avatar_template":"https://www.gravatar.com/avatar/4fafaca2401263fd03b62ff37a157a35.png?s={size}&r=pg&d=identicon"},{"id":406,"username":"RGJ","avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":5425,"username":"mattengi","avatar_template":"https://www.gravatar.com/avatar/b66610f025dda14e96453bc5a0124685.png?s={size}&r=pg&d=identicon"},{"id":562,"username":"nightpool","avatar_template":"https://www.gravatar.com/avatar/d73164d2180b4cf6099526e42e33a7fd.png?s={size}&r=pg&d=identicon"},{"id":4939,"username":"stevebaer","avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon"},{"id":761,"username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon"},{"id":1681,"username":"juanformoso","avatar_template":"https://www.gravatar.com/avatar/4dfc8f56817006ef21327d5ff19ce04f.png?s={size}&r=pg&d=identicon"},{"id":4612,"username":"Iszi","avatar_template":"https://www.gravatar.com/avatar/8f8571493d71202986f2a6ab0dbd7c23.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":1219,"username":"Gweebz","avatar_template":"https://www.gravatar.com/avatar/62e7d47ca49b942923f36eb90c1a31bd.png?s={size}&r=pg&d=identicon"},{"id":388,"username":"Drew","avatar_template":"https://www.gravatar.com/avatar/12b37360428acef73ff2c29cd3f272ef.png?s={size}&r=pg&d=identicon"},{"id":1566,"username":"hamburglar","avatar_template":"https://www.gravatar.com/avatar/57b39f59fa025f64e173ba6dffb8f2f7.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":5382,"username":"Charlie","avatar_template":"https://www.gravatar.com/avatar/4ae31ca93cd8a41fb44dace9d9d65166.png?s={size}&r=pg&d=identicon"},{"id":5372,"username":"computerdruid","avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon"},{"id":1263,"username":"ChrisB","avatar_template":"https://www.gravatar.com/avatar/1d75aba12b3961894f93959b5b013de0.png?s={size}&r=pg&d=identicon"},{"id":5438,"username":"hpesoj","avatar_template":"https://www.gravatar.com/avatar/c6f01bdb4443d3686d8a11d8899c0100.png?s={size}&r=pg&d=identicon"},{"id":2770,"username":"awesomerobot","avatar_template":"https://www.gravatar.com/avatar/9744a2573a43bb6d76deef82b7424023.png?s={size}&r=pg&d=identicon"},{"id":5174,"username":"Maria_Sergeeva","avatar_template":"https://www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":3657,"username":"steelmaiden","avatar_template":"https://www.gravatar.com/avatar/ee057e3db79dbbf327ee1e2d3af3320d.png?s={size}&r=pg&d=identicon"},{"id":5502,"username":"ankursethi108","avatar_template":"https://www.gravatar.com/avatar/da27d97199c2e567ff848bf70984d405.png?s={size}&r=pg&d=identicon"},{"id":5271,"username":"royguo","avatar_template":"https://www.gravatar.com/avatar/7e795755fe8a817981c3a81620faf359.png?s={size}&r=pg&d=identicon"},{"id":2063,"username":"amoiseev","avatar_template":"https://www.gravatar.com/avatar/56c19d0f5d2640d4ddf730e25acf4364.png?s={size}&r=pg&d=identicon"},{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":4220,"username":"kirantpatil","avatar_template":"https://www.gravatar.com/avatar/99d5ef2d7a453192340ca2c8adc21aa9.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":2316,"username":"pakl","avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon"},{"id":5293,"username":"nick12377","avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon"},{"id":1374,"username":"naggie","avatar_template":"https://www.gravatar.com/avatar/43675ac6f4ef94f40b5e44add2a984c1.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/latest.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":1,"fancy_title":"Welcome to meta.discourse.org","slug":"welcome-to-meta-discourse-org","posts_count":5,"reply_count":5,"highest_post_number":23,"image_url":null,"created_at":"2013-01-31T23:52:28-05:00","last_posted_at":"2013-02-07T16:50:41-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34-05:00","unseen":false,"title":"Welcome to meta.discourse.org","pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You'll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar…","visible":true,"closed":true,"archived":false,"views":9279,"like_count":84,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":14},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":7418,"fancy_title":"Auto-suggest topics shows Private topics","slug":"auto-suggest-topics-shows-private-topics","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-06-12T12:08:11-04:00","last_posted_at":"2013-06-12T12:32:08-04:00","bumped":true,"bumped_at":"2013-06-12T12:32:08-04:00","unseen":false,"title":"Auto-suggest topics shows Private topics","pinned":false,"visible":true,"closed":false,"archived":false,"views":7,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5483},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":7392,"fancy_title":"It there user’s birthday in user profile?","slug":"it-there-users-birthday-in-user-profile","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-11T19:02:05-04:00","last_posted_at":"2013-06-12T12:23:06-04:00","bumped":true,"bumped_at":"2013-06-12T12:23:06-04:00","unseen":false,"title":"It there user's birthday in user profile?","pinned":false,"visible":true,"closed":false,"archived":false,"views":42,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4757},{"extras":null,"description":"Most Posts","user_id":247},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":406}]},{"id":7420,"fancy_title":"Federated login for Microsoft and Apple","slug":"federated-login-for-microsoft-and-apple","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-12T12:19:23-04:00","last_posted_at":"2013-06-12T12:19:24-04:00","bumped":true,"bumped_at":"2013-06-12T12:19:24-04:00","unseen":false,"title":"Federated login for Microsoft and Apple","pinned":false,"visible":true,"closed":false,"archived":false,"views":4,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5483}]},{"id":3102,"fancy_title":"Please visit our Discourse Forum! (Directory)","slug":"please-visit-our-discourse-forum-directory","posts_count":36,"reply_count":16,"highest_post_number":36,"image_url":null,"created_at":"2013-02-14T14:30:38-05:00","last_posted_at":"2013-06-12T12:18:41-04:00","bumped":true,"bumped_at":"2013-06-12T12:18:41-04:00","unseen":false,"title":"Please visit our Discourse Forum! (Directory)","pinned":false,"visible":true,"closed":false,"archived":false,"views":2458,"like_count":32,"has_best_of":false,"archetype":"regular","category_id":3,"posters":[{"extras":null,"description":"Original Poster","user_id":38},{"extras":null,"description":"Most Posts","user_id":5425},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":562},{"extras":"latest","description":"Most Recent Poster","user_id":4939}]},{"id":7419,"fancy_title":"Non-authenticated users see all topics in mobile view","slug":"non-authenticated-users-see-all-topics-in-mobile-view","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-12T12:11:13-04:00","last_posted_at":"2013-06-12T12:11:14-04:00","bumped":true,"bumped_at":"2013-06-12T12:11:14-04:00","unseen":false,"title":"Non-authenticated users see all topics in mobile view","pinned":false,"visible":true,"closed":false,"archived":false,"views":4,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5483}]},{"id":7417,"fancy_title":"Oneboxing “non-traditional” URLs","slug":"oneboxing-non-traditional-urls","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-12T11:42:19-04:00","last_posted_at":"2013-06-12T11:42:20-04:00","bumped":true,"bumped_at":"2013-06-12T11:42:20-04:00","unseen":false,"title":"Oneboxing \"non-traditional\" URLs","pinned":false,"visible":true,"closed":false,"archived":false,"views":13,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":761}]},{"id":7411,"fancy_title":"Unable to send digests","slug":"unable-to-send-digests","posts_count":12,"reply_count":7,"highest_post_number":12,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1078/030dd27562e8cc64.png","created_at":"2013-06-12T09:25:21-04:00","last_posted_at":"2013-06-12T11:21:10-04:00","bumped":true,"bumped_at":"2013-06-12T11:34:35-04:00","unseen":false,"title":"Unable to send digests","pinned":false,"visible":true,"closed":false,"archived":false,"views":26,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1681},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":1}]},{"id":6130,"fancy_title":"Make it easier to close large images","slug":"make-it-easier-to-close-large-images","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":null,"created_at":"2013-04-24T11:35:04-04:00","last_posted_at":"2013-06-12T11:26:21-04:00","bumped":true,"bumped_at":"2013-06-12T11:26:21-04:00","unseen":false,"title":"Make it easier to close large images","pinned":false,"visible":true,"closed":false,"archived":false,"views":124,"like_count":6,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4612},{"extras":null,"description":"Most Posts","user_id":1995},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1219}]},{"id":424,"fancy_title":"What are the ‘consequences’ of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":34,"reply_count":31,"highest_post_number":34,"image_url":null,"created_at":"2013-02-05T17:37:52-05:00","last_posted_at":"2013-06-12T10:56:54-04:00","bumped":true,"bumped_at":"2013-06-12T10:56:54-04:00","unseen":false,"title":"What are the 'consequences' of changing your name?","pinned":false,"visible":true,"closed":false,"archived":false,"views":953,"like_count":41,"has_best_of":false,"archetype":"regular","category_id":12,"posters":[{"extras":null,"description":"Original Poster","user_id":388},{"extras":null,"description":"Most Posts","user_id":1566},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":2},{"extras":"latest","description":"Most Recent Poster","user_id":5382}]},{"id":7410,"fancy_title":"Twitter oneboxes are bust","slug":"twitter-oneboxes-are-bust","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-06-12T07:19:42-04:00","last_posted_at":"2013-06-12T10:50:31-04:00","bumped":true,"bumped_at":"2013-06-12T10:50:31-04:00","unseen":false,"title":"Twitter oneboxes are bust","pinned":false,"visible":true,"closed":false,"archived":false,"views":31,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":5372}]},{"id":7403,"fancy_title":"Deploy Disource at local machine with juju, lxc","slug":"deploy-disource-at-local-machine-with-juju-lxc","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/rage.png","created_at":"2013-06-11T23:23:09-04:00","last_posted_at":"2013-06-12T10:37:03-04:00","bumped":true,"bumped_at":"2013-06-12T10:37:03-04:00","unseen":false,"title":"Deploy Disource at local machine with juju, lxc","pinned":false,"visible":true,"closed":false,"archived":false,"views":32,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":5425},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":761}]},{"id":7362,"fancy_title":"Should post date/times be moved to remove ambiguity between user join dates or activity?","slug":"should-post-date-times-be-moved-to-remove-ambiguity-between-user-join-dates-or-activity","posts_count":23,"reply_count":18,"highest_post_number":23,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-06-10T18:52:34-04:00","last_posted_at":"2013-06-12T10:35:29-04:00","bumped":true,"bumped_at":"2013-06-12T10:35:29-04:00","unseen":false,"title":"Should post date/times be moved to remove ambiguity between user join dates or activity?","pinned":false,"visible":true,"closed":false,"archived":false,"views":114,"like_count":9,"has_best_of":false,"archetype":"regular","category_id":9,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1263},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":5438},{"extras":null,"description":"Frequent Poster","user_id":2770}]},{"id":7412,"fancy_title":"To group posts by a user","slug":"to-group-posts-by-a-user","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-06-12T09:35:57-04:00","last_posted_at":"2013-06-12T10:06:38-04:00","bumped":true,"bumped_at":"2013-06-12T10:14:51-04:00","unseen":false,"title":"To group posts by a user","pinned":false,"visible":true,"closed":false,"archived":false,"views":16,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5174},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":5689,"fancy_title":"Wordpress plugin to include latest topics as a sidebar?","slug":"wordpress-plugin-to-include-latest-topics-as-a-sidebar","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-04-07T16:08:21-04:00","last_posted_at":"2013-06-12T09:58:21-04:00","bumped":true,"bumped_at":"2013-06-12T09:58:21-04:00","unseen":false,"title":"Wordpress plugin to include latest topics as a sidebar?","pinned":false,"visible":true,"closed":false,"archived":false,"views":139,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":5,"posters":[{"extras":null,"description":"Original Poster","user_id":2291},{"extras":null,"description":"Most Posts","user_id":3657},{"extras":"latest","description":"Most Recent Poster","user_id":5502}]},{"id":7401,"fancy_title":"Shall we add category names in top_menu?","slug":"shall-we-add-category-names-in-top-menu","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-06-11T22:47:34-04:00","last_posted_at":"2013-06-12T06:55:03-04:00","bumped":true,"bumped_at":"2013-06-12T06:55:03-04:00","unseen":false,"title":"Shall we add category names in top_menu?","pinned":false,"visible":true,"closed":false,"archived":false,"views":35,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5271},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":7393,"fancy_title":"Cannot click on image immediately after uploading","slug":"cannot-click-on-image-immediately-after-uploading","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-11T19:05:32-04:00","last_posted_at":"2013-06-12T06:15:02-04:00","bumped":true,"bumped_at":"2013-06-12T06:15:02-04:00","unseen":false,"title":"Cannot click on image immediately after uploading","pinned":false,"visible":true,"closed":false,"archived":false,"views":24,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5438},{"extras":null,"description":"Most Posts","user_id":1995}]},{"id":7391,"fancy_title":"Upload image button doesn’t work after uploading an image","slug":"upload-image-button-doesnt-work-after-uploading-an-image","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-11T19:01:56-04:00","last_posted_at":"2013-06-12T06:14:01-04:00","bumped":true,"bumped_at":"2013-06-12T06:14:01-04:00","unseen":false,"title":"Upload image button doesn't work after uploading an image","pinned":false,"visible":true,"closed":false,"archived":false,"views":22,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5438},{"extras":null,"description":"Most Posts","user_id":1995}]},{"id":7409,"fancy_title":"New Relic installation","slug":"new-relic-installation","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-06-12T05:11:58-04:00","last_posted_at":"2013-06-12T05:20:30-04:00","bumped":true,"bumped_at":"2013-06-12T05:20:30-04:00","unseen":false,"title":"New Relic installation","pinned":false,"visible":true,"closed":false,"archived":false,"views":22,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2063},{"extras":null,"description":"Most Posts","user_id":3987}]},{"id":7405,"fancy_title":"How to add “/faq” link in top menu?","slug":"how-to-add-faq-link-in-top-menu","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-12T01:28:32-04:00","last_posted_at":"2013-06-12T01:28:32-04:00","bumped":true,"bumped_at":"2013-06-12T03:12:30-04:00","unseen":false,"title":"How to add \"/faq\" link in top menu?","pinned":false,"visible":true,"closed":false,"archived":false,"views":31,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5271}]},{"id":7408,"fancy_title":"What are the options for hammering a bad account?","slug":"what-are-the-options-for-hammering-a-bad-account","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1077/43066a4fc47d1d70.png","created_at":"2013-06-12T02:33:53-04:00","last_posted_at":"2013-06-12T02:33:53-04:00","bumped":false,"bumped_at":"2013-06-12T02:33:53-04:00","unseen":false,"title":"What are the options for hammering a bad account?","pinned":false,"visible":true,"closed":false,"archived":false,"views":26,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3}]},{"id":7378,"fancy_title":"Discourse Release Announcements for each tagged version release","slug":"discourse-release-announcements-for-each-tagged-version-release","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-11T10:31:03-04:00","last_posted_at":"2013-06-12T02:18:33-04:00","bumped":true,"bumped_at":"2013-06-12T02:18:33-04:00","unseen":false,"title":"Discourse Release Announcements for each tagged version release","pinned":false,"visible":true,"closed":false,"archived":false,"views":79,"like_count":7,"has_best_of":false,"archetype":"regular","category_id":4,"posters":[{"extras":null,"description":"Original Poster","user_id":4220},{"extras":null,"description":"Most Posts","user_id":471},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":761}]},{"id":7406,"fancy_title":"[missing {{user}} value] in user’s home page","slug":"missing-user-value-in-users-home-page","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1074/09013263c0ffc523.png","created_at":"2013-06-12T01:32:04-04:00","last_posted_at":"2013-06-12T01:47:03-04:00","bumped":true,"bumped_at":"2013-06-12T01:47:03-04:00","unseen":false,"title":"[missing {{user}} value] in user's home page","pinned":false,"visible":true,"closed":false,"archived":false,"views":17,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5271},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":7400,"fancy_title":"Mockups/Ideas for extended profiles","slug":"mockups-ideas-for-extended-profiles","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1061/8a6ac964893019ea.png","created_at":"2013-06-11T22:14:03-04:00","last_posted_at":"2013-06-12T01:01:26-04:00","bumped":true,"bumped_at":"2013-06-12T01:01:26-04:00","unseen":false,"title":"Mockups/Ideas for extended profiles","pinned":false,"visible":true,"closed":false,"archived":false,"views":34,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":9,"posters":[{"extras":null,"description":"Original Poster","user_id":2316},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7146,"fancy_title":"Getting rid of sugar.js","slug":"getting-rid-of-sugar-js","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-06-04T03:22:49-04:00","last_posted_at":"2013-06-11T23:50:46-04:00","bumped":true,"bumped_at":"2013-06-11T23:50:46-04:00","unseen":false,"title":"Getting rid of sugar.js","pinned":false,"visible":true,"closed":false,"archived":false,"views":133,"like_count":8,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":2}]},{"id":7397,"fancy_title":"Incorrect string in new posts counter tooltip","slug":"incorrect-string-in-new-posts-counter-tooltip","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://i.imgur.com/7557h94.png","created_at":"2013-06-11T21:15:40-04:00","last_posted_at":"2013-06-11T22:25:04-04:00","bumped":true,"bumped_at":"2013-06-11T22:11:00-04:00","unseen":false,"title":"Incorrect string in new posts counter tooltip","pinned":false,"visible":true,"closed":false,"archived":true,"views":19,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5425},{"extras":"latest","description":"Most Recent Poster, Most Posts","user_id":1}]},{"id":7390,"fancy_title":"“Topic_count” instead of actual count","slug":"topic-count-instead-of-actual-count","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1060/6496b3226de5168d.png","created_at":"2013-06-11T18:58:20-04:00","last_posted_at":"2013-06-11T21:48:17-04:00","bumped":true,"bumped_at":"2013-06-11T19:48:20-04:00","unseen":false,"title":"\"Topic_count\" instead of actual count","pinned":false,"visible":true,"closed":false,"archived":true,"views":28,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5293},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7389,"fancy_title":"I’m trying to making linux container(lxc) vagrant box image","slug":"im-trying-to-making-linux-container-lxc-vagrant-box-image","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/assets/emoji/wink.png","created_at":"2013-06-11T18:56:31-04:00","last_posted_at":"2013-06-11T18:56:31-04:00","bumped":true,"bumped_at":"2013-06-11T19:06:13-04:00","unseen":false,"title":"I'm trying to making linux container(lxc) vagrant box image","pinned":false,"visible":true,"closed":false,"archived":false,"views":25,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5425}]},{"id":7386,"fancy_title":"Mail settings shows password in clear text","slug":"mail-settings-shows-password-in-clear-text","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-06-11T17:19:41-04:00","last_posted_at":"2013-06-11T19:05:33-04:00","bumped":true,"bumped_at":"2013-06-11T19:05:33-04:00","unseen":false,"title":"Mail settings shows password in clear text","pinned":false,"visible":true,"closed":false,"archived":false,"views":45,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1681},{"extras":"latest","description":"Most Recent Poster","user_id":247}]},{"id":7175,"fancy_title":"Relative time something was posted","slug":"relative-time-something-was-posted","posts_count":105,"reply_count":90,"highest_post_number":105,"image_url":"http://meta.discourse.org/uploads/meta_discourse/1007/0f5263b3ee0a0f45.png","created_at":"2013-06-04T19:05:09-04:00","last_posted_at":"2013-06-11T19:01:41-04:00","bumped":true,"bumped_at":"2013-06-11T19:01:41-04:00","unseen":false,"title":"Relative time something was posted","pinned":false,"visible":true,"closed":false,"archived":false,"views":433,"like_count":94,"has_best_of":true,"archetype":"regular","category_id":9,"posters":[{"extras":null,"description":"Original Poster","user_id":1374},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":406},{"extras":null,"description":"Frequent Poster","user_id":5438},{"extras":"latest","description":"Most Recent Poster","user_id":1263}]}]}}; -Discourse.URL_FIXTURES["/categories.json"] = {"featured_users":[{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":2600,"username":"NinjaFoodstuff","avatar_template":"https://www.gravatar.com/avatar/3709f34da1ff5433b41bc56df94dd453.png?s={size}&r=pg&d=identicon"},{"id":406,"username":"RGJ","avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":8,"username":"geek","avatar_template":"https://www.gravatar.com/avatar/b0b1ce3a4e0a77abd157ec0309b72922.png?s={size}&r=pg&d=identicon"},{"id":4,"username":"stienman","avatar_template":"https://www.gravatar.com/avatar/281486f2a20201375414760dd347951d.png?s={size}&r=pg&d=identicon"},{"id":1274,"username":"binaryphile","avatar_template":"https://www.gravatar.com/avatar/82564a08aebae1de68bea8e3df61ef93.png?s={size}&r=pg&d=identicon"},{"id":1263,"username":"ChrisB","avatar_template":"https://www.gravatar.com/avatar/1d75aba12b3961894f93959b5b013de0.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":2839,"username":"baus","avatar_template":"https://www.gravatar.com/avatar/57d4030570f672f515a7385cc74c8cfe.png?s={size}&r=pg&d=identicon"},{"id":2664,"username":"Odd_Bloke","avatar_template":"https://www.gravatar.com/avatar/af881deb1a7ef0a1f568e18cd967c0d3.png?s={size}&r=pg&d=identicon"},{"id":714,"username":"jcolebrand","avatar_template":"https://www.gravatar.com/avatar/c4cca9bfec5d5e77f625d9fbe8e37a41.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":1674,"username":"colin","avatar_template":"https://www.gravatar.com/avatar/4cfb483116a822652d698dce303ec842.png?s={size}&r=pg&d=identicon"},{"id":2128,"username":"ultimape","avatar_template":"https://www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"},{"id":811,"username":"jpeg","avatar_template":"https://www.gravatar.com/avatar/4a214d4a12b7223b61ec36c7aa224c97.png?s={size}&r=pg&d=identicon"},{"id":5468,"username":"pixelBender67","avatar_template":"https://www.gravatar.com/avatar/4f4cc88cc2ebd747240c7bc53af99261.png?s={size}&r=pg&d=identicon"},{"id":2471,"username":"robconery","avatar_template":"https://www.gravatar.com/avatar/31b18bc48108bc410884022764dbeec6.png?s={size}&r=pg&d=identicon"},{"id":4217,"username":"mshappe","avatar_template":"https://www.gravatar.com/avatar/36ffc752906110cd16e1746d5c95516f.png?s={size}&r=pg&d=identicon"},{"id":5460,"username":"ned","avatar_template":"https://www.gravatar.com/avatar/bc5e09a5ce0a85bf02a3fceb9b0bfaf4.png?s={size}&r=pg&d=identicon"},{"id":2399,"username":"passionate","avatar_template":"https://www.gravatar.com/avatar/bcb2185dd24051bce727b29230a2c171.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":2465,"username":"finid","avatar_template":"https://www.gravatar.com/avatar/989a7705a77732d888ddaff8b440fc3d.png?s={size}&r=pg&d=identicon"},{"id":4939,"username":"stevebaer","avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon"},{"id":3507,"username":"mozCallahad","avatar_template":"https://www.gravatar.com/avatar/a2746e0bf42c3245bfd80dea9b3efb32.png?s={size}&r=pg&d=identicon"},{"id":704,"username":"AstonJ","avatar_template":"https://www.gravatar.com/avatar/03af361cc843bc56e95cb6c406d06f80.png?s={size}&r=pg&d=identicon"},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon"},{"id":1566,"username":"hamburglar","avatar_template":"https://www.gravatar.com/avatar/57b39f59fa025f64e173ba6dffb8f2f7.png?s={size}&r=pg&d=identicon"}],"category_list":{"can_create_category":false,"can_create_topic":false,"draft":null,"draft_key":"new_topic","draft_sequence":null,"categories":[{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":361,"topics_week":24,"topics_month":93,"topics_year":357,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","description_excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","featured_user_ids":[32,1,1995,2,19],"topics":[{"id":7288,"fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"title":"Digest mail ignores secure groups","pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That's because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false},{"id":7554,"fancy_title":"Loading (never stops)","slug":"loading-never-stops","posts_count":14,"reply_count":10,"highest_post_number":14,"image_url":null,"created_at":"2013-06-17T04:10:19-04:00","last_posted_at":"2013-06-20T11:25:38-04:00","bumped":true,"bumped_at":"2013-06-20T11:25:38-04:00","unseen":false,"title":"Loading (never stops)","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7655,"fancy_title":"Are invisible topics broken again?","slug":"are-invisible-topics-broken-again","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://s3.amazonaws.com/lechat-im-share/77734fb7713f41c1c642d106f04848c29297c12c3563ec4b5b7863a1ad83c605/clip.png","created_at":"2013-06-20T10:14:16-04:00","last_posted_at":"2013-06-20T10:14:19-04:00","bumped":false,"bumped_at":"2013-06-20T10:14:16-04:00","unseen":false,"title":"Are invisible topics broken again?","pinned":false,"visible":false,"closed":false,"archived":false},{"id":7654,"fancy_title":"Grant admin failed","slug":"grant-admin-failed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1167/6693820be81fb347.png","created_at":"2013-06-20T10:01:27-04:00","last_posted_at":"2013-06-20T10:01:27-04:00","bumped":false,"bumped_at":"2013-06-20T10:01:27-04:00","unseen":false,"title":"Grant admin failed","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7652,"fancy_title":"Onebox with Chinese failed!","slug":"onebox-with-chinese-failed","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1166/59abf864c9513bf1.png","created_at":"2013-06-20T09:21:32-04:00","last_posted_at":"2013-06-20T09:21:33-04:00","bumped":true,"bumped_at":"2013-06-20T09:21:33-04:00","unseen":false,"title":"Onebox with Chinese failed!","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7613,"fancy_title":"Site Customization not working","slug":"site-customization-not-working","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":null,"created_at":"2013-06-18T17:47:54-04:00","last_posted_at":"2013-06-20T07:36:24-04:00","bumped":true,"bumped_at":"2013-06-20T07:36:24-04:00","unseen":false,"title":"Site Customization not working","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":300,"topics_week":22,"topics_month":90,"topics_year":299,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","description_excerpt":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","featured_user_ids":[32,1,2,2600,406],"topics":[{"id":7645,"fancy_title":"Why does my logo come out like this?","slug":"why-does-my-logo-come-out-like-this","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1163/9bdb455a1fdef5bd.png","created_at":"2013-06-20T00:07:35-04:00","last_posted_at":"2013-06-20T13:03:44-04:00","bumped":true,"bumped_at":"2013-06-20T13:03:44-04:00","unseen":false,"title":"Why does my logo come out like this?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7630,"fancy_title":"Google account login redirect to 127.0.0.1:3000","slug":"google-account-login-redirect-to-127-0-0-1-3000","posts_count":13,"reply_count":11,"highest_post_number":13,"image_url":"http://meta.discourse.org/assets/favicons/stackexchange-40d494822da7175d54657ac327a01ab4.png","created_at":"2013-06-19T09:04:16-04:00","last_posted_at":"2013-06-20T10:37:01-04:00","bumped":true,"bumped_at":"2013-06-20T10:37:01-04:00","unseen":false,"title":"Google account login redirect to 127.0.0.1:3000","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7642,"fancy_title":"500 error on posts","slug":"500-error-on-posts","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1161/f8e0a36aceeab57b.png","created_at":"2013-06-19T18:32:41-04:00","last_posted_at":"2013-06-19T19:26:18-04:00","bumped":true,"bumped_at":"2013-06-19T19:34:02-04:00","unseen":false,"title":"500 error on posts","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7409,"fancy_title":"New Relic installation","slug":"new-relic-installation","posts_count":11,"reply_count":9,"highest_post_number":11,"image_url":null,"created_at":"2013-06-12T05:11:58-04:00","last_posted_at":"2013-06-19T18:56:43-04:00","bumped":true,"bumped_at":"2013-06-19T18:56:43-04:00","unseen":false,"title":"New Relic installation","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7604,"fancy_title":"Airbrake’s license has changed, not MIT anymore","slug":"airbrakes-license-has-changed-not-mit-anymore","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":null,"created_at":"2013-06-18T15:58:13-04:00","last_posted_at":"2013-06-19T11:37:39-04:00","bumped":true,"bumped_at":"2013-06-19T11:37:39-04:00","unseen":false,"title":"Airbrake's license has changed, not MIT anymore","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7583,"fancy_title":"What’s the best way to add global Javascript code?","slug":"whats-the-best-way-to-add-global-javascript-code","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-17T21:45:31-04:00","last_posted_at":"2013-06-17T21:45:31-04:00","bumped":true,"bumped_at":"2013-06-19T08:58:05-04:00","unseen":false,"title":"What's the best way to add global Javascript code?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":379,"topics_week":21,"topics_month":68,"topics_year":378,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","description_excerpt":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","featured_user_ids":[32,1,1353,8,4],"topics":[{"id":7581,"fancy_title":"Category preferences","slug":"category-preferences","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-06-17T19:40:35-04:00","last_posted_at":"2013-06-20T10:25:15-04:00","bumped":true,"bumped_at":"2013-06-20T10:25:15-04:00","unseen":false,"title":"Category preferences","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7651,"fancy_title":"Easier way to stop watching or tracking topic","slug":"easier-way-to-stop-watching-or-tracking-topic","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-20T09:20:48-04:00","last_posted_at":"2013-06-20T09:20:49-04:00","bumped":true,"bumped_at":"2013-06-20T09:20:49-04:00","unseen":false,"title":"Easier way to stop watching or tracking topic","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7450,"fancy_title":"We need an “Archive” Flag Notification button","slug":"we-need-an-archive-flag-notification-button","posts_count":9,"reply_count":7,"highest_post_number":9,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1098/fd9f66b93330aeea.png","created_at":"2013-06-13T12:31:05-04:00","last_posted_at":"2013-06-19T23:55:25-04:00","bumped":true,"bumped_at":"2013-06-19T23:55:25-04:00","unseen":false,"title":"We need an \"Archive\" Flag Notification button","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4415,"fancy_title":"Scaling Discourse","slug":"scaling-discourse","posts_count":8,"reply_count":6,"highest_post_number":8,"image_url":null,"created_at":"2013-03-04T10:17:09-05:00","last_posted_at":"2013-06-19T23:53:21-04:00","bumped":true,"bumped_at":"2013-06-19T23:53:21-04:00","unseen":false,"title":"Scaling Discourse","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7631,"fancy_title":"New topics since last visit are the same even after logout and exit","slug":"new-topics-since-last-visit-are-the-same-even-after-logout-and-exit","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-19T10:12:41-04:00","last_posted_at":"2013-06-19T19:34:15-04:00","bumped":true,"bumped_at":"2013-06-19T19:34:15-04:00","unseen":false,"title":"New topics since last visit are the same even after logout and exit","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7640,"fancy_title":"Confirmation on about to delete first post in the topic and consiquently entire topic","slug":"confirmation-on-about-to-delete-first-post-in-the-topic-and-consiquently-entire-topic","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-19T16:30:07-04:00","last_posted_at":"2013-06-19T19:10:54-04:00","bumped":true,"bumped_at":"2013-06-19T19:10:54-04:00","unseen":false,"title":"Confirmation on about to delete first post in the topic and consiquently entire topic","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":null,"name":"uncategorized","color":"AB9364","text_color":"FFFFFF","slug":"uncategorized","topic_count":173,"topics_week":6,"topics_month":24,"topics_year":173,"description":null,"description_excerpt":null,"is_uncategorized":true,"featured_user_ids":[],"topics":[{"id":7644,"fancy_title":"Is forum migration really worth it?","slug":"is-forum-migration-really-worth-it","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s=40&r=pg&d=identicon","created_at":"2013-06-20T00:07:04-04:00","last_posted_at":"2013-06-20T12:30:16-04:00","bumped":true,"bumped_at":"2013-06-20T12:30:16-04:00","unseen":false,"title":"Is forum migration really worth it?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4533,"fancy_title":"Did you reply wrong topic in discourse forum?","slug":"did-you-reply-wrong-topic-in-discourse-forum","posts_count":11,"reply_count":8,"highest_post_number":11,"image_url":null,"created_at":"2013-03-06T20:41:25-05:00","last_posted_at":"2013-06-19T12:56:54-04:00","bumped":true,"bumped_at":"2013-06-19T12:56:54-04:00","unseen":false,"title":"Did you reply wrong topic in discourse forum?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7594,"fancy_title":"How to add links to the title header","slug":"how-to-add-links-to-the-title-header","posts_count":6,"reply_count":5,"highest_post_number":6,"image_url":null,"created_at":"2013-06-18T11:37:53-04:00","last_posted_at":"2013-06-18T17:12:26-04:00","bumped":true,"bumped_at":"2013-06-18T17:12:26-04:00","unseen":false,"title":"How to add links to the title header","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7602,"fancy_title":"SMTP Errors on latest","slug":"smtp-errors-on-latest","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-06-18T15:30:04-04:00","last_posted_at":"2013-06-18T16:09:45-04:00","bumped":true,"bumped_at":"2013-06-18T16:09:17-04:00","unseen":false,"title":"SMTP Errors on latest","pinned":false,"visible":true,"closed":false,"archived":true},{"id":7600,"fancy_title":"Any example or tutorial of using doorkeeper with discourse","slug":"any-example-or-tutorial-of-using-doorkeeper-with-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-18T14:23:44-04:00","last_posted_at":"2013-06-18T14:23:44-04:00","bumped":false,"bumped_at":"2013-06-18T14:23:44-04:00","unseen":false,"title":"Any example or tutorial of using doorkeeper with discourse","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7558,"fancy_title":"How can i get discourse to use for my community?","slug":"how-can-i-get-discourse-to-use-for-my-community","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-17T08:30:56-04:00","last_posted_at":"2013-06-17T11:05:31-04:00","bumped":true,"bumped_at":"2013-06-17T11:05:31-04:00","unseen":false,"title":"How can i get discourse to use for my community?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":162,"topics_week":4,"topics_month":31,"topics_year":162,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","description_excerpt":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","featured_user_ids":[1,32,19,1274,1995],"topics":[{"id":3823,"fancy_title":"So, you want to help out with Discourse","slug":"so-you-want-to-help-out-with-discourse","posts_count":19,"reply_count":17,"highest_post_number":32,"image_url":null,"created_at":"2013-02-23T00:46:11-05:00","last_posted_at":"2013-06-05T21:09:56-04:00","bumped":true,"bumped_at":"2013-06-05T21:09:56-04:00","unseen":false,"title":"So, you want to help out with Discourse","pinned":true,"excerpt":"People are wondering, how it is they can help out with Discourse. \n\nWe have seen some chattering both here and on Github. \n\nI wanted to create a topic @eviltrout , @codinghorror and myself can keep up to date with clear…","visible":true,"closed":false,"archived":false},{"id":7638,"fancy_title":"Styling Discourse","slug":"styling-discourse","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-19T15:23:36-04:00","last_posted_at":"2013-06-20T13:03:52-04:00","bumped":true,"bumped_at":"2013-06-20T13:03:52-04:00","unseen":false,"title":"Styling Discourse","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4403,"fancy_title":"Comrades let’s join our efforts on ukrainian and russian translations","slug":"comrades-lets-join-our-efforts-on-ukrainian-and-russian-translations","posts_count":38,"reply_count":18,"highest_post_number":38,"image_url":null,"created_at":"2013-03-04T08:04:53-05:00","last_posted_at":"2013-06-20T03:36:05-04:00","bumped":true,"bumped_at":"2013-06-20T03:36:05-04:00","unseen":false,"title":"Comrades let's join our efforts on ukrainian and russian translations","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6013,"fancy_title":"Image optimisation (work in progress)","slug":"image-optimisation-work-in-progress","posts_count":14,"reply_count":11,"highest_post_number":14,"image_url":null,"created_at":"2013-04-18T19:55:04-04:00","last_posted_at":"2013-06-20T02:33:06-04:00","bumped":true,"bumped_at":"2013-06-20T02:33:06-04:00","unseen":false,"title":"Image optimisation (work in progress)","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6669,"fancy_title":"Integrating Discourse with current user database?","slug":"integrating-discourse-with-current-user-database","posts_count":11,"reply_count":4,"highest_post_number":11,"image_url":null,"created_at":"2013-05-16T14:55:47-04:00","last_posted_at":"2013-06-19T22:04:47-04:00","bumped":true,"bumped_at":"2013-06-19T22:04:47-04:00","unseen":false,"title":"Integrating Discourse with current user database?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":3943,"fancy_title":"Give me those authentication hooks! :D","slug":"give-me-those-authentication-hooks-d","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-02-24T02:18:13-05:00","last_posted_at":"2013-06-19T18:58:45-04:00","bumped":true,"bumped_at":"2013-06-19T18:58:45-04:00","unseen":false,"title":"Give me those authentication hooks! :D","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":92,"topics_week":4,"topics_month":15,"topics_year":92,"description":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","description_excerpt":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","featured_user_ids":[32,1,406,1263,38],"topics":[{"id":7362,"fancy_title":"Should post date/times be moved to remove ambiguity between user join dates or activity?","slug":"should-post-date-times-be-moved-to-remove-ambiguity-between-user-join-dates-or-activity","posts_count":49,"reply_count":38,"highest_post_number":49,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-06-10T18:52:34-04:00","last_posted_at":"2013-06-20T11:53:13-04:00","bumped":true,"bumped_at":"2013-06-20T11:53:13-04:00","unseen":false,"title":"Should post date/times be moved to remove ambiguity between user join dates or activity?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7614,"fancy_title":"“Your topic is similar to…” Always comes up","slug":"your-topic-is-similar-to-always-comes-up","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1146/9dea86f9a04e59c8.png","created_at":"2013-06-18T19:27:03-04:00","last_posted_at":"2013-06-19T13:36:04-04:00","bumped":true,"bumped_at":"2013-06-19T13:36:04-04:00","unseen":false,"title":"\"Your topic is similar to...\" Always comes up","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7493,"fancy_title":"Activity reports on admin page","slug":"activity-reports-on-admin-page","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://s3.amazonaws.com/lechat-im-share/aa059a2e2227e1772ce49cae3611363e2e209bea8139d5adf93df0031e8bed75/clip.png","created_at":"2013-06-14T22:29:00-04:00","last_posted_at":"2013-06-17T11:16:11-04:00","bumped":true,"bumped_at":"2013-06-17T11:16:11-04:00","unseen":false,"title":"Activity reports on admin page","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7479,"fancy_title":"Expand topic details button not always necessary","slug":"expand-topic-details-button-not-always-necessary","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-06-14T10:54:00-04:00","last_posted_at":"2013-06-15T01:53:18-04:00","bumped":true,"bumped_at":"2013-06-15T01:53:18-04:00","unseen":false,"title":"Expand topic details button not always necessary","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7449,"fancy_title":"Categories view constantly resorting","slug":"categories-view-constantly-resorting","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-06-13T12:27:55-04:00","last_posted_at":"2013-06-14T05:37:27-04:00","bumped":true,"bumped_at":"2013-06-14T05:37:27-04:00","unseen":false,"title":"Categories view constantly resorting","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7400,"fancy_title":"Adding “developer” labels to the post avatars","slug":"adding-developer-labels-to-the-post-avatars","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1061/8a6ac964893019ea.png","created_at":"2013-06-11T22:14:03-04:00","last_posted_at":"2013-06-13T04:57:29-04:00","bumped":true,"bumped_at":"2013-06-13T04:57:29-04:00","unseen":false,"title":"Adding \"developer\" labels to the post avatars","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":38,"topics_week":3,"topics_month":11,"topics_year":38,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","description_excerpt":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","featured_user_ids":[1,2839,2600,32,2664],"topics":[{"id":7461,"fancy_title":"Wordpress to Discourse importer!","slug":"wordpress-to-discourse-importer","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-06-13T17:58:43-04:00","last_posted_at":"2013-06-19T23:17:47-04:00","bumped":true,"bumped_at":"2013-06-19T23:17:47-04:00","unseen":false,"title":"Wordpress to Discourse importer!","pinned":false,"visible":true,"closed":false,"archived":false},{"id":3395,"fancy_title":"Installing Discourse on Ubuntu 12.10 and Digital Ocean","slug":"installing-discourse-on-ubuntu-12-10-and-digital-ocean","posts_count":112,"reply_count":82,"highest_post_number":112,"image_url":null,"created_at":"2013-02-19T00:48:11-05:00","last_posted_at":"2013-06-18T19:28:40-04:00","bumped":true,"bumped_at":"2013-06-18T19:28:40-04:00","unseen":false,"title":"Installing Discourse on Ubuntu 12.10 and Digital Ocean","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7582,"fancy_title":"Twitter login with Passenger + Varnish - quick lessons learned","slug":"twitter-login-with-passenger-varnish-quick-lessons-learned","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-17T19:46:31-04:00","last_posted_at":"2013-06-17T20:11:08-04:00","bumped":true,"bumped_at":"2013-06-17T20:11:08-04:00","unseen":false,"title":"Twitter login with Passenger + Varnish - quick lessons learned","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7531,"fancy_title":"Building a new community, why you need a blog as a front page?","slug":"building-a-new-community-why-you-need-a-blog-as-a-front-page","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2013-06-16T11:05:10-04:00","last_posted_at":"2013-06-17T13:21:54-04:00","bumped":true,"bumped_at":"2013-06-17T13:21:54-04:00","unseen":false,"title":"Building a new community, why you need a blog as a front page?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2349,"fancy_title":"Installing Discourse on Debian","slug":"installing-discourse-on-debian","posts_count":94,"reply_count":69,"highest_post_number":94,"image_url":null,"created_at":"2013-02-08T02:43:23-05:00","last_posted_at":"2013-06-17T11:52:06-04:00","bumped":true,"bumped_at":"2013-06-17T11:52:06-04:00","unseen":false,"title":"Installing Discourse on Debian","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6089,"fancy_title":"Import posts from Facebook group into Discourse","slug":"import-posts-from-facebook-group-into-discourse","posts_count":15,"reply_count":9,"highest_post_number":15,"image_url":"http://meta.discourse.org/uploads/meta_discourse/864/a39dd8d9b5a7768a.png","created_at":"2013-04-22T17:27:54-04:00","last_posted_at":"2013-06-17T05:40:11-04:00","bumped":true,"bumped_at":"2013-06-17T05:40:11-04:00","unseen":false,"title":"Import posts from Facebook group into Discourse","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":28,"topics_week":2,"topics_month":3,"topics_year":28,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility. ","description_excerpt":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.","featured_user_ids":[1,32,714,810,8],"topics":[{"id":7534,"fancy_title":"Has anybody created themes for Discourse?","slug":"has-anybody-created-themes-for-discourse","posts_count":15,"reply_count":13,"highest_post_number":15,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1114/a1a6f1260ebcb974.png","created_at":"2013-06-16T12:19:26-04:00","last_posted_at":"2013-06-17T14:47:00-04:00","bumped":true,"bumped_at":"2013-06-17T14:53:17-04:00","unseen":false,"title":"Has anybody created themes for Discourse?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7464,"fancy_title":"CSS documentation?","slug":"css-documentation","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-06-13T18:25:19-04:00","last_posted_at":"2013-06-14T05:05:14-04:00","bumped":true,"bumped_at":"2013-06-14T05:05:14-04:00","unseen":false,"title":"CSS documentation?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5689,"fancy_title":"Wordpress plugin to include latest topics as a sidebar?","slug":"wordpress-plugin-to-include-latest-topics-as-a-sidebar","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2013-04-07T16:08:21-04:00","last_posted_at":"2013-06-12T14:10:44-04:00","bumped":true,"bumped_at":"2013-06-12T14:10:44-04:00","unseen":false,"title":"Wordpress plugin to include latest topics as a sidebar?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":531,"fancy_title":"Discourse and Wordpress Integration","slug":"discourse-and-wordpress-integration","posts_count":57,"reply_count":50,"highest_post_number":59,"image_url":null,"created_at":"2013-02-05T18:56:37-05:00","last_posted_at":"2013-06-10T17:35:34-04:00","bumped":true,"bumped_at":"2013-06-10T17:35:34-04:00","unseen":false,"title":"Discourse and Wordpress Integration","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7213,"fancy_title":"Discourse as a Job Portal","slug":"discourse-as-a-job-portal","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":null,"created_at":"2013-06-06T04:43:59-04:00","last_posted_at":"2013-06-07T14:23:22-04:00","bumped":true,"bumped_at":"2013-06-07T14:23:22-04:00","unseen":false,"title":"Discourse as a Job Portal","pinned":false,"visible":true,"closed":false,"archived":false},{"id":31,"fancy_title":"What is the most awesome plugin for Discourse, that does not yet exist?","slug":"what-is-the-most-awesome-plugin-for-discourse-that-does-not-yet-exist","posts_count":153,"reply_count":105,"highest_post_number":154,"image_url":null,"created_at":"2013-02-03T06:43:18-05:00","last_posted_at":"2013-06-03T08:41:19-04:00","bumped":true,"bumped_at":"2013-06-03T08:41:19-04:00","unseen":false,"title":"What is the most awesome plugin for Discourse, that does not yet exist?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":8,"name":"hosting","color":"25AAE1","text_color":"FFFFFF","slug":"hosting","topic_count":41,"topics_week":1,"topics_month":9,"topics_year":41,"description":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","description_excerpt":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","featured_user_ids":[1,32,2291,1674,2839],"topics":[{"id":7595,"fancy_title":"Installing Discourse on AppFog","slug":"installing-discourse-on-appfog","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-18T11:43:50-04:00","last_posted_at":"2013-06-18T11:43:51-04:00","bumped":true,"bumped_at":"2013-06-18T11:43:51-04:00","unseen":false,"title":"Installing Discourse on AppFog","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4864,"fancy_title":"Discourse behind Varnish?","slug":"discourse-behind-varnish","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-03-18T07:48:24-04:00","last_posted_at":"2013-06-16T12:12:47-04:00","bumped":true,"bumped_at":"2013-06-16T12:12:47-04:00","unseen":false,"title":"Discourse behind Varnish?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6783,"fancy_title":"Installation instructions for Ubuntu","slug":"installation-instructions-for-ubuntu","posts_count":33,"reply_count":26,"highest_post_number":33,"image_url":null,"created_at":"2013-05-22T00:53:38-04:00","last_posted_at":"2013-06-15T18:17:55-04:00","bumped":true,"bumped_at":"2013-06-15T18:17:55-04:00","unseen":false,"title":"Installation instructions for Ubuntu","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6779,"fancy_title":"Storing Images in the cloud","slug":"storing-images-in-the-cloud","posts_count":14,"reply_count":8,"highest_post_number":14,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/926/05bfcce4f39b1d06.png","created_at":"2013-05-21T19:56:32-04:00","last_posted_at":"2013-06-11T16:48:43-04:00","bumped":true,"bumped_at":"2013-06-11T16:48:43-04:00","unseen":false,"title":"Storing Images in the cloud","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7284,"fancy_title":"Meta.discourse.org stats?","slug":"meta-discourse-org-stats","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-08T03:16:26-04:00","last_posted_at":"2013-06-08T13:58:53-04:00","bumped":true,"bumped_at":"2013-06-08T13:58:53-04:00","unseen":false,"title":"Meta.discourse.org stats?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6992,"fancy_title":"Has anyone used webfaction for discourse?","slug":"has-anyone-used-webfaction-for-discourse","posts_count":7,"reply_count":6,"highest_post_number":10,"image_url":null,"created_at":"2013-05-29T11:41:50-04:00","last_posted_at":"2013-06-01T11:28:29-04:00","bumped":true,"bumped_at":"2013-06-01T11:28:29-04:00","unseen":false,"title":"Has anyone used webfaction for discourse?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":61,"topics_week":1,"topics_month":5,"topics_year":61,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","description_excerpt":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","featured_user_ids":[32,1,38,2128,811],"topics":[{"id":5249,"fancy_title":"What is “Meta”?","slug":"what-is-meta","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-03-25T18:00:52-04:00","last_posted_at":"2013-03-25T18:00:56-04:00","bumped":false,"bumped_at":"2013-03-25T18:00:52-04:00","unseen":false,"title":"What is \"Meta\"?","pinned":true,"excerpt":"What is "Meta"?\n\nMeta means discussion of the discussion itself instead of the actual topic of the discussion. For example, discussions about... \n\n\nThe style of discussion.\nThe participants in the discussion.\nThe setting…","visible":true,"closed":false,"archived":false},{"id":1421,"fancy_title":"How do I send people invites?","slug":"how-do-i-send-people-invites","posts_count":13,"reply_count":10,"highest_post_number":13,"image_url":null,"created_at":"2013-02-06T11:28:45-05:00","last_posted_at":"2013-06-20T05:34:30-04:00","bumped":true,"bumped_at":"2013-06-20T05:34:30-04:00","unseen":false,"title":"How do I send people invites?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":3098,"fancy_title":"Ember and SEO challenges regarding discourse.org","slug":"ember-and-seo-challenges-regarding-discourse-org","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-02-14T13:40:31-05:00","last_posted_at":"2013-06-20T00:30:18-04:00","bumped":true,"bumped_at":"2013-06-20T00:30:18-04:00","unseen":false,"title":"Ember and SEO challenges regarding discourse.org","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7618,"fancy_title":"New posts, read posts, unread posts - I like this","slug":"new-posts-read-posts-unread-posts-i-like-this","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":"http://cdn.discourse.org/assets/emoji/wink2.png","created_at":"2013-06-18T21:21:00-04:00","last_posted_at":"2013-06-19T23:10:46-04:00","bumped":true,"bumped_at":"2013-06-19T23:10:46-04:00","unseen":false,"title":"New posts, read posts, unread posts - I like this","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6633,"fancy_title":"Discourse.org website is not available in Turkey","slug":"discourse-org-website-is-not-available-in-turkey","posts_count":18,"reply_count":10,"highest_post_number":18,"image_url":null,"created_at":"2013-05-15T05:40:32-04:00","last_posted_at":"2013-06-16T20:37:29-04:00","bumped":true,"bumped_at":"2013-06-16T20:37:29-04:00","unseen":false,"title":"Discourse.org website is not available in Turkey","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7431,"fancy_title":"Embedded images are not loading for me","slug":"embedded-images-are-not-loading-for-me","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-06-12T23:37:29-04:00","last_posted_at":"2013-06-12T23:41:12-04:00","bumped":true,"bumped_at":"2013-06-12T23:41:12-04:00","unseen":false,"title":"Embedded images are not loading for me","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":7,"topics_week":1,"topics_month":2,"topics_year":7,"description":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","description_excerpt":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","featured_user_ids":[32,1,5468,2471,4217],"topics":[{"id":7478,"fancy_title":"Discourse on Ubuntu: Video Walkthrough","slug":"discourse-on-ubuntu-video-walkthrough","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-14T10:47:53-04:00","last_posted_at":"2013-06-17T10:55:31-04:00","bumped":true,"bumped_at":"2013-06-17T10:55:31-04:00","unseen":false,"title":"Discourse on Ubuntu: Video Walkthrough","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5751,"fancy_title":"Discourse as Your First Rails App","slug":"discourse-as-your-first-rails-app","posts_count":43,"reply_count":31,"highest_post_number":48,"image_url":null,"created_at":"2013-04-09T19:08:33-04:00","last_posted_at":"2013-06-11T19:00:14-04:00","bumped":true,"bumped_at":"2013-06-13T05:22:30-04:00","unseen":false,"title":"Discourse as Your First Rails App","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5575,"fancy_title":"Our First Partner: How-To Geek","slug":"our-first-partner-how-to-geek","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-03T18:42:46-04:00","last_posted_at":"2013-06-07T19:27:46-04:00","bumped":true,"bumped_at":"2013-06-07T19:27:46-04:00","unseen":false,"title":"Our First Partner: How-To Geek","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5898,"fancy_title":"The Discourse Servers","slug":"the-discourse-servers","posts_count":29,"reply_count":21,"highest_post_number":29,"image_url":null,"created_at":"2013-04-15T15:19:09-04:00","last_posted_at":"2013-05-30T15:44:01-04:00","bumped":true,"bumped_at":"2013-05-30T15:44:01-04:00","unseen":false,"title":"The Discourse Servers","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6744,"fancy_title":"Your Online Clubhouse","slug":"your-online-clubhouse","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-05-20T16:26:44-04:00","last_posted_at":"2013-05-23T12:07:47-04:00","bumped":true,"bumped_at":"2013-05-23T12:07:47-04:00","unseen":false,"title":"Your Online Clubhouse","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5366,"fancy_title":"Forums, As Seen On TV","slug":"forums-as-seen-on-tv","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"http://blog.discourse.org/wp-uploads/2013/03/30-rock-forums-1.jpg","created_at":"2013-03-28T16:53:41-04:00","last_posted_at":"2013-04-19T16:20:08-04:00","bumped":true,"bumped_at":"2013-04-19T16:20:08-04:00","unseen":false,"title":"Forums, As Seen On TV","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":4,"topics_week":0,"topics_month":3,"topics_year":4,"description":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","description_excerpt":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","featured_user_ids":[1263,406,5460,32,2399],"topics":[{"id":7305,"fancy_title":"I would like to hire someone to install discourse on my site","slug":"i-would-like-to-hire-someone-to-install-discourse-on-my-site","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-08T18:32:07-04:00","last_posted_at":"2013-06-09T00:27:21-04:00","bumped":true,"bumped_at":"2013-06-09T00:27:21-04:00","unseen":false,"title":"I would like to hire someone to install discourse on my site","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7221,"fancy_title":"I want discourse for small business","slug":"i-want-discourse-for-small-business","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-06T09:05:43-04:00","last_posted_at":"2013-06-06T19:52:47-04:00","bumped":true,"bumped_at":"2013-06-06T19:52:47-04:00","unseen":false,"title":"I want discourse for small business","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7054,"fancy_title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","slug":"contract-available-web-developer-ror-js-node-js-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-05-31T19:30:52-04:00","last_posted_at":"2013-05-31T19:30:52-04:00","bumped":false,"bumped_at":"2013-05-31T19:30:52-04:00","unseen":false,"title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5409,"fancy_title":"Looking for a Discourse specialist !!","slug":"looking-for-a-discourse-specialist","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-03-30T02:15:56-04:00","last_posted_at":"2013-03-30T02:15:56-04:00","bumped":false,"bumped_at":"2013-03-30T02:15:56-04:00","unseen":false,"title":"Looking for a Discourse specialist !!","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":38,"topics_week":0,"topics_month":1,"topics_year":38,"description":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","description_excerpt":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","featured_user_ids":[32,1,4,4263,2465],"topics":[{"id":6724,"fancy_title":"Where is this development roadmap?","slug":"where-is-this-development-roadmap","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2013-05-19T15:15:19-04:00","last_posted_at":"2013-06-17T11:03:07-04:00","bumped":true,"bumped_at":"2013-06-17T11:03:07-04:00","unseen":false,"title":"Where is this development roadmap?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2408,"fancy_title":"Private Discourse Forum","slug":"private-discourse-forum","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":null,"created_at":"2013-02-08T08:25:22-05:00","last_posted_at":"2013-06-13T04:49:27-04:00","bumped":true,"bumped_at":"2013-06-13T04:49:27-04:00","unseen":false,"title":"Private Discourse Forum","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7378,"fancy_title":"Discourse Release Announcements for each tagged version release","slug":"discourse-release-announcements-for-each-tagged-version-release","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-11T10:31:03-04:00","last_posted_at":"2013-06-12T02:18:33-04:00","bumped":true,"bumped_at":"2013-06-12T02:18:33-04:00","unseen":false,"title":"Discourse Release Announcements for each tagged version release","pinned":false,"visible":true,"closed":false,"archived":false},{"id":3059,"fancy_title":"Two different unread counts","slug":"two-different-unread-counts","posts_count":8,"reply_count":6,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/266/screen_shot_20130213_at_11_32_07_pm.png","created_at":"2013-02-14T02:37:50-05:00","last_posted_at":"2013-03-24T15:40:45-04:00","bumped":true,"bumped_at":"2013-06-04T18:20:22-04:00","unseen":false,"title":"Two different unread counts","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2724,"fancy_title":"What about the spam problem?","slug":"what-about-the-spam-problem","posts_count":8,"reply_count":3,"highest_post_number":8,"image_url":null,"created_at":"2013-02-11T00:58:15-05:00","last_posted_at":"2013-05-29T19:04:48-04:00","bumped":true,"bumped_at":"2013-05-29T19:04:48-04:00","unseen":false,"title":"What about the spam problem?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4546,"fancy_title":"What is a onebox?","slug":"what-is-a-onebox","posts_count":11,"reply_count":7,"highest_post_number":11,"image_url":"http://meta.discourse.org/users/stienman/avatar/40?__ws=meta.discourse.org","created_at":"2013-03-07T07:56:00-05:00","last_posted_at":"2013-05-22T16:34:11-04:00","bumped":true,"bumped_at":"2013-05-22T16:34:11-04:00","unseen":false,"title":"What is a onebox?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":11,"name":"login","color":"edb400","text_color":"FFFFFF","slug":"login","topic_count":15,"topics_week":0,"topics_month":1,"topics_year":15,"description":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","description_excerpt":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","featured_user_ids":[32,2,1,4939,3507],"topics":[{"id":6869,"fancy_title":"Force use of an authentication provider","slug":"force-use-of-an-authentication-provider","posts_count":21,"reply_count":16,"highest_post_number":21,"image_url":null,"created_at":"2013-05-24T15:26:41-04:00","last_posted_at":"2013-06-15T16:58:09-04:00","bumped":true,"bumped_at":"2013-06-15T16:58:09-04:00","unseen":false,"title":"Force use of an authentication provider","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5800,"fancy_title":"UTF-8 to webalized char set transliteration for Facebook login","slug":"utf-8-to-webalized-char-set-transliteration-for-facebook-login","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-04-11T13:58:56-04:00","last_posted_at":"2013-04-11T13:58:56-04:00","bumped":false,"bumped_at":"2013-04-11T13:58:56-04:00","unseen":false,"title":"UTF-8 to webalized char set transliteration for Facebook login","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4011,"fancy_title":"I can’t login using my password","slug":"i-can-t-login-using-my-password","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-02-25T06:47:42-05:00","last_posted_at":"2013-03-13T19:36:48-04:00","bumped":true,"bumped_at":"2013-03-13T19:36:44-04:00","unseen":false,"title":"I can't login using my password","pinned":false,"visible":true,"closed":false,"archived":true},{"id":4738,"fancy_title":"Login support for browser password managers","slug":"login-support-for-browser-password-managers","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-03-13T17:55:29-04:00","last_posted_at":"2013-03-13T19:11:56-04:00","bumped":true,"bumped_at":"2013-03-13T19:11:56-04:00","unseen":false,"title":"Login support for browser password managers","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2257,"fancy_title":"Alternative (non-ajax) way to login, so that browser password manager can save the login credentials","slug":"alternative-non-ajax-way-to-login-so-that-browser-password-manager-can-save-the-login-credentials","posts_count":9,"reply_count":4,"highest_post_number":9,"image_url":null,"created_at":"2013-02-07T17:05:37-05:00","last_posted_at":"2013-03-13T19:06:28-04:00","bumped":true,"bumped_at":"2013-03-13T19:06:23-04:00","unseen":false,"title":"Alternative (non-ajax) way to login, so that browser password manager can save the login credentials","pinned":false,"visible":true,"closed":false,"archived":true},{"id":4473,"fancy_title":"Log in doesn’t work correctly when behind a proxy","slug":"log-in-doesn-t-work-correctly-when-behind-a-proxy","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-03-05T10:38:08-05:00","last_posted_at":"2013-03-05T10:38:08-05:00","bumped":false,"bumped_at":"2013-03-05T10:38:08-05:00","unseen":false,"title":"Log in doesn't work correctly when behind a proxy","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"topics_week":0,"topics_month":0,"topics_year":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","description_excerpt":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","featured_user_ids":[32,2,704,461,1566],"topics":[{"id":6547,"fancy_title":"Where to get discourse_org_access_key?","slug":"where-to-get-discourse-org-access-key","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-05-10T22:06:08-04:00","last_posted_at":"2013-06-18T11:49:18-04:00","bumped":true,"bumped_at":"2013-06-18T11:49:18-04:00","unseen":false,"title":"Where to get discourse_org_access_key?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":424,"fancy_title":"What are the ‘consequences’ of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":33,"reply_count":32,"highest_post_number":33,"image_url":null,"created_at":"2013-02-05T17:37:52-05:00","last_posted_at":"2013-05-17T11:28:00-04:00","bumped":true,"bumped_at":"2013-06-12T13:22:10-04:00","unseen":false,"title":"What are the 'consequences' of changing your name?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2544,"fancy_title":"Discourse central hub questions","slug":"discourse-central-hub-questions","posts_count":49,"reply_count":41,"highest_post_number":49,"image_url":null,"created_at":"2013-02-09T04:28:21-05:00","last_posted_at":"2013-05-28T12:15:25-04:00","bumped":true,"bumped_at":"2013-05-28T12:15:25-04:00","unseen":false,"title":"Discourse central hub questions","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5664,"fancy_title":"Discourse Hub nickname uniqueness not working?","slug":"discourse-hub-nickname-uniqueness-not-working","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-06T03:40:11-04:00","last_posted_at":"2013-04-09T10:56:46-04:00","bumped":true,"bumped_at":"2013-04-09T10:56:46-04:00","unseen":false,"title":"Discourse Hub nickname uniqueness not working?","pinned":false,"visible":true,"closed":false,"archived":false}]}]}}; \ No newline at end of file +Discourse.URL_FIXTURES["/latest.json"] = {"categories":[{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":330,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","topic_url":"/t/category-definition-for-support/389","hotness":5.0,"secure":false},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":8,"description":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","topic_url":"/t/category-definition-for-blog/5250","hotness":5.0,"secure":false},{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":387,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"secure":false},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":174,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","topic_url":"/t/category-definition-for-dev/1026","hotness":5.0,"secure":false},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":64,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","topic_url":"/t/category-definition-for-meta/24","hotness":5.0,"secure":false}],"users":[{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":14,"username":"clay","avatar_template":"https://www.gravatar.com/avatar/e371bbd32ba2e9b27842e60ef5952d47.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":5911,"username":"renosqq","avatar_template":"https://www.gravatar.com/avatar/e5c3556fed693610a7bb48086c56fe48.png?s={size}&r=pg&d=identicon"},{"id":2471,"username":"robconery","avatar_template":"https://www.gravatar.com/avatar/31b18bc48108bc410884022764dbeec6.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":5924,"username":"BalajiSi","avatar_template":"https://www.gravatar.com/avatar/aa4bb5e082dfd263924c7159bcf0953e.png?s={size}&r=pg&d=identicon"},{"id":5293,"username":"nick12377","avatar_template":"https://www.gravatar.com/avatar/de9a910f6c145938e047f77a524df50b.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":714,"username":"jcolebrand","avatar_template":"https://www.gravatar.com/avatar/c4cca9bfec5d5e77f625d9fbe8e37a41.png?s={size}&r=pg&d=identicon"},{"id":1683,"username":"mc10","avatar_template":"https://www.gravatar.com/avatar/ef9594f392dda5a64fd8ca7c74873f26.png?s={size}&r=pg&d=identicon"},{"id":811,"username":"jpeg","avatar_template":"https://www.gravatar.com/avatar/4a214d4a12b7223b61ec36c7aa224c97.png?s={size}&r=pg&d=identicon"},{"id":2876,"username":"SBauch","avatar_template":"https://www.gravatar.com/avatar/9f9c97c5ef6915fb25af52ab3d51a06e.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":3192,"username":"patternicity","avatar_template":"https://www.gravatar.com/avatar/35f1f1927f10bd8f975325d440f6a77c.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon"},{"id":175,"username":"David","avatar_template":"https://www.gravatar.com/avatar/ec7fa1d9cb0f083461f9986f710d0892.png?s={size}&r=pg&d=identicon"},{"id":1300,"username":"michael","avatar_template":"https://www.gravatar.com/avatar/2c3582415f40a963480414ed98dec5da.png?s={size}&r=pg&d=identicon"},{"id":2678,"username":"nverba","avatar_template":"https://www.gravatar.com/avatar/7d507374e7f991e3eb919d21b1812a0b.png?s={size}&r=pg&d=identicon"},{"id":3325,"username":"swrobel","avatar_template":"https://www.gravatar.com/avatar/04ed2b23acc1400315dd1fb5f364b065.png?s={size}&r=pg&d=identicon"},{"id":1496,"username":"cfstras","avatar_template":"https://www.gravatar.com/avatar/18c103ae1020a5a9ceefe80ae83af5d5.png?s={size}&r=pg&d=identicon"},{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":4529,"username":"deweydb","avatar_template":"https://www.gravatar.com/avatar/22f56e188ab515458522c3d2fb2214a5.png?s={size}&r=pg&d=identicon"},{"id":5428,"username":"abbat","avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon"},{"id":4981,"username":"raejin","avatar_template":"https://www.gravatar.com/avatar/9fd2b1edcc1b2791eac165ccb334f468.png?s={size}&r=pg&d=identicon"},{"id":1582,"username":"rubydoob","avatar_template":"https://www.gravatar.com/avatar/9af868b673e089e603b242c995e5593a.png?s={size}&r=pg&d=identicon"},{"id":1412,"username":"jbn","avatar_template":"https://www.gravatar.com/avatar/9397d9dd4c4f2084efd0fc02f88ca3a2.png?s={size}&r=pg&d=identicon"},{"id":1216,"username":"Vilx","avatar_template":"https://www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon"},{"id":5108,"username":"djensen47","avatar_template":"https://www.gravatar.com/avatar/04e8c634e5ee0fd074f78f3bad6eb5b3.png?s={size}&r=pg&d=identicon"},{"id":3695,"username":"novemberkilo","avatar_template":"https://www.gravatar.com/avatar/35bae7b4a1c41762e6cc252ee5198fff.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":4851,"username":"jab","avatar_template":"https://www.gravatar.com/avatar/14f382feb5f0dd3d3700edf8d6156aa9.png?s={size}&r=pg&d=identicon"},{"id":5902,"username":"Nition","avatar_template":"https://www.gravatar.com/avatar/676f44a4d33119adb330c991e5ad3a93.png?s={size}&r=pg&d=identicon"},{"id":5912,"username":"jbruni","avatar_template":"https://www.gravatar.com/avatar/27dacda91150eca332526bf8a8ee7e03.png?s={size}&r=pg&d=identicon"},{"id":4743,"username":"fierce","avatar_template":"https://www.gravatar.com/avatar/6b657bf787d60c36db5865d293c5650e.png?s={size}&r=pg&d=identicon"},{"id":5821,"username":"ven88","avatar_template":"https://www.gravatar.com/avatar/39fc4d1c6dcefe9c1ae9730f99c65af7.png?s={size}&r=pg&d=identicon"},{"id":5450,"username":"mfeckie","avatar_template":"https://www.gravatar.com/avatar/c247d50c623c3bf6257ad11e08f732f1.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":5270,"username":"Nedal","avatar_template":"https://www.gravatar.com/avatar/fb74b7ff14d0eae68ca8992760133187.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":3594,"username":"edv4rd0","avatar_template":"https://www.gravatar.com/avatar/bccbd7d8f3c46cf7eec5f99795f12c74.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/latest.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":1,"fancy_title":"Welcome to meta.discourse.org","slug":"welcome-to-meta-discourse-org","posts_count":5,"reply_count":5,"highest_post_number":23,"image_url":null,"created_at":"2013-01-31T23:52:28-05:00","last_posted_at":"2013-02-07T16:50:41-05:00","bumped":true,"bumped_at":"2013-02-07T11:57:34-05:00","unseen":false,"title":"Welcome to meta.discourse.org","pinned":true,"excerpt":"Welcome to meta, the official site for discussing the next-gen open source Discourse forum software. You'll find topics on features, bugs, hosting, development, and general support here. \n\nDiscourse is early beta softwar…","visible":true,"closed":true,"archived":false,"views":9856,"like_count":87,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":19},{"extras":null,"description":"Frequent Poster","user_id":14},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8077,"fancy_title":"This title should be cleared out2","slug":"this-title-should-be-cleared-out2","posts_count":6,"reply_count":0,"highest_post_number":6,"image_url":null,"created_at":"2013-07-04T13:15:38-04:00","last_posted_at":"2013-07-04T13:42:16-04:00","bumped":true,"bumped_at":"2013-07-04T13:42:16-04:00","unseen":false,"title":"This title should be cleared out2","pinned":false,"visible":true,"closed":false,"archived":false,"views":2,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":19}]},{"id":8076,"fancy_title":"Okay this is a new topic","slug":"okay-this-is-a-new-topic","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-04T13:10:02-04:00","last_posted_at":"2013-07-04T13:10:02-04:00","bumped":false,"bumped_at":"2013-07-04T13:10:02-04:00","unseen":false,"title":"Okay this is a new topic","pinned":false,"visible":true,"closed":false,"archived":false,"views":1,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":19}]},{"id":8075,"fancy_title":"Okay hello world2","slug":"okay-hello-world2","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-07-03T15:56:21-04:00","last_posted_at":"2013-07-04T13:09:40-04:00","bumped":true,"bumped_at":"2013-07-04T13:09:40-04:00","unseen":false,"title":"Okay hello world2","pinned":false,"visible":true,"closed":false,"archived":false,"views":2,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":19}]},{"id":8074,"fancy_title":"Bluepill setup problem","slug":"bluepill-setup-problem","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-03T12:38:33-04:00","last_posted_at":"2013-07-03T15:56:09-04:00","bumped":true,"bumped_at":"2013-07-03T15:56:09-04:00","unseen":false,"title":"Bluepill setup problem","pinned":false,"visible":true,"closed":false,"archived":false,"views":7,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":5911},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":5751,"fancy_title":"Discourse as Your First Rails App","slug":"discourse-as-your-first-rails-app","posts_count":47,"reply_count":33,"highest_post_number":53,"image_url":null,"created_at":"2013-04-09T19:08:33-04:00","last_posted_at":"2013-07-03T11:49:32-04:00","bumped":true,"bumped_at":"2013-07-03T11:49:32-04:00","unseen":false,"title":"Discourse as Your First Rails App","pinned":false,"visible":true,"closed":false,"archived":false,"views":2395,"like_count":46,"has_best_of":false,"archetype":"regular","category_id":13,"posters":[{"extras":null,"description":"Original Poster","user_id":32},{"extras":null,"description":"Most Posts","user_id":2471},{"extras":null,"description":"Frequent Poster","user_id":1995},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":5924}]},{"id":8073,"fancy_title":"New user allowed to upload images to your servers","slug":"new-user-allowed-to-upload-images-to-your-servers","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T11:37:19-04:00","last_posted_at":"2013-07-03T11:37:19-04:00","bumped":false,"bumped_at":"2013-07-03T11:37:19-04:00","unseen":false,"title":"New user allowed to upload images to your servers","pinned":false,"visible":true,"closed":false,"archived":false,"views":17,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5924}]},{"id":8055,"fancy_title":"Trying to Change the Email Delivery Method","slug":"trying-to-change-the-email-delivery-method","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1300/73f7f70325c9ab6b.png","created_at":"2013-07-02T23:05:08-04:00","last_posted_at":"2013-07-03T10:19:43-04:00","bumped":true,"bumped_at":"2013-07-03T10:19:43-04:00","unseen":false,"title":"Trying to Change the Email Delivery Method","pinned":false,"visible":true,"closed":false,"archived":false,"views":42,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":5293},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8071,"fancy_title":"Excerpt in user page links to old location after post was moved","slug":"excerpt-in-user-page-links-to-old-location-after-post-was-moved","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T10:03:35-04:00","last_posted_at":"2013-07-03T10:03:35-04:00","bumped":false,"bumped_at":"2013-07-03T10:03:35-04:00","unseen":false,"title":"Excerpt in user page links to old location after post was moved","pinned":false,"visible":true,"closed":false,"archived":false,"views":15,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4263}]},{"id":8070,"fancy_title":"In profile page, avatar shown twice for post that was liked before it was moved","slug":"in-profile-page-avatar-shown-twice-for-post-that-was-liked-before-it-was-moved","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1306/b79687223c1c1491.png","created_at":"2013-07-03T09:56:16-04:00","last_posted_at":"2013-07-03T09:56:16-04:00","bumped":false,"bumped_at":"2013-07-03T09:56:16-04:00","unseen":false,"title":"In profile page, avatar shown twice for post that was liked before it was moved","pinned":false,"visible":true,"closed":false,"archived":false,"views":18,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4263}]},{"id":4740,"fancy_title":"I want to be able to like this post, but I can’t since it’s frozen","slug":"i-want-to-be-able-to-like-this-post-but-i-cant-since-its-frozen","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&r=pg&d=identicon","created_at":"2013-03-13T18:05:18-04:00","last_posted_at":"2013-07-03T09:56:00-04:00","bumped":true,"bumped_at":"2013-07-03T09:56:00-04:00","unseen":false,"title":"I want to be able to like this post, but I can't since it's frozen","pinned":false,"visible":true,"closed":false,"archived":false,"views":137,"like_count":5,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":714},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":4263}]},{"id":1898,"fancy_title":"Add a “You” to “liked this” after liking a post","slug":"add-a-you-to-liked-this-after-liking-a-post","posts_count":13,"reply_count":8,"highest_post_number":13,"image_url":"https://i.minus.com/ibdov3L78bHk4u.png","created_at":"2013-02-06T23:45:51-05:00","last_posted_at":"2013-07-03T09:33:31-04:00","bumped":true,"bumped_at":"2013-07-03T09:44:13-04:00","unseen":false,"title":"Add a \"You\" to \"liked this\" after liking a post","pinned":false,"visible":true,"closed":false,"archived":false,"views":124,"like_count":6,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":1683},{"extras":null,"description":"Most Posts","user_id":811},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":4263}]},{"id":5564,"fancy_title":"Gravatar, Wordpress.com accounts, and custom avatars","slug":"gravatar-wordpress-com-accounts-and-custom-avatars","posts_count":15,"reply_count":11,"highest_post_number":17,"image_url":null,"created_at":"2013-04-03T12:25:51-04:00","last_posted_at":"2013-07-03T09:25:41-04:00","bumped":true,"bumped_at":"2013-07-03T09:25:41-04:00","unseen":false,"title":"Gravatar, Wordpress.com accounts, and custom avatars","pinned":false,"visible":true,"closed":false,"archived":false,"views":361,"like_count":41,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":2876},{"extras":null,"description":"Most Posts","user_id":38},{"extras":null,"description":"Frequent Poster","user_id":3192},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":4457}]},{"id":625,"fancy_title":"Anyone got this running on Heroku yet?","slug":"anyone-got-this-running-on-heroku-yet","posts_count":111,"reply_count":72,"highest_post_number":112,"image_url":null,"created_at":"2013-02-05T20:08:02-05:00","last_posted_at":"2013-07-03T09:24:25-04:00","bumped":true,"bumped_at":"2013-07-03T09:24:25-04:00","unseen":false,"title":"Anyone got this running on Heroku yet?","pinned":false,"visible":true,"closed":false,"archived":false,"views":4451,"like_count":100,"has_best_of":true,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":175},{"extras":null,"description":"Most Posts","user_id":1300},{"extras":null,"description":"Frequent Poster","user_id":2678},{"extras":null,"description":"Frequent Poster","user_id":3325},{"extras":"latest","description":"Most Recent Poster","user_id":2876}]},{"id":7956,"fancy_title":"Importing phpBB into Discourse","slug":"importing-phpbb-into-discourse","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s=40&r=pg&d=identicon","created_at":"2013-06-29T20:33:15-04:00","last_posted_at":"2013-07-03T08:53:19-04:00","bumped":true,"bumped_at":"2013-07-03T08:53:19-04:00","unseen":false,"title":"Importing phpBB into Discourse","pinned":false,"visible":true,"closed":false,"archived":false,"views":120,"like_count":9,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":1496},{"extras":null,"description":"Most Posts","user_id":3987},{"extras":"latest","description":"Most Recent Poster","user_id":4529}]},{"id":8066,"fancy_title":"Lang attribute in layouts (app/views/layouts)","slug":"lang-attribute-in-layouts-app-views-layouts","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T05:01:26-04:00","last_posted_at":"2013-07-03T05:01:26-04:00","bumped":false,"bumped_at":"2013-07-03T05:01:26-04:00","unseen":false,"title":"Lang attribute in layouts (app/views/layouts)","pinned":false,"visible":true,"closed":false,"archived":false,"views":17,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5428}]},{"id":8063,"fancy_title":"Noscript pagination absent for large topics","slug":"noscript-pagination-absent-for-large-topics","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1305/64c5292272936472.png","created_at":"2013-07-03T04:26:05-04:00","last_posted_at":"2013-07-03T04:51:57-04:00","bumped":true,"bumped_at":"2013-07-03T04:51:57-04:00","unseen":false,"title":"Noscript pagination absent for large topics","pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5428},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8060,"fancy_title":"Secure category dropdown not rendered","slug":"secure-category-dropdown-not-rendered","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1302/456cd3f77edbd489.png","created_at":"2013-07-03T02:08:29-04:00","last_posted_at":"2013-07-03T02:33:00-04:00","bumped":true,"bumped_at":"2013-07-03T02:33:00-04:00","unseen":false,"title":"Secure category dropdown not rendered","pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4981},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":1759,"fancy_title":"Is the upgrade path going to be smooth?","slug":"is-the-upgrade-path-going-to-be-smooth","posts_count":12,"reply_count":6,"highest_post_number":12,"image_url":null,"created_at":"2013-02-06T18:22:52-05:00","last_posted_at":"2013-07-03T02:14:25-04:00","bumped":true,"bumped_at":"2013-07-03T02:14:25-04:00","unseen":false,"title":"Is the upgrade path going to be smooth?","pinned":false,"visible":true,"closed":false,"archived":false,"views":4073,"like_count":19,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":1582},{"extras":null,"description":"Most Posts","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1412},{"extras":null,"description":"Frequent Poster","user_id":1216},{"extras":"latest","description":"Most Recent Poster","user_id":5108}]},{"id":8021,"fancy_title":"Feature: Mod manually sets a user’s trust level","slug":"feature-mod-manually-sets-a-users-trust-level","posts_count":13,"reply_count":11,"highest_post_number":13,"image_url":null,"created_at":"2013-07-02T05:45:47-04:00","last_posted_at":"2013-07-03T02:07:14-04:00","bumped":true,"bumped_at":"2013-07-03T02:07:14-04:00","unseen":false,"title":"Feature: Mod manually sets a user's trust level","pinned":false,"visible":true,"closed":false,"archived":false,"views":79,"like_count":9,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":3695},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":810},{"extras":"latest","description":"Most Recent Poster","user_id":38}]},{"id":6304,"fancy_title":"Proposal for a (hash) tagging feature","slug":"proposal-for-a-hash-tagging-feature","posts_count":37,"reply_count":23,"highest_post_number":38,"image_url":"https://www.gravatar.com/avatar/9420c2ef938f4857bb9c921836b243d4.png?s=40&r=pg&d=identicon","created_at":"2013-05-01T12:05:51-04:00","last_posted_at":"2013-07-03T02:07:01-04:00","bumped":true,"bumped_at":"2013-07-03T02:07:01-04:00","unseen":false,"title":"Proposal for a (hash) tagging feature","pinned":false,"visible":true,"closed":false,"archived":false,"views":583,"like_count":27,"has_best_of":false,"archetype":"regular","category_id":2,"posters":[{"extras":null,"description":"Original Poster","user_id":2876},{"extras":null,"description":"Most Posts","user_id":1353},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":4851},{"extras":"latest","description":"Most Recent Poster","user_id":5108}]},{"id":8050,"fancy_title":"Bitnami Amazon EC2 email setup","slug":"bitnami-amazon-ec2-email-setup","posts_count":6,"reply_count":5,"highest_post_number":7,"image_url":null,"created_at":"2013-07-02T19:36:58-04:00","last_posted_at":"2013-07-02T23:39:00-04:00","bumped":true,"bumped_at":"2013-07-03T00:48:10-04:00","unseen":false,"title":"Bitnami Amazon EC2 email setup","pinned":false,"visible":true,"closed":false,"archived":false,"views":47,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":5902},{"extras":"latest","description":"Most Recent Poster","user_id":4981}]},{"id":8042,"fancy_title":"Duplicated content: FAQ and Privacy appear twice!","slug":"duplicated-content-faq-and-privacy-appear-twice","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-07-02T16:06:09-04:00","last_posted_at":"2013-07-03T00:30:14-04:00","bumped":true,"bumped_at":"2013-07-03T00:30:14-04:00","unseen":false,"title":"Duplicated content: FAQ and Privacy appear twice!","pinned":false,"visible":true,"closed":false,"archived":false,"views":43,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":3,"posters":[{"extras":null,"description":"Original Poster","user_id":5912},{"extras":null,"description":"Most Posts","user_id":810},{"extras":null,"description":"Frequent Poster","user_id":4743},{"extras":null,"description":"Frequent Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8053,"fancy_title":"Unable to delete categories","slug":"unable-to-delete-categories","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/afc/214/c8c1cd9bc75_690x431.png","created_at":"2013-07-02T21:55:13-04:00","last_posted_at":"2013-07-02T23:20:41-04:00","bumped":true,"bumped_at":"2013-07-02T23:20:41-04:00","unseen":false,"title":"Unable to delete categories","pinned":false,"visible":true,"closed":false,"archived":false,"views":37,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5821},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8025,"fancy_title":"Autostart discourse on reboot","slug":"autostart-discourse-on-reboot","posts_count":5,"reply_count":5,"highest_post_number":6,"image_url":null,"created_at":"2013-07-02T08:08:36-04:00","last_posted_at":"2013-07-02T19:55:07-04:00","bumped":true,"bumped_at":"2013-07-02T19:55:07-04:00","unseen":false,"title":"Autostart discourse on reboot","pinned":false,"visible":true,"closed":false,"archived":false,"views":69,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5450},{"extras":null,"description":"Most Posts","user_id":3}]},{"id":8043,"fancy_title":"Sometime my categories load up sometime they dont","slug":"sometime-my-categories-load-up-sometime-they-dont","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/d32/10b/9ff4059f425_690x531.png","created_at":"2013-07-02T16:15:58-04:00","last_posted_at":"2013-07-02T19:49:41-04:00","bumped":true,"bumped_at":"2013-07-02T19:49:41-04:00","unseen":false,"title":"Sometime my categories load up sometime they dont","pinned":false,"visible":true,"closed":false,"archived":false,"views":31,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5270},{"extras":null,"description":"Most Posts","user_id":1}]},{"id":8047,"fancy_title":"Last read indicator doesn’t always update when scrolling to bottom","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-07-02T17:15:07-04:00","last_posted_at":"2013-07-02T19:26:12-04:00","bumped":true,"bumped_at":"2013-07-02T19:26:12-04:00","unseen":false,"title":"Last read indicator doesn't always update when scrolling to bottom","pinned":false,"visible":true,"closed":false,"archived":false,"views":39,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":4263},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":4457},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8036,"fancy_title":"Sending PMs or arbitrary notifications via API?","slug":"sending-pms-or-arbitrary-notifications-via-api","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-02T13:30:00-04:00","last_posted_at":"2013-07-02T19:08:22-04:00","bumped":true,"bumped_at":"2013-07-02T19:08:22-04:00","unseen":false,"title":"Sending PMs or arbitrary notifications via API?","pinned":false,"visible":true,"closed":false,"archived":false,"views":43,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":6,"posters":[{"extras":null,"description":"Original Poster","user_id":4743},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7981,"fancy_title":"User/workflow Related Changes","slug":"user-workflow-related-changes","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-30T18:47:10-04:00","last_posted_at":"2013-07-02T17:41:35-04:00","bumped":true,"bumped_at":"2013-07-02T17:41:35-04:00","unseen":false,"title":"User/workflow Related Changes","pinned":false,"visible":true,"closed":false,"archived":false,"views":59,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":null,"posters":[{"extras":null,"description":"Original Poster","user_id":3594},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":2}]},{"id":7987,"fancy_title":"Request: Likes td class in suggested topcs named like front page?","slug":"request-likes-td-class-in-suggested-topcs-named-like-front-page","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-30T21:41:07-04:00","last_posted_at":"2013-07-02T23:51:05-04:00","bumped":true,"bumped_at":"2013-07-02T17:15:59-04:00","unseen":false,"title":"Request: Likes td class in suggested topcs named like front page?","pinned":false,"visible":true,"closed":false,"archived":true,"views":45,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":7,"posters":[{"extras":null,"description":"Original Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":2},{"extras":"latest","description":"Most Recent Poster, Frequent Poster","user_id":32}]}]}}; +Discourse.URL_FIXTURES["/categories.json"] = {"featured_users":[{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":2600,"username":"NinjaFoodstuff","avatar_template":"https://www.gravatar.com/avatar/3709f34da1ff5433b41bc56df94dd453.png?s={size}&r=pg&d=identicon"},{"id":406,"username":"RGJ","avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon"},{"id":1353,"username":"sparr","avatar_template":"https://www.gravatar.com/avatar/7906663b1197829751673465948e0b05.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":8,"username":"geek","avatar_template":"https://www.gravatar.com/avatar/b0b1ce3a4e0a77abd157ec0309b72922.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":1274,"username":"binaryphile","avatar_template":"https://www.gravatar.com/avatar/82564a08aebae1de68bea8e3df61ef93.png?s={size}&r=pg&d=identicon"},{"id":2839,"username":"baus","avatar_template":"https://www.gravatar.com/avatar/57d4030570f672f515a7385cc74c8cfe.png?s={size}&r=pg&d=identicon"},{"id":2664,"username":"Odd_Bloke","avatar_template":"https://www.gravatar.com/avatar/af881deb1a7ef0a1f568e18cd967c0d3.png?s={size}&r=pg&d=identicon"},{"id":38,"username":"frandallfarmer","avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon"},{"id":2128,"username":"ultimape","avatar_template":"https://www.gravatar.com/avatar/6fe82efded2ee5e218e0452644a07e2e.png?s={size}&r=pg&d=identicon"},{"id":811,"username":"jpeg","avatar_template":"https://www.gravatar.com/avatar/4a214d4a12b7223b61ec36c7aa224c97.png?s={size}&r=pg&d=identicon"},{"id":2291,"username":"PabloC","avatar_template":"https://www.gravatar.com/avatar/82c793022ec1bce6ea7573bc27b2340b.png?s={size}&r=pg&d=identicon"},{"id":1674,"username":"colin","avatar_template":"https://www.gravatar.com/avatar/4cfb483116a822652d698dce303ec842.png?s={size}&r=pg&d=identicon"},{"id":1263,"username":"ChrisB","avatar_template":"https://www.gravatar.com/avatar/1d75aba12b3961894f93959b5b013de0.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":714,"username":"jcolebrand","avatar_template":"https://www.gravatar.com/avatar/c4cca9bfec5d5e77f625d9fbe8e37a41.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":5468,"username":"pixelBender67","avatar_template":"https://www.gravatar.com/avatar/4f4cc88cc2ebd747240c7bc53af99261.png?s={size}&r=pg&d=identicon"},{"id":4217,"username":"mshappe","avatar_template":"https://www.gravatar.com/avatar/36ffc752906110cd16e1746d5c95516f.png?s={size}&r=pg&d=identicon"},{"id":4939,"username":"stevebaer","avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon"},{"id":3507,"username":"mozCallahad","avatar_template":"https://www.gravatar.com/avatar/a2746e0bf42c3245bfd80dea9b3efb32.png?s={size}&r=pg&d=identicon"},{"id":4,"username":"stienman","avatar_template":"https://www.gravatar.com/avatar/281486f2a20201375414760dd347951d.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":2465,"username":"finid","avatar_template":"https://www.gravatar.com/avatar/989a7705a77732d888ddaff8b440fc3d.png?s={size}&r=pg&d=identicon"},{"id":5460,"username":"ned","avatar_template":"https://www.gravatar.com/avatar/bc5e09a5ce0a85bf02a3fceb9b0bfaf4.png?s={size}&r=pg&d=identicon"},{"id":2399,"username":"passionate","avatar_template":"https://www.gravatar.com/avatar/bcb2185dd24051bce727b29230a2c171.png?s={size}&r=pg&d=identicon"},{"id":704,"username":"AstonJ","avatar_template":"https://www.gravatar.com/avatar/03af361cc843bc56e95cb6c406d06f80.png?s={size}&r=pg&d=identicon"},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon"},{"id":1566,"username":"hamburglar","avatar_template":"https://www.gravatar.com/avatar/57b39f59fa025f64e173ba6dffb8f2f7.png?s={size}&r=pg&d=identicon"}],"category_list":{"can_create_category":false,"can_create_topic":false,"draft":null,"draft_key":"new_topic","draft_sequence":null,"categories":[{"id":6,"name":"support","color":"b99","text_color":"FFFFFF","slug":"support","topic_count":330,"topics_week":16,"topics_month":89,"topics_year":329,"description":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","description_excerpt":"Support on configuring, using, and installing Discourse. Not for software development related topics, but for admins and end users configuring and using Discourse.","featured_user_ids":[32,1,2,2600,406],"topics":[{"id":8074,"fancy_title":"Bluepill setup problem","slug":"bluepill-setup-problem","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-07-03T12:38:33-04:00","last_posted_at":"2013-07-03T15:56:09-04:00","bumped":true,"bumped_at":"2013-07-03T15:56:09-04:00","unseen":false,"title":"Bluepill setup problem","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8055,"fancy_title":"Trying to Change the Email Delivery Method","slug":"trying-to-change-the-email-delivery-method","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1300/73f7f70325c9ab6b.png","created_at":"2013-07-02T23:05:08-04:00","last_posted_at":"2013-07-03T10:19:43-04:00","bumped":true,"bumped_at":"2013-07-03T10:19:43-04:00","unseen":false,"title":"Trying to Change the Email Delivery Method","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7956,"fancy_title":"Importing phpBB into Discourse","slug":"importing-phpbb-into-discourse","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s=40&r=pg&d=identicon","created_at":"2013-06-29T20:33:15-04:00","last_posted_at":"2013-07-03T08:53:19-04:00","bumped":true,"bumped_at":"2013-07-03T08:53:19-04:00","unseen":false,"title":"Importing phpBB into Discourse","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8025,"fancy_title":"Autostart discourse on reboot","slug":"autostart-discourse-on-reboot","posts_count":5,"reply_count":5,"highest_post_number":6,"image_url":null,"created_at":"2013-07-02T08:08:36-04:00","last_posted_at":"2013-07-02T19:55:07-04:00","bumped":true,"bumped_at":"2013-07-02T19:55:07-04:00","unseen":false,"title":"Autostart discourse on reboot","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8043,"fancy_title":"Sometime my categories load up sometime they dont","slug":"sometime-my-categories-load-up-sometime-they-dont","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/d32/10b/9ff4059f425_690x531.png","created_at":"2013-07-02T16:15:58-04:00","last_posted_at":"2013-07-02T19:49:41-04:00","bumped":true,"bumped_at":"2013-07-02T19:49:41-04:00","unseen":false,"title":"Sometime my categories load up sometime they dont","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8036,"fancy_title":"Sending PMs or arbitrary notifications via API?","slug":"sending-pms-or-arbitrary-notifications-via-api","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-02T13:30:00-04:00","last_posted_at":"2013-07-02T19:08:22-04:00","bumped":true,"bumped_at":"2013-07-02T19:08:22-04:00","unseen":false,"title":"Sending PMs or arbitrary notifications via API?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"topics_week":15,"topics_month":66,"topics_year":401,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","description_excerpt":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","featured_user_ids":[32,1,1353,1995,8],"topics":[{"id":4740,"fancy_title":"I want to be able to like this post, but I can’t since it’s frozen","slug":"i-want-to-be-able-to-like-this-post-but-i-cant-since-its-frozen","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s=40&r=pg&d=identicon","created_at":"2013-03-13T18:05:18-04:00","last_posted_at":"2013-07-03T09:56:00-04:00","bumped":true,"bumped_at":"2013-07-03T09:56:00-04:00","unseen":false,"title":"I want to be able to like this post, but I can't since it's frozen","pinned":false,"visible":true,"closed":false,"archived":false},{"id":1898,"fancy_title":"Add a “You” to “liked this” after liking a post","slug":"add-a-you-to-liked-this-after-liking-a-post","posts_count":13,"reply_count":8,"highest_post_number":13,"image_url":"https://i.minus.com/ibdov3L78bHk4u.png","created_at":"2013-02-06T23:45:51-05:00","last_posted_at":"2013-07-03T09:33:31-04:00","bumped":true,"bumped_at":"2013-07-03T09:44:13-04:00","unseen":false,"title":"Add a \"You\" to \"liked this\" after liking a post","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5564,"fancy_title":"Gravatar, Wordpress.com accounts, and custom avatars","slug":"gravatar-wordpress-com-accounts-and-custom-avatars","posts_count":15,"reply_count":11,"highest_post_number":17,"image_url":null,"created_at":"2013-04-03T12:25:51-04:00","last_posted_at":"2013-07-03T09:25:41-04:00","bumped":true,"bumped_at":"2013-07-03T09:25:41-04:00","unseen":false,"title":"Gravatar, Wordpress.com accounts, and custom avatars","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8066,"fancy_title":"Lang attribute in layouts (app/views/layouts)","slug":"lang-attribute-in-layouts-app-views-layouts","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T05:01:26-04:00","last_posted_at":"2013-07-03T05:01:26-04:00","bumped":false,"bumped_at":"2013-07-03T05:01:26-04:00","unseen":false,"title":"Lang attribute in layouts (app/views/layouts)","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6304,"fancy_title":"Proposal for a (hash) tagging feature","slug":"proposal-for-a-hash-tagging-feature","posts_count":37,"reply_count":23,"highest_post_number":38,"image_url":"https://www.gravatar.com/avatar/9420c2ef938f4857bb9c921836b243d4.png?s=40&r=pg&d=identicon","created_at":"2013-05-01T12:05:51-04:00","last_posted_at":"2013-07-03T02:07:01-04:00","bumped":true,"bumped_at":"2013-07-03T02:07:01-04:00","unseen":false,"title":"Proposal for a (hash) tagging feature","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7965,"fancy_title":"Discourse plugin for static site generators like Jekyll or Octopress","slug":"discourse-plugin-for-static-site-generators-like-jekyll-or-octopress","posts_count":13,"reply_count":7,"highest_post_number":13,"image_url":null,"created_at":"2013-06-30T11:07:03-04:00","last_posted_at":"2013-07-02T09:48:30-04:00","bumped":true,"bumped_at":"2013-07-02T09:48:30-04:00","unseen":false,"title":"Discourse plugin for static site generators like Jekyll or Octopress","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":387,"topics_week":13,"topics_month":86,"topics_year":382,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","description_excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","featured_user_ids":[32,1,1995,2,19],"topics":[{"id":7288,"fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"title":"Digest mail ignores secure groups","pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That's because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false},{"id":8073,"fancy_title":"New user allowed to upload images to your servers","slug":"new-user-allowed-to-upload-images-to-your-servers","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T11:37:19-04:00","last_posted_at":"2013-07-03T11:37:19-04:00","bumped":false,"bumped_at":"2013-07-03T11:37:19-04:00","unseen":false,"title":"New user allowed to upload images to your servers","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8071,"fancy_title":"Excerpt in user page links to old location after post was moved","slug":"excerpt-in-user-page-links-to-old-location-after-post-was-moved","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T10:03:35-04:00","last_posted_at":"2013-07-03T10:03:35-04:00","bumped":false,"bumped_at":"2013-07-03T10:03:35-04:00","unseen":false,"title":"Excerpt in user page links to old location after post was moved","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8070,"fancy_title":"In profile page, avatar shown twice for post that was liked before it was moved","slug":"in-profile-page-avatar-shown-twice-for-post-that-was-liked-before-it-was-moved","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1306/b79687223c1c1491.png","created_at":"2013-07-03T09:56:16-04:00","last_posted_at":"2013-07-03T09:56:16-04:00","bumped":false,"bumped_at":"2013-07-03T09:56:16-04:00","unseen":false,"title":"In profile page, avatar shown twice for post that was liked before it was moved","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8063,"fancy_title":"Noscript pagination absent for large topics","slug":"noscript-pagination-absent-for-large-topics","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1305/64c5292272936472.png","created_at":"2013-07-03T04:26:05-04:00","last_posted_at":"2013-07-03T04:51:57-04:00","bumped":true,"bumped_at":"2013-07-03T04:51:57-04:00","unseen":false,"title":"Noscript pagination absent for large topics","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8060,"fancy_title":"Secure category dropdown not rendered","slug":"secure-category-dropdown-not-rendered","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1302/456cd3f77edbd489.png","created_at":"2013-07-03T02:08:29-04:00","last_posted_at":"2013-07-03T02:33:00-04:00","bumped":true,"bumped_at":"2013-07-03T02:33:00-04:00","unseen":false,"title":"Secure category dropdown not rendered","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":null,"name":"uncategorized","color":"AB9364","text_color":"FFFFFF","slug":"uncategorized","topic_count":183,"topics_week":8,"topics_month":24,"topics_year":183,"description":null,"description_excerpt":null,"is_uncategorized":true,"featured_user_ids":[],"topics":[{"id":8077,"fancy_title":"This title should be cleared out2","slug":"this-title-should-be-cleared-out2","posts_count":6,"reply_count":0,"highest_post_number":6,"image_url":null,"created_at":"2013-07-04T13:15:38-04:00","last_posted_at":"2013-07-04T13:42:16-04:00","bumped":true,"bumped_at":"2013-07-04T13:42:16-04:00","unseen":false,"title":"This title should be cleared out2","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8076,"fancy_title":"Okay this is a new topic","slug":"okay-this-is-a-new-topic","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-04T13:10:02-04:00","last_posted_at":"2013-07-04T13:10:02-04:00","bumped":false,"bumped_at":"2013-07-04T13:10:02-04:00","unseen":false,"title":"Okay this is a new topic","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8075,"fancy_title":"Okay hello world2","slug":"okay-hello-world2","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":null,"created_at":"2013-07-03T15:56:21-04:00","last_posted_at":"2013-07-04T13:09:40-04:00","bumped":true,"bumped_at":"2013-07-04T13:09:40-04:00","unseen":false,"title":"Okay hello world2","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8050,"fancy_title":"Bitnami Amazon EC2 email setup","slug":"bitnami-amazon-ec2-email-setup","posts_count":6,"reply_count":5,"highest_post_number":7,"image_url":null,"created_at":"2013-07-02T19:36:58-04:00","last_posted_at":"2013-07-02T23:39:00-04:00","bumped":true,"bumped_at":"2013-07-03T00:48:10-04:00","unseen":false,"title":"Bitnami Amazon EC2 email setup","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7981,"fancy_title":"User/workflow Related Changes","slug":"user-workflow-related-changes","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-30T18:47:10-04:00","last_posted_at":"2013-07-02T17:41:35-04:00","bumped":true,"bumped_at":"2013-07-02T17:41:35-04:00","unseen":false,"title":"User/workflow Related Changes","pinned":false,"visible":true,"closed":false,"archived":false},{"id":1975,"fancy_title":"If a thread is a question, then there should be an ability to highlight the answer","slug":"if-a-thread-is-a-question-then-there-should-be-an-ability-to-highlight-the-answer","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-02-07T02:16:10-05:00","last_posted_at":"2013-07-02T16:07:39-04:00","bumped":true,"bumped_at":"2013-07-02T16:19:18-04:00","unseen":false,"title":"If a thread is a question, then there should be an ability to highlight the answer","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":7,"name":"dev","color":"000","text_color":"FFFFFF","slug":"dev","topic_count":174,"topics_week":5,"topics_month":31,"topics_year":174,"description":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","description_excerpt":"This category is for topics related to hacking on Discourse: submitting pull requests, configuring development environments, coding conventions, and so forth.","featured_user_ids":[1,32,19,1274,1995],"topics":[{"id":3823,"fancy_title":"So, you want to help out with Discourse","slug":"so-you-want-to-help-out-with-discourse","posts_count":19,"reply_count":17,"highest_post_number":32,"image_url":null,"created_at":"2013-02-23T00:46:11-05:00","last_posted_at":"2013-06-05T21:09:56-04:00","bumped":true,"bumped_at":"2013-06-05T21:09:56-04:00","unseen":false,"title":"So, you want to help out with Discourse","pinned":true,"excerpt":"People are wondering, how it is they can help out with Discourse. \n\nWe have seen some chattering both here and on Github. \n\nI wanted to create a topic @eviltrout , @codinghorror and myself can keep up to date with clear…","visible":true,"closed":false,"archived":false},{"id":625,"fancy_title":"Anyone got this running on Heroku yet?","slug":"anyone-got-this-running-on-heroku-yet","posts_count":111,"reply_count":72,"highest_post_number":112,"image_url":null,"created_at":"2013-02-05T20:08:02-05:00","last_posted_at":"2013-07-03T09:24:25-04:00","bumped":true,"bumped_at":"2013-07-03T09:24:25-04:00","unseen":false,"title":"Anyone got this running on Heroku yet?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":1759,"fancy_title":"Is the upgrade path going to be smooth?","slug":"is-the-upgrade-path-going-to-be-smooth","posts_count":12,"reply_count":6,"highest_post_number":12,"image_url":null,"created_at":"2013-02-06T18:22:52-05:00","last_posted_at":"2013-07-03T02:14:25-04:00","bumped":true,"bumped_at":"2013-07-03T02:14:25-04:00","unseen":false,"title":"Is the upgrade path going to be smooth?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8021,"fancy_title":"Feature: Mod manually sets a user’s trust level","slug":"feature-mod-manually-sets-a-users-trust-level","posts_count":13,"reply_count":11,"highest_post_number":13,"image_url":null,"created_at":"2013-07-02T05:45:47-04:00","last_posted_at":"2013-07-03T02:07:14-04:00","bumped":true,"bumped_at":"2013-07-03T02:07:14-04:00","unseen":false,"title":"Feature: Mod manually sets a user's trust level","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7987,"fancy_title":"Request: Likes td class in suggested topcs named like front page?","slug":"request-likes-td-class-in-suggested-topcs-named-like-front-page","posts_count":5,"reply_count":1,"highest_post_number":5,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-30T21:41:07-04:00","last_posted_at":"2013-07-02T23:51:05-04:00","bumped":true,"bumped_at":"2013-07-02T17:15:59-04:00","unseen":false,"title":"Request: Likes td class in suggested topcs named like front page?","pinned":false,"visible":true,"closed":false,"archived":true},{"id":7955,"fancy_title":"Temporarily disabling E-Mail notifications","slug":"temporarily-disabling-e-mail-notifications","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-06-29T20:28:06-04:00","last_posted_at":"2013-06-30T19:42:18-04:00","bumped":true,"bumped_at":"2013-06-30T19:42:18-04:00","unseen":false,"title":"Temporarily disabling E-Mail notifications","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":10,"name":"howto","color":"76923C","text_color":"FFFFFF","slug":"howto","topic_count":42,"topics_week":3,"topics_month":9,"topics_year":42,"description":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","description_excerpt":"Tutorial topics that describe how to set up, configure, or install Discourse using a specific platform or environment.","featured_user_ids":[1,2839,2600,32,2664],"topics":[{"id":6561,"fancy_title":"Successfully daemonized sidekiq and clockwork on Ubuntu","slug":"successfully-daemonized-sidekiq-and-clockwork-on-ubuntu","posts_count":11,"reply_count":5,"highest_post_number":11,"image_url":null,"created_at":"2013-05-11T16:27:12-04:00","last_posted_at":"2013-07-02T08:03:27-04:00","bumped":true,"bumped_at":"2013-07-02T08:03:27-04:00","unseen":false,"title":"Successfully daemonized sidekiq and clockwork on Ubuntu","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7984,"fancy_title":"Discourse on Nginx + Passenger - an exhaustive howto","slug":"discourse-on-nginx-passenger-an-exhaustive-howto","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smiley.png","created_at":"2013-06-30T20:06:03-04:00","last_posted_at":"2013-07-01T13:23:18-04:00","bumped":true,"bumped_at":"2013-07-01T13:23:18-04:00","unseen":false,"title":"Discourse on Nginx + Passenger - an exhaustive howto","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7999,"fancy_title":"Create topic using API key and JSON calls","slug":"create-topic-using-api-key-and-json-calls","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-01T09:34:01-04:00","last_posted_at":"2013-07-01T09:34:01-04:00","bumped":true,"bumped_at":"2013-07-01T09:43:09-04:00","unseen":false,"title":"Create topic using API key and JSON calls","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7461,"fancy_title":"Wordpress to Discourse importer!","slug":"wordpress-to-discourse-importer","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-06-13T17:58:43-04:00","last_posted_at":"2013-06-29T23:22:23-04:00","bumped":true,"bumped_at":"2013-06-29T23:22:23-04:00","unseen":false,"title":"Wordpress to Discourse importer!","pinned":false,"visible":true,"closed":false,"archived":false},{"id":3447,"fancy_title":"Action mailer issue","slug":"action-mailer-issue","posts_count":11,"reply_count":4,"highest_post_number":11,"image_url":null,"created_at":"2013-02-19T13:04:28-05:00","last_posted_at":"2013-06-29T06:21:42-04:00","bumped":true,"bumped_at":"2013-06-29T06:21:42-04:00","unseen":false,"title":"Action mailer issue","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6963,"fancy_title":"How to CAS authenticate","slug":"how-to-cas-authenticate","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-05-28T20:19:57-04:00","last_posted_at":"2013-06-29T00:40:16-04:00","bumped":true,"bumped_at":"2013-06-29T00:40:16-04:00","unseen":false,"title":"How to CAS authenticate","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":3,"name":"meta","color":"aaa","text_color":"FFFFFF","slug":"meta","topic_count":64,"topics_week":2,"topics_month":5,"topics_year":64,"description":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","description_excerpt":"Discussion about meta.discourse.org itself, the organization of this forum about Discourse, how it works, and how we can improve this site.","featured_user_ids":[32,1,38,2128,811],"topics":[{"id":5249,"fancy_title":"What is “Meta”?","slug":"what-is-meta","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-03-25T18:00:52-04:00","last_posted_at":"2013-03-25T18:00:56-04:00","bumped":false,"bumped_at":"2013-03-25T18:00:52-04:00","unseen":false,"title":"What is \"Meta\"?","pinned":true,"excerpt":"What is "Meta"?\n\nMeta means discussion of the discussion itself instead of the actual topic of the discussion. For example, discussions about... \n\n\nThe style of discussion.\nThe participants in the discussion.\nThe setting…","visible":true,"closed":false,"archived":false},{"id":8042,"fancy_title":"Duplicated content: FAQ and Privacy appear twice!","slug":"duplicated-content-faq-and-privacy-appear-twice","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-07-02T16:06:09-04:00","last_posted_at":"2013-07-03T00:30:14-04:00","bumped":true,"bumped_at":"2013-07-03T00:30:14-04:00","unseen":false,"title":"Duplicated content: FAQ and Privacy appear twice!","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4749,"fancy_title":"Schadenfreude as an Enforcement Tactic","slug":"schadenfreude-as-an-enforcement-tactic","posts_count":14,"reply_count":8,"highest_post_number":14,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/545/7c0b394c2f883cde.png","created_at":"2013-03-13T21:03:32-04:00","last_posted_at":"2013-06-29T04:07:55-04:00","bumped":true,"bumped_at":"2013-07-01T23:46:54-04:00","unseen":false,"title":"Schadenfreude as an Enforcement Tactic","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5081,"fancy_title":"Should Discourse require reading to gain initial trust?","slug":"should-discourse-require-reading-to-gain-initial-trust","posts_count":37,"reply_count":31,"highest_post_number":39,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-03-22T14:04:37-04:00","last_posted_at":"2013-07-01T19:35:29-04:00","bumped":true,"bumped_at":"2013-07-01T19:35:29-04:00","unseen":false,"title":"Should Discourse require reading to gain initial trust?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7779,"fancy_title":"Meta Discourse now for logged in users only?","slug":"meta-discourse-now-for-logged-in-users-only","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2013-06-26T01:52:20-04:00","last_posted_at":"2013-06-26T03:18:37-04:00","bumped":true,"bumped_at":"2013-06-26T03:08:13-04:00","unseen":false,"title":"Meta Discourse now for logged in users only?","pinned":false,"visible":true,"closed":false,"archived":true},{"id":3102,"fancy_title":"Please visit our Discourse Forum! (Directory)","slug":"please-visit-our-discourse-forum-directory","posts_count":37,"reply_count":16,"highest_post_number":37,"image_url":null,"created_at":"2013-02-14T14:30:38-05:00","last_posted_at":"2013-06-23T03:45:55-04:00","bumped":true,"bumped_at":"2013-06-23T03:45:55-04:00","unseen":false,"title":"Please visit our Discourse Forum! (Directory)","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":8,"name":"hosting","color":"25AAE1","text_color":"FFFFFF","slug":"hosting","topic_count":43,"topics_week":2,"topics_month":4,"topics_year":43,"description":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","description_excerpt":"Topics about hosting Discourse, either on your own servers, in the cloud, or with specific hosting services.","featured_user_ids":[1,32,2291,1674,2839],"topics":[{"id":6265,"fancy_title":"Discourse Hosting Proposal","slug":"discourse-hosting-proposal","posts_count":20,"reply_count":15,"highest_post_number":20,"image_url":null,"created_at":"2013-04-30T17:20:32-04:00","last_posted_at":"2013-07-01T19:54:29-04:00","bumped":true,"bumped_at":"2013-07-01T19:54:29-04:00","unseen":false,"title":"Discourse Hosting Proposal","pinned":false,"visible":true,"closed":false,"archived":false},{"id":8000,"fancy_title":"OpenShift as Free Discourse Host?","slug":"openshift-as-free-discourse-host","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"https://www.gravatar.com/avatar/6b686fe7f07115890ca63099d088948d.png?s=40&r=pg&d=identicon","created_at":"2013-07-01T09:44:24-04:00","last_posted_at":"2013-07-01T11:59:30-04:00","bumped":true,"bumped_at":"2013-07-01T11:59:30-04:00","unseen":false,"title":"OpenShift as Free Discourse Host?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6779,"fancy_title":"Storing Images in the cloud","slug":"storing-images-in-the-cloud","posts_count":14,"reply_count":10,"highest_post_number":14,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/926/05bfcce4f39b1d06.png","created_at":"2013-05-21T19:56:32-04:00","last_posted_at":"2013-06-11T16:48:43-04:00","bumped":true,"bumped_at":"2013-07-01T09:38:01-04:00","unseen":false,"title":"Storing Images in the cloud","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7906,"fancy_title":"Heroku scheduler and clockwork","slug":"heroku-scheduler-and-clockwork","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-28T11:53:00-04:00","last_posted_at":"2013-07-01T03:09:40-04:00","bumped":true,"bumped_at":"2013-07-01T03:09:40-04:00","unseen":false,"title":"Heroku scheduler and clockwork","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4745,"fancy_title":"Need help setting up discourse on Engine Yard","slug":"need-help-setting-up-discourse-on-engine-yard","posts_count":13,"reply_count":9,"highest_post_number":13,"image_url":null,"created_at":"2013-03-13T19:41:13-04:00","last_posted_at":"2013-06-24T18:54:46-04:00","bumped":true,"bumped_at":"2013-06-24T18:54:46-04:00","unseen":false,"title":"Need help setting up discourse on Engine Yard","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2916,"fancy_title":"Discourse is too complicated to set up","slug":"discourse-is-too-complicated-to-set-up","posts_count":33,"reply_count":27,"highest_post_number":34,"image_url":null,"created_at":"2013-02-12T11:34:43-05:00","last_posted_at":"2013-06-21T16:56:18-04:00","bumped":true,"bumped_at":"2013-06-21T16:56:18-04:00","unseen":false,"title":"Discourse is too complicated to set up","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":9,"name":"ux","color":"5F497A","text_color":"FFFFFF","slug":"ux","topic_count":97,"topics_week":1,"topics_month":16,"topics_year":97,"description":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","description_excerpt":"Discussion about the user interface of Discourse, how features are presented to the user in the client, including language and UI elements.","featured_user_ids":[32,1,406,1263,3],"topics":[{"id":7400,"fancy_title":"Adding “developer” labels to the post avatars","slug":"adding-developer-labels-to-the-post-avatars","posts_count":12,"reply_count":7,"highest_post_number":12,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1061/8a6ac964893019ea.png","created_at":"2013-06-11T22:14:03-04:00","last_posted_at":"2013-07-02T07:48:42-04:00","bumped":true,"bumped_at":"2013-07-02T07:48:42-04:00","unseen":false,"title":"Adding \"developer\" labels to the post avatars","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5289,"fancy_title":"Deleted replies","slug":"deleted-replies","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-03-26T22:34:10-04:00","last_posted_at":"2013-07-01T04:18:33-04:00","bumped":true,"bumped_at":"2013-07-01T04:18:33-04:00","unseen":false,"title":"Deleted replies","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4693,"fancy_title":"User do not have to confirm password","slug":"user-do-not-have-to-confirm-password","posts_count":26,"reply_count":17,"highest_post_number":26,"image_url":null,"created_at":"2013-03-12T15:16:53-04:00","last_posted_at":"2013-06-29T22:46:46-04:00","bumped":true,"bumped_at":"2013-06-29T22:46:46-04:00","unseen":false,"title":"User do not have to confirm password","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7780,"fancy_title":"Best practices for organizing forum?","slug":"best-practices-for-organizing-forum","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-06-26T02:28:46-04:00","last_posted_at":"2013-06-26T03:13:00-04:00","bumped":true,"bumped_at":"2013-06-26T03:13:00-04:00","unseen":false,"title":"Best practices for organizing forum?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7614,"fancy_title":"“Your topic is similar to…” Always comes up","slug":"your-topic-is-similar-to-always-comes-up","posts_count":9,"reply_count":8,"highest_post_number":9,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1146/9dea86f9a04e59c8.png","created_at":"2013-06-18T19:27:03-04:00","last_posted_at":"2013-06-25T11:47:41-04:00","bumped":true,"bumped_at":"2013-06-25T11:47:41-04:00","unseen":false,"title":"\"Your topic is similar to...\" Always comes up","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7709,"fancy_title":"Navigating through unread messages","slug":"navigating-through-unread-messages","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-22T08:51:16-04:00","last_posted_at":"2013-06-23T00:11:32-04:00","bumped":true,"bumped_at":"2013-06-23T00:11:32-04:00","unseen":false,"title":"Navigating through unread messages","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":5,"name":"extensibility ","color":"FE8432","text_color":"FFFFFF","slug":"extensibility","topic_count":30,"topics_week":1,"topics_month":5,"topics_year":30,"description":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility. ","description_excerpt":"Topics about extending the functionality of Discourse with plugins, themes, add-ons, or other mechanisms for extensibility.","featured_user_ids":[1,32,714,810,8],"topics":[{"id":8014,"fancy_title":"SQL customization and other extensibility features","slug":"sql-customization-and-other-extensibility-features","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-01T22:49:50-04:00","last_posted_at":"2013-07-01T22:49:50-04:00","bumped":false,"bumped_at":"2013-07-01T22:49:50-04:00","unseen":false,"title":"SQL customization and other extensibility features","pinned":false,"visible":true,"closed":false,"archived":false},{"id":31,"fancy_title":"What is the most awesome plugin for Discourse, that does not yet exist?","slug":"what-is-the-most-awesome-plugin-for-discourse-that-does-not-yet-exist","posts_count":155,"reply_count":106,"highest_post_number":156,"image_url":null,"created_at":"2013-02-03T06:43:18-05:00","last_posted_at":"2013-06-30T21:07:45-04:00","bumped":true,"bumped_at":"2013-06-30T21:07:45-04:00","unseen":false,"title":"What is the most awesome plugin for Discourse, that does not yet exist?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":531,"fancy_title":"Discourse and Wordpress Integration","slug":"discourse-and-wordpress-integration","posts_count":59,"reply_count":51,"highest_post_number":61,"image_url":null,"created_at":"2013-02-05T18:56:37-05:00","last_posted_at":"2013-06-27T15:56:47-04:00","bumped":true,"bumped_at":"2013-06-27T15:56:47-04:00","unseen":false,"title":"Discourse and Wordpress Integration","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5283,"fancy_title":"Adding Advertising","slug":"adding-advertising","posts_count":32,"reply_count":20,"highest_post_number":32,"image_url":null,"created_at":"2013-03-26T19:06:32-04:00","last_posted_at":"2013-06-27T12:48:59-04:00","bumped":true,"bumped_at":"2013-06-27T12:48:59-04:00","unseen":false,"title":"Adding Advertising","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7772,"fancy_title":"Change fade-in color","slug":"change-fade-in-color","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-25T20:16:25-04:00","last_posted_at":"2013-06-26T00:06:43-04:00","bumped":true,"bumped_at":"2013-06-26T00:06:43-04:00","unseen":false,"title":"Change fade-in color","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7534,"fancy_title":"Has anybody created themes for Discourse?","slug":"has-anybody-created-themes-for-discourse","posts_count":15,"reply_count":13,"highest_post_number":15,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1114/a1a6f1260ebcb974.png","created_at":"2013-06-16T12:19:26-04:00","last_posted_at":"2013-06-17T14:47:00-04:00","bumped":true,"bumped_at":"2013-06-17T14:53:17-04:00","unseen":false,"title":"Has anybody created themes for Discourse?","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":13,"name":"blog","color":"ED207B","text_color":"FFFFFF","slug":"blog","topic_count":8,"topics_week":1,"topics_month":2,"topics_year":8,"description":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","description_excerpt":"Discussion topics generated from the official Discourse Blog. These topics are linked from the bottom of each blog entry where the blog comments would normally be.","featured_user_ids":[32,1,5468,1995,4217],"topics":[{"id":5751,"fancy_title":"Discourse as Your First Rails App","slug":"discourse-as-your-first-rails-app","posts_count":47,"reply_count":33,"highest_post_number":53,"image_url":null,"created_at":"2013-04-09T19:08:33-04:00","last_posted_at":"2013-07-03T11:49:32-04:00","bumped":true,"bumped_at":"2013-07-03T11:49:32-04:00","unseen":false,"title":"Discourse as Your First Rails App","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7933,"fancy_title":"Forums Are Dead, Long Live Forums","slug":"forums-are-dead-long-live-forums","posts_count":16,"reply_count":15,"highest_post_number":16,"image_url":null,"created_at":"2013-06-29T01:19:45-04:00","last_posted_at":"2013-07-01T16:19:16-04:00","bumped":true,"bumped_at":"2013-06-30T22:39:44-04:00","unseen":false,"title":"Forums Are Dead, Long Live Forums","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7478,"fancy_title":"Discourse on Ubuntu: Video Walkthrough","slug":"discourse-on-ubuntu-video-walkthrough","posts_count":9,"reply_count":5,"highest_post_number":9,"image_url":null,"created_at":"2013-06-14T10:47:53-04:00","last_posted_at":"2013-06-30T01:27:05-04:00","bumped":true,"bumped_at":"2013-06-30T01:27:05-04:00","unseen":false,"title":"Discourse on Ubuntu: Video Walkthrough","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5575,"fancy_title":"Our First Partner: How-To Geek","slug":"our-first-partner-how-to-geek","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-03T18:42:46-04:00","last_posted_at":"2013-06-07T19:27:46-04:00","bumped":true,"bumped_at":"2013-06-07T19:27:46-04:00","unseen":false,"title":"Our First Partner: How-To Geek","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5898,"fancy_title":"The Discourse Servers","slug":"the-discourse-servers","posts_count":29,"reply_count":21,"highest_post_number":29,"image_url":null,"created_at":"2013-04-15T15:19:09-04:00","last_posted_at":"2013-05-30T15:44:01-04:00","bumped":true,"bumped_at":"2013-05-30T15:44:01-04:00","unseen":false,"title":"The Discourse Servers","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6744,"fancy_title":"Your Online Clubhouse","slug":"your-online-clubhouse","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2013-05-20T16:26:44-04:00","last_posted_at":"2013-05-23T12:07:47-04:00","bumped":true,"bumped_at":"2013-05-23T12:07:47-04:00","unseen":false,"title":"Your Online Clubhouse","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":11,"name":"login","color":"edb400","text_color":"FFFFFF","slug":"login","topic_count":16,"topics_week":1,"topics_month":1,"topics_year":16,"description":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","description_excerpt":"Topics about logging in to Discourse, using any standard third party provider (Twitter, Facebook, Google), traditional username and password, or with a custom plugin.","featured_user_ids":[32,2,1,4939,3507],"topics":[{"id":1420,"fancy_title":"Please add Persona as an authentication option","slug":"please-add-persona-as-an-authentication-option","posts_count":22,"reply_count":16,"highest_post_number":22,"image_url":null,"created_at":"2013-02-06T11:28:44-05:00","last_posted_at":"2013-07-01T19:51:27-04:00","bumped":true,"bumped_at":"2013-07-01T19:51:27-04:00","unseen":false,"title":"Please add Persona as an authentication option","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7909,"fancy_title":"OmniAuth integration documentation","slug":"omniauth-integration-documentation","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-28T12:51:24-04:00","last_posted_at":"2013-06-28T12:51:24-04:00","bumped":false,"bumped_at":"2013-06-28T12:51:24-04:00","unseen":false,"title":"OmniAuth integration documentation","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6869,"fancy_title":"Force use of an authentication provider","slug":"force-use-of-an-authentication-provider","posts_count":21,"reply_count":16,"highest_post_number":21,"image_url":null,"created_at":"2013-05-24T15:26:41-04:00","last_posted_at":"2013-06-15T16:58:09-04:00","bumped":true,"bumped_at":"2013-06-15T16:58:09-04:00","unseen":false,"title":"Force use of an authentication provider","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5800,"fancy_title":"UTF-8 to webalized char set transliteration for Facebook login","slug":"utf-8-to-webalized-char-set-transliteration-for-facebook-login","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-04-11T13:58:56-04:00","last_posted_at":"2013-04-11T13:58:56-04:00","bumped":false,"bumped_at":"2013-04-11T13:58:56-04:00","unseen":false,"title":"UTF-8 to webalized char set transliteration for Facebook login","pinned":false,"visible":true,"closed":false,"archived":false},{"id":4011,"fancy_title":"I can’t login using my password","slug":"i-can-t-login-using-my-password","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2013-02-25T06:47:42-05:00","last_posted_at":"2013-03-13T19:36:48-04:00","bumped":true,"bumped_at":"2013-03-13T19:36:44-04:00","unseen":false,"title":"I can't login using my password","pinned":false,"visible":true,"closed":false,"archived":true},{"id":4738,"fancy_title":"Login support for browser password managers","slug":"login-support-for-browser-password-managers","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-03-13T17:55:29-04:00","last_posted_at":"2013-03-13T19:11:56-04:00","bumped":true,"bumped_at":"2013-03-13T19:11:56-04:00","unseen":false,"title":"Login support for browser password managers","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":4,"name":"faq","color":"33b","text_color":"FFFFFF","slug":"faq","topic_count":39,"topics_week":0,"topics_month":2,"topics_year":39,"description":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","description_excerpt":"Topics that come up very often when discussing Discourse will eventually be classified into this Frequently Asked Questions category. Should only be added to popular topics.","featured_user_ids":[32,1,4,4263,2465],"topics":[{"id":7755,"fancy_title":"What do the dates on the bottom of the categories page mean?","slug":"what-do-the-dates-on-the-bottom-of-the-categories-page-mean","posts_count":7,"reply_count":5,"highest_post_number":7,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1218/87b3b53c9641c86e.jpeg","created_at":"2013-06-25T04:24:56-04:00","last_posted_at":"2013-07-02T00:08:41-04:00","bumped":true,"bumped_at":"2013-07-02T00:08:41-04:00","unseen":false,"title":"What do the dates on the bottom of the categories page mean?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":866,"fancy_title":"UX confusion - why sometimes I see “x reply(s) below” and sometimes I don’t","slug":"ux-confusion-why-sometimes-i-see-x-reply-s-below-and-sometimes-i-dont","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2013-02-06T00:31:46-05:00","last_posted_at":"2013-06-25T23:34:34-04:00","bumped":true,"bumped_at":"2013-06-25T23:34:34-04:00","unseen":false,"title":"UX confusion - why sometimes I see \"x reply(s) below\" and sometimes I don't","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2408,"fancy_title":"Private Discourse Forum","slug":"private-discourse-forum","posts_count":18,"reply_count":10,"highest_post_number":18,"image_url":null,"created_at":"2013-02-08T08:25:22-05:00","last_posted_at":"2013-06-20T17:45:35-04:00","bumped":true,"bumped_at":"2013-06-20T17:47:47-04:00","unseen":false,"title":"Private Discourse Forum","pinned":false,"visible":true,"closed":false,"archived":false},{"id":6724,"fancy_title":"Where is this development roadmap?","slug":"where-is-this-development-roadmap","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2013-05-19T15:15:19-04:00","last_posted_at":"2013-06-17T11:03:07-04:00","bumped":true,"bumped_at":"2013-06-17T11:03:07-04:00","unseen":false,"title":"Where is this development roadmap?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7378,"fancy_title":"Discourse Release Announcements for each tagged version release","slug":"discourse-release-announcements-for-each-tagged-version-release","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":null,"created_at":"2013-06-11T10:31:03-04:00","last_posted_at":"2013-06-12T02:18:33-04:00","bumped":true,"bumped_at":"2013-06-12T02:18:33-04:00","unseen":false,"title":"Discourse Release Announcements for each tagged version release","pinned":false,"visible":true,"closed":false,"archived":false},{"id":3059,"fancy_title":"Two different unread counts","slug":"two-different-unread-counts","posts_count":8,"reply_count":6,"highest_post_number":8,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/266/screen_shot_20130213_at_11_32_07_pm.png","created_at":"2013-02-14T02:37:50-05:00","last_posted_at":"2013-03-24T15:40:45-04:00","bumped":true,"bumped_at":"2013-06-04T18:20:22-04:00","unseen":false,"title":"Two different unread counts","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":14,"name":"marketplace","color":"8C6238","text_color":"FFFFFF","slug":"marketplace","topic_count":4,"topics_week":0,"topics_month":2,"topics_year":4,"description":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","description_excerpt":"About commercial Discourse related stuff: jobs or paid gigs, plugins, themes, hosting, etc.","featured_user_ids":[1263,406,5460,32,2399],"topics":[{"id":7305,"fancy_title":"I would like to hire someone to install discourse on my site","slug":"i-would-like-to-hire-someone-to-install-discourse-on-my-site","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2013-06-08T18:32:07-04:00","last_posted_at":"2013-06-09T00:27:21-04:00","bumped":true,"bumped_at":"2013-06-09T00:27:21-04:00","unseen":false,"title":"I would like to hire someone to install discourse on my site","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7221,"fancy_title":"I want discourse for small business","slug":"i-want-discourse-for-small-business","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2013-06-06T09:05:43-04:00","last_posted_at":"2013-06-06T19:52:47-04:00","bumped":true,"bumped_at":"2013-06-06T19:52:47-04:00","unseen":false,"title":"I want discourse for small business","pinned":false,"visible":true,"closed":false,"archived":false},{"id":7054,"fancy_title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","slug":"contract-available-web-developer-ror-js-node-js-discourse","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-05-31T19:30:52-04:00","last_posted_at":"2013-05-31T19:30:52-04:00","bumped":false,"bumped_at":"2013-05-31T19:30:52-04:00","unseen":false,"title":"Contract available: Web developer (RoR, JS, Node.JS, Discourse)","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5409,"fancy_title":"Looking for a Discourse specialist !!","slug":"looking-for-a-discourse-specialist","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-03-30T02:15:56-04:00","last_posted_at":"2013-03-30T02:15:56-04:00","bumped":false,"bumped_at":"2013-03-30T02:15:56-04:00","unseen":false,"title":"Looking for a Discourse specialist !!","pinned":false,"visible":true,"closed":false,"archived":false}]},{"id":12,"name":"discourse hub","color":"b2c79f","text_color":"FFFFFF","slug":"discourse-hub","topic_count":4,"topics_week":0,"topics_month":0,"topics_year":4,"description":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","description_excerpt":"Topics about current or future Discourse Hub functionality at discourse.org including nickname registration, global user pages, and the site directory.","featured_user_ids":[32,2,704,461,1566],"topics":[{"id":6547,"fancy_title":"Where to get discourse_org_access_key?","slug":"where-to-get-discourse-org-access-key","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-05-10T22:06:08-04:00","last_posted_at":"2013-06-18T11:49:18-04:00","bumped":true,"bumped_at":"2013-06-18T11:49:18-04:00","unseen":false,"title":"Where to get discourse_org_access_key?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":424,"fancy_title":"What are the ‘consequences’ of changing your name?","slug":"what-are-the-consequences-of-changing-your-name","posts_count":33,"reply_count":32,"highest_post_number":33,"image_url":null,"created_at":"2013-02-05T17:37:52-05:00","last_posted_at":"2013-05-17T11:28:00-04:00","bumped":true,"bumped_at":"2013-06-12T13:22:10-04:00","unseen":false,"title":"What are the 'consequences' of changing your name?","pinned":false,"visible":true,"closed":false,"archived":false},{"id":2544,"fancy_title":"Discourse central hub questions","slug":"discourse-central-hub-questions","posts_count":49,"reply_count":41,"highest_post_number":49,"image_url":null,"created_at":"2013-02-09T04:28:21-05:00","last_posted_at":"2013-05-28T12:15:25-04:00","bumped":true,"bumped_at":"2013-05-28T12:15:25-04:00","unseen":false,"title":"Discourse central hub questions","pinned":false,"visible":true,"closed":false,"archived":false},{"id":5664,"fancy_title":"Discourse Hub nickname uniqueness not working?","slug":"discourse-hub-nickname-uniqueness-not-working","posts_count":22,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2013-04-06T03:40:11-04:00","last_posted_at":"2013-04-09T10:56:46-04:00","bumped":true,"bumped_at":"2013-04-09T10:56:46-04:00","unseen":false,"title":"Discourse Hub nickname uniqueness not working?","pinned":false,"visible":true,"closed":false,"archived":false}]}]}}; +Discourse.URL_FIXTURES["/category/bug.json"] = {"categories":[{"id":1,"name":"bug","color":"ae3a27","text_color":"FFFFFF","slug":"bug","topic_count":387,"description":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","topic_url":"/t/category-definition-for-bug/2","hotness":5.0,"secure":false}],"users":[{"id":3987,"username":"Sander78","avatar_template":"https://www.gravatar.com/avatar/e7069beb46df22270a41afc7b277fe50.png?s={size}&r=pg&d=identicon"},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon"},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon"},{"id":5924,"username":"BalajiSi","avatar_template":"https://www.gravatar.com/avatar/aa4bb5e082dfd263924c7159bcf0953e.png?s={size}&r=pg&d=identicon"},{"id":4263,"username":"mcwumbly","avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon"},{"id":5428,"username":"abbat","avatar_template":"https://www.gravatar.com/avatar/8fdf603233c6a4328b8c943e2fabcf62.png?s={size}&r=pg&d=identicon"},{"id":4981,"username":"raejin","avatar_template":"https://www.gravatar.com/avatar/9fd2b1edcc1b2791eac165ccb334f468.png?s={size}&r=pg&d=identicon"},{"id":5821,"username":"ven88","avatar_template":"https://www.gravatar.com/avatar/39fc4d1c6dcefe9c1ae9730f99c65af7.png?s={size}&r=pg&d=identicon"},{"id":3681,"username":"Ajarn","avatar_template":"https://www.gravatar.com/avatar/bdfe9d9defc060d689ccd31c07e1bc19.png?s={size}&r=pg&d=identicon"},{"id":4457,"username":"Lee_Ars","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon"},{"id":5912,"username":"jbruni","avatar_template":"https://www.gravatar.com/avatar/27dacda91150eca332526bf8a8ee7e03.png?s={size}&r=pg&d=identicon"},{"id":810,"username":"ChrisHanel","avatar_template":"https://www.gravatar.com/avatar/467863a322e1a3ce557bfd17f4677600.png?s={size}&r=pg&d=identicon"},{"id":5569,"username":"wim","avatar_template":"https://www.gravatar.com/avatar/47771201610c46338247e19833dd1213.png?s={size}&r=pg&d=identicon"},{"id":5174,"username":"MaSe","avatar_template":"https://www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon"},{"id":4612,"username":"Iszi","avatar_template":"https://www.gravatar.com/avatar/8f8571493d71202986f2a6ab0dbd7c23.png?s={size}&r=pg&d=identicon"},{"id":5908,"username":"maxschilling","avatar_template":"https://www.gravatar.com/avatar/2b0919184408ae228b485d92bf39923e.png?s={size}&r=pg&d=identicon"},{"id":1995,"username":"zogstrip","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon"},{"id":3,"username":"supermathie","avatar_template":"https://www.gravatar.com/avatar/44ae1b2d44d48aed3d432129a5703942.png?s={size}&r=pg&d=identicon"},{"id":5648,"username":"jamesaanderson","avatar_template":"https://www.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21.png?s={size}&r=pg&d=identicon"},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon"},{"id":1129,"username":"simonlmn","avatar_template":"https://www.gravatar.com/avatar/fb26c121d58a128d9ce405eab59e5b05.png?s={size}&r=pg&d=identicon"},{"id":471,"username":"BhaelOchon","avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon"},{"id":2981,"username":"ian_carroll","avatar_template":"https://www.gravatar.com/avatar/76dd5343c6a95d7b2ce906fb9af94106.png?s={size}&r=pg&d=identicon"},{"id":5851,"username":"TheChadMiller","avatar_template":"https://www.gravatar.com/avatar/558f3e204e8e7859b99fe915640c2d77.png?s={size}&r=pg&d=identicon"},{"id":5270,"username":"Nedal","avatar_template":"https://www.gravatar.com/avatar/fb74b7ff14d0eae68ca8992760133187.png?s={size}&r=pg&d=identicon"},{"id":5853,"username":"MaMu","avatar_template":"https://www.gravatar.com/avatar/58ecb4baa5071094a9c018c954a98422.png?s={size}&r=pg&d=identicon"},{"id":5803,"username":"marxidad","avatar_template":"https://www.gravatar.com/avatar/6cc331c477243ced5ff968a32a7dd14f.png?s={size}&r=pg&d=identicon"},{"id":5765,"username":"bytehead","avatar_template":"https://www.gravatar.com/avatar/b0a41b59fef0ceb3d867d19baa624b5a.png?s={size}&r=pg&d=identicon"},{"id":5769,"username":"pollax","avatar_template":"https://www.gravatar.com/avatar/f96f6e1aa574b956342324a176fa03e9.png?s={size}&r=pg&d=identicon"},{"id":4757,"username":"cerberus","avatar_template":"https://www.gravatar.com/avatar/cf99a7295aafa43c75ce25668b24df29.png?s={size}&r=pg&d=identicon"},{"id":2,"username":"Neil","avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon"},{"id":5656,"username":"x0rg","avatar_template":"https://www.gravatar.com/avatar/7cf6b4400c208b9c47d6af94933f3c88.png?s={size}&r=pg&d=identicon"},{"id":5372,"username":"computerdruid","avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon"}],"topic_list":{"can_create_topic":false,"more_topics_url":"/category/bug.json?page=1","draft":null,"draft_key":"new_topic","draft_sequence":null,"topics":[{"id":7288,"fancy_title":"Digest mail ignores secure groups","slug":"digest-mail-ignores-secure-groups","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-08T08:54:12-04:00","last_posted_at":"2013-06-08T13:00:38-04:00","bumped":true,"bumped_at":"2013-06-08T13:00:38-04:00","unseen":false,"title":"Digest mail ignores secure groups","pinned":true,"excerpt":"People receiving the digest mail can easily read posts not meant for them. That's because the digest mail ignores the secure groups a member has access to or not. \n\nQuite a problem as I unfortunately found out. [smile]","visible":true,"closed":false,"archived":false,"views":178,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3987},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":2,"fancy_title":"Category definition for bug","slug":"category-definition-for-bug","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2013-01-31T23:56:34-05:00","last_posted_at":"2013-03-07T22:42:27-05:00","bumped":true,"bumped_at":"2013-02-26T18:52:56-05:00","unseen":false,"title":"Category definition for bug","pinned":true,"excerpt":"Bug reports on Discourse. Do be sure to search prior to submitting bugs. Include repro steps, and only describe one bug per topic please.","visible":true,"closed":false,"archived":false,"views":255,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":8073,"fancy_title":"New user allowed to upload images to your servers","slug":"new-user-allowed-to-upload-images-to-your-servers","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T11:37:19-04:00","last_posted_at":"2013-07-03T11:37:19-04:00","bumped":false,"bumped_at":"2013-07-03T11:37:19-04:00","unseen":false,"title":"New user allowed to upload images to your servers","pinned":false,"visible":true,"closed":false,"archived":false,"views":17,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5924}]},{"id":8071,"fancy_title":"Excerpt in user page links to old location after post was moved","slug":"excerpt-in-user-page-links-to-old-location-after-post-was-moved","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-07-03T10:03:35-04:00","last_posted_at":"2013-07-03T10:03:35-04:00","bumped":false,"bumped_at":"2013-07-03T10:03:35-04:00","unseen":false,"title":"Excerpt in user page links to old location after post was moved","pinned":false,"visible":true,"closed":false,"archived":false,"views":15,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4263}]},{"id":8070,"fancy_title":"In profile page, avatar shown twice for post that was liked before it was moved","slug":"in-profile-page-avatar-shown-twice-for-post-that-was-liked-before-it-was-moved","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1306/b79687223c1c1491.png","created_at":"2013-07-03T09:56:16-04:00","last_posted_at":"2013-07-03T09:56:16-04:00","bumped":false,"bumped_at":"2013-07-03T09:56:16-04:00","unseen":false,"title":"In profile page, avatar shown twice for post that was liked before it was moved","pinned":false,"visible":true,"closed":false,"archived":false,"views":18,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":4263}]},{"id":8063,"fancy_title":"Noscript pagination absent for large topics","slug":"noscript-pagination-absent-for-large-topics","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1305/64c5292272936472.png","created_at":"2013-07-03T04:26:05-04:00","last_posted_at":"2013-07-03T04:51:57-04:00","bumped":true,"bumped_at":"2013-07-03T04:51:57-04:00","unseen":false,"title":"Noscript pagination absent for large topics","pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5428},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8060,"fancy_title":"Secure category dropdown not rendered","slug":"secure-category-dropdown-not-rendered","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1302/456cd3f77edbd489.png","created_at":"2013-07-03T02:08:29-04:00","last_posted_at":"2013-07-03T02:33:00-04:00","bumped":true,"bumped_at":"2013-07-03T02:33:00-04:00","unseen":false,"title":"Secure category dropdown not rendered","pinned":false,"visible":true,"closed":false,"archived":false,"views":27,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4981},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8053,"fancy_title":"Unable to delete categories","slug":"unable-to-delete-categories","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/_optimized/afc/214/c8c1cd9bc75_690x431.png","created_at":"2013-07-02T21:55:13-04:00","last_posted_at":"2013-07-02T23:20:41-04:00","bumped":true,"bumped_at":"2013-07-02T23:20:41-04:00","unseen":false,"title":"Unable to delete categories","pinned":false,"visible":true,"closed":false,"archived":false,"views":37,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5821},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":8047,"fancy_title":"Last read indicator doesn’t always update when scrolling to bottom","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","posts_count":6,"reply_count":2,"highest_post_number":6,"image_url":null,"created_at":"2013-07-02T17:15:07-04:00","last_posted_at":"2013-07-02T19:26:12-04:00","bumped":true,"bumped_at":"2013-07-02T19:26:12-04:00","unseen":false,"title":"Last read indicator doesn't always update when scrolling to bottom","pinned":false,"visible":true,"closed":false,"archived":false,"views":39,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":4263},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":4457},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8046,"fancy_title":"Topic progress reporting wrong number","slug":"topic-progress-reporting-wrong-number","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-07-02T16:53:16-04:00","last_posted_at":"2013-07-02T16:53:54-04:00","bumped":true,"bumped_at":"2013-07-02T16:53:54-04:00","unseen":false,"title":"Topic progress reporting wrong number","pinned":false,"visible":true,"closed":false,"archived":false,"views":30,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5912}]},{"id":8040,"fancy_title":"Can’t scroll to bottom of user page while creating a new topic","slug":"cant-scroll-to-bottom-of-user-page-while-creating-a-new-topic","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"http://puu.sh/3tyd5.png","created_at":"2013-07-02T15:41:57-04:00","last_posted_at":"2013-07-02T15:41:57-04:00","bumped":false,"bumped_at":"2013-07-02T15:41:57-04:00","unseen":false,"title":"Can't scroll to bottom of user page while creating a new topic","pinned":false,"visible":true,"closed":false,"archived":false,"views":30,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":810}]},{"id":7554,"fancy_title":"Loading (never stops)","slug":"loading-never-stops","posts_count":16,"reply_count":12,"highest_post_number":16,"image_url":null,"created_at":"2013-06-17T04:10:19-04:00","last_posted_at":"2013-07-02T11:17:36-04:00","bumped":true,"bumped_at":"2013-07-02T11:17:36-04:00","unseen":false,"title":"Loading (never stops)","pinned":false,"visible":true,"closed":false,"archived":false,"views":186,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5569},{"extras":null,"description":"Most Posts","user_id":1},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":5174},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":5971,"fancy_title":"Following links to posts within the same topic jumps to the top","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":null,"created_at":"2013-04-17T11:19:03-04:00","last_posted_at":"2013-07-02T11:15:56-04:00","bumped":true,"bumped_at":"2013-07-02T11:15:56-04:00","unseen":false,"title":"Following links to posts within the same topic jumps to the top","pinned":false,"visible":true,"closed":false,"archived":false,"views":116,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4612},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":19}]},{"id":8031,"fancy_title":"New Install, just see blank page in Chrome and Firefox","slug":"new-install-just-see-blank-page-in-chrome-and-firefox","posts_count":7,"reply_count":2,"highest_post_number":7,"image_url":null,"created_at":"2013-07-02T10:20:44-04:00","last_posted_at":"2013-07-02T11:06:28-04:00","bumped":true,"bumped_at":"2013-07-02T11:06:28-04:00","unseen":false,"title":"New Install, just see blank page in Chrome and Firefox","pinned":false,"visible":true,"closed":false,"archived":false,"views":43,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5908},{"extras":null,"description":"Most Posts","user_id":1995},{"extras":null,"description":"Frequent Poster","user_id":3}]},{"id":7983,"fancy_title":"Chrome for iPad / iPhone breaks with this video embed","slug":"chrome-for-ipad-iphone-breaks-with-this-video-embed","posts_count":3,"reply_count":2,"highest_post_number":3,"image_url":"https://www.gravatar.com/avatar/b3e9977094ce189bbb493cf7f9adea21.png?s=40&r=pg&d=identicon","created_at":"2013-06-30T19:19:55-04:00","last_posted_at":"2013-07-02T09:39:53-04:00","bumped":true,"bumped_at":"2013-07-02T09:39:53-04:00","unseen":false,"title":"Chrome for iPad / iPhone breaks with this video embed","pinned":false,"visible":true,"closed":false,"archived":false,"views":67,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":1},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":5648}]},{"id":5667,"fancy_title":"Moved posts show incorrect involved users","slug":"moved-posts-show-incorrect-involved-users","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/674/52253b31a1d7257f.png","created_at":"2013-04-06T10:23:35-04:00","last_posted_at":"2013-07-02T06:22:32-04:00","bumped":true,"bumped_at":"2013-07-02T06:22:32-04:00","unseen":false,"title":"Moved posts show incorrect involved users","pinned":false,"visible":true,"closed":false,"archived":false,"views":91,"like_count":4,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":461},{"extras":"latest","description":"Most Recent Poster","user_id":1129}]},{"id":8010,"fancy_title":"Incorrect “moved a post” mod message","slug":"incorrect-moved-a-post-mod-message","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1282/e89533c2aeebaca0.png","created_at":"2013-07-01T18:42:01-04:00","last_posted_at":"2013-07-02T03:13:01-04:00","bumped":true,"bumped_at":"2013-07-02T03:13:01-04:00","unseen":false,"title":"Incorrect \"moved a post\" mod message","pinned":false,"visible":true,"closed":false,"archived":false,"views":42,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":471},{"extras":null,"description":"Most Posts","user_id":4263},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":7988,"fancy_title":"Signing up with a reserved username - needs original email address","slug":"signing-up-with-a-reserved-username-needs-original-email-address","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-30T22:30:40-04:00","last_posted_at":"2013-06-30T23:47:07-04:00","bumped":true,"bumped_at":"2013-06-30T23:47:07-04:00","unseen":false,"title":"Signing up with a reserved username - needs original email address","pinned":false,"visible":true,"closed":false,"archived":false,"views":42,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4457},{"extras":null,"description":"Most Posts","user_id":1},{"extras":"latest","description":"Most Recent Poster","user_id":2981}]},{"id":7986,"fancy_title":"Cannot scroll to top of box while editing long post","slug":"cannot-scroll-to-top-of-box-while-editing-long-post","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-30T21:27:42-04:00","last_posted_at":"2013-06-30T21:27:42-04:00","bumped":false,"bumped_at":"2013-06-30T21:27:42-04:00","unseen":false,"title":"Cannot scroll to top of box while editing long post","pinned":false,"visible":true,"closed":false,"archived":false,"views":29,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5851}]},{"id":7961,"fancy_title":"Logout Issue still going on?","slug":"logout-issue-still-going-on","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2013-06-30T02:26:43-04:00","last_posted_at":"2013-06-30T19:18:01-04:00","bumped":true,"bumped_at":"2013-06-30T19:18:01-04:00","unseen":false,"title":"Logout Issue still going on?","pinned":false,"visible":true,"closed":false,"archived":false,"views":61,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5270},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7962,"fancy_title":"Notifications not visible through icon","slug":"notifications-not-visible-through-icon","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2013-06-30T05:59:12-04:00","last_posted_at":"2013-06-30T05:59:12-04:00","bumped":true,"bumped_at":"2013-06-30T12:40:18-04:00","unseen":false,"title":"Notifications not visible through icon","pinned":false,"visible":true,"closed":false,"archived":false,"views":35,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5853}]},{"id":7633,"fancy_title":"Text overlaps control bar","slug":"text-overlaps-control-bar","posts_count":5,"reply_count":2,"highest_post_number":5,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1155/ca54fc03bfed7f05.png","created_at":"2013-06-19T12:39:39-04:00","last_posted_at":"2013-06-29T19:28:45-04:00","bumped":true,"bumped_at":"2013-06-29T19:28:23-04:00","unseen":false,"title":"Text overlaps control bar","pinned":false,"visible":true,"closed":true,"archived":true,"views":69,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5174},{"extras":null,"description":"Most Posts","user_id":5648},{"extras":"latest","description":"Most Recent Poster","user_id":1}]},{"id":7886,"fancy_title":"Can’t Drag Selected Text","slug":"cant-drag-selected-text","posts_count":7,"reply_count":6,"highest_post_number":7,"image_url":null,"created_at":"2013-06-28T00:03:53-04:00","last_posted_at":"2013-06-28T17:19:29-04:00","bumped":true,"bumped_at":"2013-06-28T17:19:29-04:00","unseen":false,"title":"Can't Drag Selected Text","pinned":false,"visible":true,"closed":false,"archived":false,"views":85,"like_count":9,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5803},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":1995}]},{"id":7848,"fancy_title":"Reply is always too short","slug":"reply-is-always-too-short","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-06-27T16:03:42-04:00","last_posted_at":"2013-06-27T18:29:42-04:00","bumped":true,"bumped_at":"2013-06-27T18:29:42-04:00","unseen":false,"title":"Reply is always too short","pinned":false,"visible":true,"closed":false,"archived":false,"views":93,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":5765},{"extras":null,"description":"Most Posts","user_id":5769},{"extras":null,"description":"Frequent Poster","user_id":32},{"extras":null,"description":"Frequent Poster","user_id":1}]},{"id":7678,"fancy_title":"Broken hint in “last changed date”","slug":"broken-hint-in-last-changed-date","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1180/8666ad9d2f9ab5b7.png","created_at":"2013-06-20T20:15:56-04:00","last_posted_at":"2013-06-26T18:40:29-04:00","bumped":true,"bumped_at":"2013-06-26T18:39:57-04:00","unseen":false,"title":"Broken hint in \"last changed date\"","pinned":false,"visible":true,"closed":false,"archived":true,"views":55,"like_count":1,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4757},{"extras":"latest","description":"Most Recent Poster","user_id":2}]},{"id":7733,"fancy_title":"Html table support not working in post","slug":"html-table-support-not-working-in-post","posts_count":9,"reply_count":8,"highest_post_number":9,"image_url":"http://cdn.discourse.org/assets/emoji/smile.png","created_at":"2013-06-24T10:12:53-04:00","last_posted_at":"2013-06-26T11:30:38-04:00","bumped":true,"bumped_at":"2013-06-26T11:30:38-04:00","unseen":false,"title":"Html table support not working in post","pinned":false,"visible":true,"closed":false,"archived":false,"views":115,"like_count":2,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":5656},{"extras":null,"description":"Most Posts","user_id":32},{"extras":"latest","description":"Most Recent Poster","user_id":471}]},{"id":5949,"fancy_title":"IPv6 causing Internal Server Errors","slug":"ipv6-causing-internal-server-errors","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2013-04-17T00:30:56-04:00","last_posted_at":"2013-06-26T00:08:40-04:00","bumped":true,"bumped_at":"2013-06-26T00:08:40-04:00","unseen":false,"title":"IPv6 causing Internal Server Errors","pinned":false,"visible":true,"closed":false,"archived":false,"views":174,"like_count":9,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3},{"extras":null,"description":"Most Posts","user_id":5372},{"extras":null,"description":"Frequent Poster","user_id":1}]},{"id":7771,"fancy_title":"Reply post isn’t always marked as ‘Reply-to’","slug":"reply-post-isnt-always-marked-as-reply-to","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1231/ab6018339ac915d0.png","created_at":"2013-06-25T19:40:48-04:00","last_posted_at":"2013-06-25T21:52:20-04:00","bumped":true,"bumped_at":"2013-06-25T21:52:04-04:00","unseen":false,"title":"Reply post isn't always marked as 'Reply-to'","pinned":false,"visible":true,"closed":true,"archived":false,"views":49,"like_count":3,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":4757},{"extras":null,"description":"Most Posts","user_id":5372},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":7762,"fancy_title":"“20 to go…” hint","slug":"20-to-go-hint","posts_count":3,"reply_count":0,"highest_post_number":3,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/1225/723b880b48038a91.png","created_at":"2013-06-25T11:03:49-04:00","last_posted_at":"2013-06-25T13:36:38-04:00","bumped":true,"bumped_at":"2013-06-25T13:36:34-04:00","unseen":false,"title":"\"20 to go...\" hint","pinned":false,"visible":true,"closed":false,"archived":true,"views":60,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":null,"description":"Original Poster","user_id":471},{"extras":"latest","description":"Most Recent Poster","user_id":32}]},{"id":5486,"fancy_title":"Oneboxed topics/posts (and quotes?) cause internal links to show in gutter","slug":"oneboxed-topics-posts-and-quotes-cause-internal-links-to-show-in-gutter","posts_count":5,"reply_count":4,"highest_post_number":5,"image_url":null,"created_at":"2013-04-01T15:06:48-04:00","last_posted_at":"2013-06-25T13:24:38-04:00","bumped":true,"bumped_at":"2013-06-25T13:24:38-04:00","unseen":false,"title":"Oneboxed topics/posts (and quotes?) cause internal links to show in gutter","pinned":false,"visible":true,"closed":false,"archived":false,"views":94,"like_count":0,"has_best_of":false,"archetype":"regular","category_id":1,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3681},{"extras":null,"description":"Most Posts","user_id":32}]}]}}; diff --git a/test/javascripts/fixtures/static_fixtures.js b/test/javascripts/fixtures/static_fixtures.js new file mode 100644 index 000000000..ed4a926b1 --- /dev/null +++ b/test/javascripts/fixtures/static_fixtures.js @@ -0,0 +1,4 @@ +/*jshint maxlen:10000000 */ +Discourse.URL_FIXTURES["/faq"] = "\n\n\n\n
\n

This is a Civilized Place for Public Discussion

\n

\n Please treat this discussion forum with the same respect you would a public park. We, too, are a shared community resource — a place to share skills, knowledge and interests through ongoing conversation.\n

\n
\n

\n These are not hard and fast rules, merely aids to the human judgment of our community. Use these guidelines to keep this a clean, well-lighted place for civilized public discourse.\n

\n
\n\n
\n

Improve the Discussion

\n

\n Help us make this a great place for discussion by always working to improve the discussion in some way, however small. If you are not sure your post adds to the discussion or might detract from its usefulness, think over what you want to say and try again later.\n

\n
\n

\n The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said.\n

\n

\n One way to improve the discussion is by discovering ones that are already happening. Please spend some time browsing the topics here before replying or starting your own, and you\u2019ll have a better chance of meeting others who share your interests.\n

\n
\n\n
\n

Be Agreeable, Even When You Disagree

\n

\n You may wish to respond to something by disagreeing with it. That\u2019s fine. But, remember to criticize ideas, not people.\n Please avoid:\n

\n
\n

\n Instead, provide reasoned counter-arguments that improve the conversation.\n

\n
\n\n
\n

Your Participation Counts

\n

\n The conversations we have here set the tone for everyone. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be — and avoiding those that do not.\n

\n
\n

\n Discourse provides tools that enable the community to collectively identify the best (and worst) contributions: favorites, bookmarks, likes, flags, replies, edits, and so forth. Use these tools to improve your own experience, and everyone else\u2019s, too.\n

\n

\n Let\u2019s try to leave our park better than we found it.\n

\n
\n\n
\n

If You See a Problem, Flag It

\n

\n Moderators have special authority; they are responsible for this forum. But so are you. With your help, moderators can be community facilitators, not just janitors or police.\n

\n
\n

\n When you see bad behavior, don\u2019t reply. It encourages the bad behavior by acknowledging it, consumes your energy, and wastes everyone\u2019s time. Just flag it. If enough flags accrue, action will be taken, either automatically or by moderator intervention.\n

\n

\n In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts in any way; the moderators and site operators take no responsibility for any content posted by the community.\n

\n
\n\n
\n

Always Be Civil

\n

\n Nothing sabotages a healthy conversation like rudeness:\n

\n

\n
\n

\n These are not concrete terms with precise definitions — avoid\n even the appearance of any of these things. If you\u2019re unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times.\n

\n

\n This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends.\n

\n
\n\n
\n

Keep It Tidy

\n

\n Make the effort to put things in the right place, so that we can spend more time discussing and less cleaning up. So:\n

\n

\n
\n

\n Rather than posting \u201c+1\u201d or \u201cAgreed,\u201d use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a New Topic.\n

\n
\n\n
\n

Post Only Your Own Stuff

\n

\n You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someone\u2019s intellectual property (software, video, audio, images), or for breaking any other law.\n

\n
\n
\n\n
\n

Terms of Service

\n

\n Yes, legalese is boring, but we must protect ourselves – and by extension, you and your data – against unfriendly folks. We have a Terms of Service describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our TOS.\n

\n
\n
\n\n"; +Discourse.URL_FIXTURES["/tos"] = "\n\n

\n The following terms and conditions govern all use of the discourse.org website and all content, services and products available at or through the website, including, but not limited to, discourse.org Forum Software, discourse.org Support Forums and the discourse.org Hosting service (\u201cHosting\u201d), (taken together, the Website). The Website is owned and operated by Civilized Discourse Construction Kit, Inc. (\u201cCDCK\u201d). The Website is offered subject to your acceptance without modification of all of the terms and conditions contained herein and all other operating rules, policies (including, without limitation, discourse.org\u2019s Privacy Policy and Community Guidelines) and procedures that may be published from time to time on this Site by CDCK (collectively, the \u201cAgreement\u201d).\n

\n\n

\n Please read this Agreement carefully before accessing or using the Website. By accessing or using any part of the web site, you agree to become bound by the terms and conditions of this agreement. If you do not agree to all the terms and conditions of this agreement, then you may not access the Website or use any services. If these terms and conditions are considered an offer by CDCK, acceptance is expressly limited to these terms. The Website is available only to individuals who are at least 13 years old.\n

\n\n
\n

1. Your discourse.org Account

\n

\n If you create an account on the Website, you are responsible for maintaining the security of your account and you are fully responsible for all activities that occur under the account. You must immediately notify CDCK of any unauthorized uses of your account or any other breaches of security. CDCK will not be liable for any acts or omissions by you, including any damages of any kind incurred as a result of such acts or omissions.\n

\n\n
\n

2. Responsibility of Contributors

\n

If you post material to the Website, post links on the Website, or otherwise make (or allow any third party to make) material available by means of the Website (any such material, \u201cContent\u201d), You are entirely responsible for the content of, and any harm resulting from, that Content. That is the case regardless of whether the Content in question constitutes text, graphics, an audio file, or computer software. By making Content available, you represent and warrant that:\n

\n\n\n
\n

3. User Content License

\n

User contributions are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Without limiting any of those representations or warranties, CDCK has the right (though not the obligation) to, in CDCK\u2019s sole discretion (i) refuse or remove any content that, in CDCK\u2019s reasonable opinion, violates any CDCK policy or is in any way harmful or objectionable, or (ii) terminate or deny access to and use of the Website to any individual or entity for any reason, in CDCK\u2019s sole discretion. CDCK will have no obligation to provide a refund of any amounts previously paid.

\n\n
\n

4. Payment and Renewal

\n

General Terms

\n

\n Optional paid services or upgrades may be available on the Website. When utilizing an optional paid service or upgrade, you agree to pay CDCK the monthly or annual subscription fees indicated. Payments will be charged on a pre-pay basis on the day you begin utilizing the service or upgrade and will cover the use of that service or upgrade for a monthly or annual subscription period as indicated. These fees are not refundable.\n

\n

Automatic Renewal

\n

Unless you notify CDCK before the end of the applicable subscription period that you want to cancel a service or upgrade, your subscription will automatically renew and you authorize us to collect the then-applicable annual or monthly subscription fee (as well as any taxes) using any credit card or other payment mechanism we have on record for you. Subscriptions can be canceled at any time.\n

\n\n
\n

5. Services

\n

Hosting, Support Services

\n

Optional Hosting and Support services may be provided by CDCK under the terms and conditions for each such service. By signing up for a Hosting/Support or Support services account, you agree to abide by such terms and conditions.\n

\n\n
\n

6. Responsibility of Website Visitors

\n

\n CDCK has not reviewed, and cannot review, all of the material, including computer software, posted to the Website, and cannot therefore be responsible for that material\u2019s content, use or effects. By operating the Website, CDCK does not represent or imply that it endorses the material there posted, or that it believes such material to be accurate, useful or non-harmful. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. The Website may contain content that is offensive, indecent, or otherwise objectionable, as well as content containing technical inaccuracies, typographical mistakes, and other errors. The Website may also contain material that violates the privacy or publicity rights, or infringes the intellectual property and other proprietary rights, of third parties, or the downloading, copying or use of which is subject to additional terms and conditions, stated or unstated. CDCK disclaims any responsibility for any harm resulting from the use by visitors of the Website, or from any downloading by those visitors of content there posted.\n

\n\n
\n

7. Content Posted on Other Websites

\n

We have not reviewed, and cannot review, all of the material, including computer software, made available through the websites and webpages to which discourse.org links, and that link to discourse.org. CDCK does not have any control over those non-discourse.org websites and webpages, and is not responsible for their contents or their use. By linking to a non-discourse.org website or webpage, CDCK does not represent or imply that it endorses such website or webpage. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. CDCK disclaims any responsibility for any harm resulting from your use of non-WordPress websites and webpages.\n

\n\n
\n

8. Copyright Infringement and DMCA Policy

\n

\n As CDCK asks others to respect its intellectual property rights, it respects the intellectual property rights of others. If you believe that material located on or linked to by discourse.org violates your copyright, and if this website resides in the USA, you are encouraged to notify CDCK in accordance with CDCK\u2019s Digital Millennium Copyright Act (\u201cDMCA\u201d) Policy. CDCK will respond to all such notices, including as required or appropriate by removing the infringing material or disabling all links to the infringing material. CDCK will terminate a visitor\u2019s access to and use of the Website if, under appropriate circumstances, the visitor is determined to be a repeat infringer of the copyrights or other intellectual property rights of CDCK or others. In the case of such termination, CDCK will have no obligation to provide a refund of any amounts previously paid to CDCK.\n

\n\n
\n

9. Intellectual Property

\n

\n This Agreement does not transfer from CDCK to you any CDCK or third party intellectual property, and all right, title and interest in and to such property will remain (as between the parties) solely with CDCK. CDCK, discourse.org, the discourse.org logo, and all other trademarks, service marks, graphics and logos used in connection with discourse.org, or the Website are trademarks or registered trademarks of CDCK or CDCK\u2019s licensors. Other trademarks, service marks, graphics and logos used in connection with the Website may be the trademarks of other third parties. Your use of the Website grants you no right or license to reproduce or otherwise use any CDCK or third-party trademarks.\n

\n\n
\n

10. Advertisements

\n

CDCK reserves the right to display advertisements on your content unless you have purchased an Ad-free Upgrade or a Services account.

\n\n
\n

11. Attribution

\n

CDCK reserves the right to display attribution links such as \u2018Powered by discourse.org,\u2019 theme author, and font attribution in your content footer or toolbar. Footer credits and the discourse.org toolbar may not be removed regardless of upgrades purchased.

\n\n
\n

12. Changes

\n

\nCDCK reserves the right, at its sole discretion, to modify or replace any part of this Agreement. It is your responsibility to check this Agreement periodically for changes. Your continued use of or access to the Website following the posting of any changes to this Agreement constitutes acceptance of those changes. CDCK may also, in the future, offer new services and/or features through the Website (including, the release of new tools and resources). Such new features and/or services shall be subject to the terms and conditions of this Agreement.\n

\n\n
\n

13. Termination

\n

\nCDCK may terminate your access to all or any part of the Website at any time, with or without cause, with or without notice, effective immediately. If you wish to terminate this Agreement or your discourse.org account (if you have one), you may simply discontinue using the Website. All provisions of this Agreement which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.\n

\n\n
\n

14. Disclaimer of Warranties

\n

\nThe Website is provided \u201cas is\u201d. CDCK and its suppliers and licensors hereby disclaim all warranties of any kind, express or implied, including, without limitation, the warranties of merchantability, fitness for a particular purpose and non-infringement. Neither CDCK nor its suppliers and licensors, makes any warranty that the Website will be error free or that cess thereto will be continuous or uninterrupted. If you\u2019re actually reading this, here\u2019s a treat. You understand that you download from, or otherwise obtain content or services through, the Website at your own discretion and risk.\n

\n\n
\n

15. Limitation of Liability

\n

\nIn no event will CDCK, or its suppliers or licensors, be liable with respect to any subject matter of this agreement under any contract, negligence, strict liability or other legal or equitable theory for: (i) any special, incidental or consequential damages; (ii) the cost of procurement for substitute products or services; (iii) for interruption of use or loss or corruption of data; or (iv) for any amounts that exceed the fees paid by you to CDCK under this agreement during the twelve (12) month period prior to the cause of action. CDCK shall have no liability for any failure or delay due to matters beyond their reasonable control. The foregoing shall not apply to the extent prohibited by applicable law.\n

\n\n
\n

16. General Representation and Warranty

\n

\nYou represent and warrant that (i) your use of the Website will be in strict accordance with the CDCK Privacy Policy, Community Guidelines, with this Agreement and with all applicable laws and regulations (including without limitation any local laws or regulations in your country, state, city, or other governmental area, regarding online conduct and acceptable content, and including all applicable laws regarding the transmission of technical data exported from the country in which this website resides or the country in which you reside) and (ii) your use of the Website will not infringe or misappropriate the intellectual property rights of any third party.\n

\n\n
\n

17. Indemnification

\n

\nYou agree to indemnify and hold harmless CDCK, its contractors, and its licensors, and their respective directors, officers, employees and agents from and against any and all claims and expenses, including attorneys\u2019 fees, arising out of your use of the Website, including but not limited to your violation of this Agreement.\n

\n\n
\n

18. Miscellaneous

\n

This Agreement constitutes the entire agreement between CDCK and you concerning the subject matter hereof, and they may only be modified by a written amendment signed by an authorized executive of CDCK, or by the posting by CDCK of a revised version. Except to the extent applicable law, if any, provides otherwise, this Agreement, any access to or use of the Website will be governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions, and the proper venue for any disputes arising out of or relating to any of the same will be the state and federal courts located in San Francisco County, California. Except for claims for injunctive or equitable relief or claims regarding intellectual property rights (which may be brought in any competent court without the posting of a bond), any dispute arising under this Agreement shall be finally settled in accordance with the Comprehensive Arbitration Rules of the Judicial Arbitration and Mediation Service, Inc. (\u201cJAMS\u201d) by three arbitrators appointed in accordance with such Rules. The arbitration shall take place in San Francisco, California, in the English language and the arbitral decision may be enforced in any court. The prevailing party in any action or proceeding to enforce this Agreement shall be entitled to costs and attorneys\u2019 fees. If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties\u2019 original intent, and the remaining portions will remain in full force and effect. A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, will not waive such term or condition or any subsequent breach thereof. You may assign your rights under this Agreement to any party that consents to, and agrees to be bound by, its terms and conditions; CDCK may assign its rights under this Agreement without condition. This Agreement will be binding upon and will inure to the benefit of the parties, their successors and permitted assigns.

\n\n

\n This document is CC-BY-SA. It was last updated May 31, 2013.
\n Originally adapted from the WordPress Terms of Service.\n

\n"; +Discourse.URL_FIXTURES["/privacy"] = "\n\n\n\n
\n

What information do we collect?

\n

\nWe collect information from you when you register on our site and gather data when you participate in the forum by reading, writing, and evaluating the content shared here.\n

\n\n

\n When registering on our site, you may be asked to enter your name and e-mail address. You may, however, visit our site without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.\n

\n\n

\n When registered and posting, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server.\n

\n\n
\n

What do we use your information for?

\n

Any of the information we collect from you may be used in one of the following ways:

\n\n\n
\n

How do we protect your information?

\n

\n We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information.\n

\n\n
\n

What is your data retention policy?

\n\n

\n We will make a good faith effort to:\n

\n\n

\n\n\n
\n

Do we use cookies?

\n

\n Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.\n

\n\n

\n We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business.\n

\n\n
\n

Do we disclose any information to outside parties?

\n

\nWe do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.\n

\n\n
\n

Third party links

\n

\n Occasionally, at our discretion, we may include or offer third party products or services on our site. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites.\n

\n\n
\n

Children's Online Privacy Protection Act Compliance

\n

\nOur site, products and services are all directed to people who are at least 13 years old or older. If this server is in the USA, and you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act), do not use this site.\n

\n\n
\n

Online Privacy Policy Only

\n

\nThis online privacy policy applies only to information collected through our site and not to information collected offline.\n

\n\n
\n

Your Consent

\n

\nBy using our site, you consent to our web site privacy policy.\n

\n\n
\n

Changes to our Privacy Policy

\n

\nIf we decide to change our privacy policy, we will post those changes on this page.\n

\n\n

\n This document is CC-BY-SA. It was last updated May 31, 2013.\n

\n\n"; diff --git a/test/javascripts/fixtures/topic_fixtures.js b/test/javascripts/fixtures/topic_fixtures.js index 919891ab5..70c36140b 100644 --- a/test/javascripts/fixtures/topic_fixtures.js +++ b/test/javascripts/fixtures/topic_fixtures.js @@ -1,2 +1,2 @@ /*jshint maxlen:10000000 */ -Discourse.URL_FIXTURES["/t/280.json"] = {"post_stream":{"posts":[{"id":398,"post_number":1,"post_type":1,"created_at":"2013-02-05T16:29:00-05:00","updated_at":"2013-02-05T16:29:00-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":22,"incoming_link_count":0,"reads":331,"score":99.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Uwe Keim","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","internal":true,"reflection":true,"title":"Language mirrors","clicks":30},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","internal":true,"reflection":true,"title":"Roadplan for Discourse","clicks":18},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","internal":true,"reflection":true,"title":"Internationalization I18n provided for discourse ?","clicks":17},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","internal":true,"reflection":true,"title":"Solving XDA-Developer style forums","clicks":6},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","internal":true,"reflection":true,"title":"How to change language?","clicks":5},{"url":"http://meta.discourse.org/t/translation-workflow/6102","internal":true,"reflection":true,"title":"Translation workflow","clicks":3},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","internal":true,"reflection":true,"title":"Bookmark/last read sometimes doesn't go to the end of a topic","clicks":3},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","internal":true,"reflection":true,"title":"Comrades let's join our efforts on ukrainian and russian translations","clicks":3},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":2},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","internal":true,"reflection":true,"title":"[missing {{user}} value] in Chinese localized page","clicks":1},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","internal":true,"reflection":true,"title":"When will discourse provide an local language configuration","clicks":1},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":0},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","internal":true,"reflection":true,"title":"I like discourse,want join discourse translation team","clicks":0}],"cooked":"

Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?

","read":false,"username":"uwe_keim","name":"Uwe Keim","user_title":null,"actions_summary":[{"id":2,"count":0,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","user_id":255,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":419,"post_number":2,"post_type":1,"created_at":"2013-02-05T16:32:47-05:00","updated_at":"2013-02-06T05:15:27-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":26,"incoming_link_count":10,"reads":325,"score":236.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":2,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","internal":false,"reflection":false,"clicks":71}],"cooked":"

The application strings are externalized, so localization should be entirely possible with enough translation effort.

","read":false,"username":"tms","name":"Tim Stone","user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","user_id":9,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":1060,"post_number":3,"post_type":1,"created_at":"2013-02-05T21:26:24-05:00","updated_at":"2013-06-18T22:58:28-04:00","reply_count":3,"reply_to_post_number":null,"quote_count":0,"avg_time":35,"incoming_link_count":4,"reads":319,"score":145.55,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Jeff Atwood","version":3,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales","internal":false,"reflection":false,"clicks":3}],"cooked":"

Yep, all strings are going through a lookup table.*

\n\n

https://github.com/discourse/discourse/blob/master/config/locales

\n\n

So you could replace that lookup table with the \"de\" one to get German.

\n\n

* we didn't get all the strings into the lookup table for launch, but the vast, vast majority of them are and the ones that are not, we will fix as we go!

","read":false,"username":"codinghorror","name":"Jeff Atwood","user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","user_id":32,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3623,"post_number":4,"post_type":1,"created_at":"2013-02-07T07:55:33-05:00","updated_at":"2013-02-07T07:55:33-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":21,"incoming_link_count":10,"reads":277,"score":241.45,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Shade","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","internal":true,"reflection":true,"title":"Hi, support Chinese?","clicks":12}],"cooked":"

Is it a coincidence that the strings file is 1337 lines long? :D

","read":false,"username":"shade","name":"Shade","user_title":null,"actions_summary":[{"id":2,"count":7,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","user_id":1808,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":3651,"post_number":5,"post_type":1,"created_at":"2013-02-07T09:02:07-05:00","updated_at":"2013-02-07T09:05:42-05:00","reply_count":2,"reply_to_post_number":3,"quote_count":1,"avg_time":24,"incoming_link_count":6,"reads":271,"score":155.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","internal":false,"reflection":false,"clicks":47},{"url":"/users/codinghorror","internal":true,"reflection":false,"clicks":5}],"cooked":"

\n\n

The problem I see here is that this file is likely two grow and change massively over the next couple months, and tracking these changes in order to keep a localized file up to date is going to be a bitch.

\n\n

I wonder where there is a tool that can compare two yml structures and point out which nodes are missing? That would help keep track of new strings.

\n\n

Re keeping track of changed strings, @codinghorror I found this very interesting: http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders if plain English placeholders were used, any change in strings would lead to a new node in the yml file, making keeping the translation up to date easier. Maybe worth thinking about in the future.

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3654,"post_number":6,"post_type":1,"created_at":"2013-02-07T09:05:39-05:00","updated_at":"2013-02-07T09:05:39-05:00","reply_count":1,"reply_to_post_number":5,"quote_count":0,"avg_time":20,"incoming_link_count":1,"reads":243,"score":74.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/SlexAxton/messageformat.js","internal":false,"reflection":false,"clicks":34},{"url":"https://github.com/SlexAxton","internal":false,"reflection":false,"clicks":8}],"cooked":"

Yes, I really like the concept of fuzzy matching for localization, perhaps you can chase up alex sexton he was meaning to upload a localization tool for this kind of stuff.

\n\n

Also, I am a big fan of ICU message format, but it is not the \"Rails way (tm)\".

","read":false,"username":"sam","name":"Sam Saffron","user_title":"Chief Waffle","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3655,"post_number":7,"post_type":1,"created_at":"2013-02-07T09:08:17-05:00","updated_at":"2013-02-07T09:12:02-05:00","reply_count":1,"reply_to_post_number":6,"quote_count":1,"avg_time":18,"incoming_link_count":0,"reads":245,"score":69.9,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://translate.wordpress.org/projects/bbpress/dev","internal":false,"reflection":false,"clicks":13}],"cooked":"

Looks interesting, I'll take a peek.

\n\n

As said on dev, the best tool I can see in terms of giving translators a proper interface and quality control would be something like GlotPress. It's based on the PO messages format (is that somehow related to ICU?) but looks pretty great.

\n\n

\n\n

I'm not familiar with the term in this context, you mean keeping the English version in the code base (instead of a generic code like message_error_nametooshort ?)

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3658,"post_number":8,"post_type":1,"created_at":"2013-02-07T09:12:22-05:00","updated_at":"2013-02-07T09:12:22-05:00","reply_count":1,"reply_to_post_number":7,"quote_count":0,"avg_time":12,"incoming_link_count":0,"reads":222,"score":65.0,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","internal":true,"reflection":true,"title":"What I love about WordPress plugins","clicks":7}],"cooked":"

ICU Message format is basically Gettext on steroids, Gettext has been around for so many years and actually works pretty well, being super prevalent in Linux.

\n\n

Trouble is you need a fuzzy matcher for translators if you are going to store stuff like mf.compile( 'This is a message.' ) in source, one letter change and all your translators need to validate it.

","read":false,"username":"sam","name":"Sam Saffron","user_title":"Chief Waffle","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3660,"post_number":9,"post_type":1,"created_at":"2013-02-07T09:14:12-05:00","updated_at":"2013-02-07T09:18:09-05:00","reply_count":1,"reply_to_post_number":8,"quote_count":1,"avg_time":11,"incoming_link_count":0,"reads":221,"score":64.75,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

\n\n

Yeah, that's why I've always been a friend of message_error_nametooshort placeholders, until I asked the SO question linked above. The accepted answer makes a good argument against those placeholders: you want translations to break even on small changes in the English original because the translations will probably need to reflect the change, too. Maybe that's not the case right now as new stuff is being checked in pretty much every couple of hours, but in the long run, it'll be overwhelmingly true.

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3667,"post_number":10,"post_type":1,"created_at":"2013-02-07T09:25:16-05:00","updated_at":"2013-02-07T09:25:16-05:00","reply_count":1,"reply_to_post_number":9,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":211,"score":62.6,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

Hmm...You could theoretically also build something into the development process that would monitor changes to the English locale file and make a translator-friendly list of changes between versions.

","read":false,"username":"tms","name":"Tim Stone","user_title":null,"reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","user_id":9,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3673,"post_number":11,"post_type":1,"created_at":"2013-02-07T09:30:21-05:00","updated_at":"2013-02-07T09:30:21-05:00","reply_count":1,"reply_to_post_number":10,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":207,"score":61.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

Yeah, totally, also we could build tools for dev that make introducing string less annoying and make it possible to garbage collect old unused strings, I hate trudging through that file.

","read":false,"username":"sam","name":"Sam Saffron","user_title":"Chief Waffle","reply_to_user":{"username":"tms","name":"Tim Stone"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3675,"post_number":12,"post_type":1,"created_at":"2013-02-07T09:33:38-05:00","updated_at":"2013-02-07T09:34:39-05:00","reply_count":1,"reply_to_post_number":11,"quote_count":1,"avg_time":9,"incoming_link_count":1,"reads":206,"score":66.65,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

\n\n

As said, I'd look into whether WP's tools can't be reused for this with some tweaking. They seem to be able to scan a code base for new strings, and make them available automatically to translators.

\n\n

They're PHP based which isn't ideal, but it looks like they've done a crapload of work to take the hassle out of translations.

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3690,"post_number":13,"post_type":1,"created_at":"2013-02-07T10:05:35-05:00","updated_at":"2013-02-07T10:05:35-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":8,"incoming_link_count":9,"reads":212,"score":117.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Valts","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

This site looks so nice with all the little tweaks like \"10 minutes ago\" instead of simply time, etc - I wonder if there will also be support for proper pluralization in other languages? That's a pretty hard task though, I don't think I've ever seen a website that has done that. But it would be awesome.

","read":false,"username":"Vilx","name":"Valts","user_title":null,"actions_summary":[{"id":2,"count":2,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon","user_id":1216,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3925,"post_number":14,"post_type":1,"created_at":"2013-02-07T14:37:06-05:00","updated_at":"2013-02-07T14:37:06-05:00","reply_count":1,"reply_to_post_number":12,"quote_count":1,"avg_time":9,"incoming_link_count":0,"reads":201,"score":120.65,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/","internal":false,"reflection":false,"clicks":44}],"cooked":"

\n\n

I've had pretty decent luck using Localeapp to localize Rails applications:

\n\n

http://www.localeapp.com/

\n\n

The developer workflow took me about an hour to really get used to, and there were a few minor glitches. But the non-technical translators had very few problems. One limitation: It insists on rewriting all those yaml files full of strings.

\n\n

Anyway, it's worth a look, and it's free for open source, if I recall correctly. Certainly easier than doing a whole bunch of toolsmithing from scratch.

","read":false,"username":"emk","name":"Eric Kidd","user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","user_id":1860,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":3938,"post_number":15,"post_type":1,"created_at":"2013-02-07T14:52:13-05:00","updated_at":"2013-02-07T14:52:13-05:00","reply_count":1,"reply_to_post_number":14,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":190,"score":58.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

\n\n

Ohhh. Looking sexy. droool

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3982,"post_number":16,"post_type":1,"created_at":"2013-02-07T15:52:22-05:00","updated_at":"2013-02-07T15:52:22-05:00","reply_count":1,"reply_to_post_number":15,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":185,"score":57.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

\n\n

Yeah, it's pretty. :-) But there were still some rough edges as of a few months ago.

\n\n

Whether or not those rough edges are a deal-breaker will probably depends on whether or not localization is already a source of acute pain. If you're already hurting, Localeapp is a pretty useful tool, especially when it comes to enlisting non-technical translators.

\n\n

But it does require changing how you work with text, and adding one new tool to the mix. So for projects that just don't want to know about non-English languages, it's not yet seamless the way Unicode is these days.

\n\n

(Sweet forum software, by the way. I was just testing out Egyptian hieroglyphics on the test server, because they're well off the Basic Multilingual Plane, and tend to flush Unicode bugs. Everything worked flawlessly.)

","read":false,"username":"emk","name":"Eric Kidd","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","user_id":1860,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":3989,"post_number":17,"post_type":1,"created_at":"2013-02-07T16:04:15-05:00","updated_at":"2013-02-07T16:04:15-05:00","reply_count":2,"reply_to_post_number":16,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":188,"score":63.0,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

\n\n

Interesting, thanks for the insight. I don't think localization is seriously on their table right now, there's likely to be many other things on the table before it... but it will become an issue sooner or later.

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3996,"post_number":18,"post_type":1,"created_at":"2013-02-07T16:12:06-05:00","updated_at":"2013-02-07T16:12:06-05:00","reply_count":2,"reply_to_post_number":17,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":191,"score":108.65,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

I had an idea ... what if in dev mode, you could right-click on a page and get access to all the translations on the page, make your edits and have it refreshed live.

\n\n

I think it would be awesome, very doable technically.

","read":false,"username":"sam","name":"Sam Saffron","user_title":"Chief Waffle","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":4,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":4009,"post_number":19,"post_type":1,"created_at":"2013-02-07T16:18:47-05:00","updated_at":"2013-02-07T16:22:10-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":181,"score":51.65,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"cooked":"

That would be fricking cool. There'd still be some leftovers (like error messages that normally never show up, etc.) but you could corral those up on a specific page.

\n\n

It could have a dropdown giving you all the languages that you have a .yml for in the locale directory, and write the changes into the one selected. I'm sure people would love it.

","read":false,"username":"pekka","name":"Pekka Gaiser","user_title":null,"reply_to_user":{"username":"sam","name":"Sam Saffron"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":4012,"post_number":20,"post_type":1,"created_at":"2013-02-07T16:22:46-05:00","updated_at":"2013-02-07T16:22:46-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":11,"incoming_link_count":1,"reads":181,"score":56.75,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Marco Ceppi","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://translations.launchpad.net/","internal":false,"reflection":false,"clicks":7}],"cooked":"

If you use gettext format you could leverage Launchpad translations and the community behind it.

","read":false,"username":"marcoceppi","name":"Marco Ceppi","user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","user_id":761,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":4025,"post_number":21,"post_type":1,"created_at":"2013-02-07T16:36:14-05:00","updated_at":"2013-02-07T16:36:14-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":2,"avg_time":19,"incoming_link_count":2,"reads":190,"score":153.95,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code","internal":false,"reflection":false,"clicks":17}],"cooked":"

\n\n

One of the modes in LocaleApp is actually pretty great for this sort of work. When I'm coding, I just type something like like the following:

\n\n
          link_to t('.source_code'), langforums_github_url\n
\n\n

Then I reload the page, and I see a bunch of empty boxes on this page here (this link is real):

\n\n

\n\n

Then I fill in the two languages that I allegedly speak, and everything shows up automatically on the next reload. I can sync the translations back down into my local yaml file with one command, or ask for it to happen automagically.

\n\n

So it's definitely a little more work than just typing \"Source code langforums.org\" directly into the view source. But if you need to localize, it's really pretty reasonable. And the interface for translators is quite easy to use.

\n\n

As of a few months ago, LocaleApp was far-and-away the best option for Rails localization. But as you can see, it takes a couple of extra steps.

\n\n

\n\n

I'm generally in favor of localization, especially for big open source projects. I think most of the groundwork has already been laid, actually. And if you give translators halfway-decent tools, it's easy to find volunteers.

","read":false,"username":"emk","name":"Eric Kidd","user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","user_id":1860,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1}],"stream":[398,419,1060,3623,3651,3654,3655,3658,3660,3667,3673,3675,3690,3925,3938,3982,3989,3996,4009,4012,4025,4056,4058,4093,4129,6288,6302,6683,6687,7059,7078,7197,7445,7448,7524,7528,7784,8379,8426,8427,8569,8570,8577,8861,8992,8999,9000,9002,9015,9048,9052,9104,9408,9435,9625,9631,9655,9896,10386,10400,10547,10671,10700,10710,10714,10753,10786,10846,10893,10994,11001,11107,11221,11225,11229,11251,11660,12453,12454,12462,12624,12625,12627,12628,12629,12630,12918,13501,13507,17251,17252,17977,20706,21397]},"draft":null,"draft_key":"topic_280","draft_sequence":null,"pinned":false,"details":{"auto_close_at":null,"created_by":{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon"},"last_poster":{"id":5683,"username":"AndreKR","avatar_template":"https://www.gravatar.com/avatar/3ad32697402bb21379768728e8640a22.png?s={size}&r=pg&d=identicon"},"participants":[{"id":212,"username":"alxndr","avatar_template":"https://www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon","post_count":11},{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","post_count":11},{"id":7,"username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","post_count":7},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon","post_count":7},{"id":2995,"username":"tattoo","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","post_count":6},{"id":2540,"username":"jgourdon","avatar_template":"https://www.gravatar.com/avatar/3f0ee7e17ec820c458958ed7b0e8538b.png?s={size}&r=pg&d=identicon","post_count":5},{"id":1860,"username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","post_count":4},{"id":1275,"username":"dacap","avatar_template":"https://www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","post_count":4},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3704,"username":"mojzis","avatar_template":"https://www.gravatar.com/avatar/90847dfc44c19a250e9000bcfc7d1507.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1895,"username":"maciek","avatar_template":"https://www.gravatar.com/avatar/e3fe0c49f509994d67045602f49808ee.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3190,"username":"gururea","avatar_template":"https://www.gravatar.com/avatar/5ffb222c9c1bd2d99d9267c1557ca984.png?s={size}&r=pg&d=identicon","post_count":3},{"id":9,"username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3620,"username":"potthast","avatar_template":"https://www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","post_count":2},{"id":1979,"username":"Superuser","avatar_template":"https://www.gravatar.com/avatar/a7f1529299c8fb9a263b8e8afcab23da.png?s={size}&r=pg&d=identicon","post_count":2},{"id":22,"username":"splattne","avatar_template":"https://www.gravatar.com/avatar/7847006dbf49f1722b07c8da396f1275.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3818,"username":"Tudor","avatar_template":"https://www.gravatar.com/avatar/8f367608e1d013beed72a8941bb768ca.png?s={size}&r=pg&d=identicon","post_count":2},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","post_count":2},{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2753,"username":"mikl","avatar_template":"https://www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5052,"username":"vulkanino","avatar_template":"https://www.gravatar.com/avatar/811bf232b634245aebba5323462d885c.png?s={size}&r=pg&d=identicon","post_count":1},{"id":761,"username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2316,"username":"pakl","avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5564,"username":"Sjors","avatar_template":"https://www.gravatar.com/avatar/2fb09bd6501779802459a171d3f8fbd9.png?s={size}&r=pg&d=identicon","post_count":1}],"suggested_topics":[{"id":2231,"fancy_title":"Post history - saving individual versions of edited posts","slug":"post-history-saving-individual-versions-of-edited-posts","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2013-02-07T15:09:30-05:00","last_posted_at":"2013-02-14T03:20:42-05:00","bumped":true,"bumped_at":"2013-02-14T03:20:42-05:00","unseen":false,"title":"Post history - saving individual versions of edited posts","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":2,"views":90,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":389,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":6765,"fancy_title":"Discourse as a livetweet/stream chat alternative","slug":"discourse-as-a-livetweet-stream-chat-alternative","posts_count":8,"reply_count":4,"highest_post_number":8,"image_url":null,"created_at":"2013-05-21T10:31:14-04:00","last_posted_at":"2013-05-28T09:27:10-04:00","bumped":true,"bumped_at":"2013-05-28T09:27:10-04:00","unseen":false,"title":"Discourse as a livetweet/stream chat alternative","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":1,"views":179,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":389,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":5838,"fancy_title":"Mini Onebox support","slug":"mini-onebox-support","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2013-04-12T18:59:32-04:00","last_posted_at":"2013-04-15T18:01:09-04:00","bumped":true,"bumped_at":"2013-04-15T18:01:09-04:00","unseen":false,"title":"Mini Onebox support","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":5,"views":158,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":389,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":7664,"fancy_title":"Topic Progress Bar Shading Too Faint","slug":"topic-progress-bar-shading-too-faint","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s=40&r=pg&d=identicon","created_at":"2013-06-20T15:21:33-04:00","last_posted_at":"2013-06-21T13:47:59-04:00","bumped":true,"bumped_at":"2013-06-21T13:47:59-04:00","unseen":false,"title":"Topic Progress Bar Shading Too Faint","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":2,"views":59,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":389,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":7417,"fancy_title":"Oneboxing “non-traditional” URLs","slug":"oneboxing-non-traditional-urls","posts_count":9,"reply_count":7,"highest_post_number":9,"image_url":null,"created_at":"2013-06-12T11:42:19-04:00","last_posted_at":"2013-06-12T21:19:07-04:00","bumped":true,"bumped_at":"2013-06-12T21:19:07-04:00","unseen":false,"title":"Oneboxing \"non-traditional\" URLs","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":4,"views":94,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":389,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}}],"links":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"71","user_id":9},{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"47","user_id":7},{"url":"http://www.localeapp.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"44","user_id":1860},{"url":"https://github.com/SlexAxton/messageformat.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"34","user_id":1},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","title":"Language mirrors","fancy_title":null,"internal":true,"reflection":true,"clicks":"30","user_id":32},{"url":"https://github.com/berk/tr8n","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"18","user_id":1},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"18","user_id":32},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","title":"Internationalization I18n provided for discourse ?","fancy_title":null,"internal":true,"reflection":true,"clicks":"17","user_id":114},{"url":"http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"17","user_id":1860},{"url":"https://translations.launchpad.net/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":761},{"url":"https://www.transifex.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":1979},{"url":"http://translate.wordpress.org/projects/bbpress/dev","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"13","user_id":7},{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","title":"Hi, support Chinese?","fancy_title":null,"internal":true,"reflection":true,"clicks":"12","user_id":2014},{"url":"http://weblate.org","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"11","user_id":2316},{"url":"https://github.com/SlexAxton","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"8","user_id":1},{"url":"https://github.com/discourse/discourse/pull/493","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":2753},{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","title":"What I love about WordPress plugins","fancy_title":null,"internal":true,"reflection":true,"clicks":"7","user_id":1},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","title":"Solving XDA-Developer style forums","fancy_title":null,"internal":true,"reflection":true,"clicks":"6","user_id":639},{"url":"https://github.com/gururea/discourse/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"6","user_id":3190},{"url":"http://www.getlocalization.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":22},{"url":"http://tr8n.github.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":212},{"url":"/users/codinghorror","title":null,"fancy_title":null,"internal":true,"reflection":false,"clicks":"5","user_id":7},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","title":"How to change language?","fancy_title":null,"internal":true,"reflection":true,"clicks":"5","user_id":1995},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.en.yml#L691","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"https://github.com/dacap/discourse/tree/spanish","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":1275},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.nl.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"http://meta.discourse.org/t/translation-workflow/6102","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":4702},{"url":"http://translate.sourceforge.net/wiki/virtaal/index","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":1979},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","title":"Bookmark/last read sometimes doesn't go to the end of a topic","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3681},{"url":"https://github.com/discourse/discourse/blob/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":32},{"url":"https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":212},{"url":"http://meta.discourse.org/t/failed-to-create-new-category-when-set-the-default-locale-to-zh-cn/4703","title":"Failed to create new category when set the default_locale to zh_CN","fancy_title":null,"internal":true,"reflection":false,"clicks":"3","user_id":2995},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","title":"Comrades let's join our efforts on ukrainian and russian translations","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3417},{"url":"http://en.lichess.org/@/Hellball","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.youtube.com/watch?v=MqqdzJ98q7s","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://pootle.locamotion.org/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://www.madanalogy.com/2012/06/rails-i18n-translations-in-yaml.html","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"2","user_id":1},{"url":"https://poeditor.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.slideshare.net/HeatherRivers/linguistic-potluck-crowdsourcing-localization-with-rails","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1995},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","title":"[missing {{user}} value] in Chinese localized page","fancy_title":null,"internal":true,"reflection":true,"clicks":"1","user_id":1},{"url":"http://meta.discourse.org/t/translation-workflow/6102/6","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":false,"clicks":"1","user_id":1995},{"url":"http://en.wikipedia.org/wiki/T%E2%80%93V_distinction","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":3620},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","title":"When will discourse provide an local language configuration","fancy_title":null,"internal":true,"reflection":true,"clicks":"1","user_id":3987},{"url":"https://github.com/discourse/discourse/blob/master/app/assets/javascripts/locales/date_locales.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":461},{"url":"http://meta.discourse.org/t/translation-tools-transifex-localeapp/7763","title":"Translation Tools: Transifex? Localeapp?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1},{"url":"http://sugarjs.com/dates#date_locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":461},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","title":"I like discourse,want join discourse translation team","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1995},{"url":"http://guides.rubyonrails.org/i18n.html#the-public-i18n-api","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":1895}]},"highest_post_number":95,"id":280,"title":"Internationalization / localization","fancy_title":"Internationalization / localization","posts_count":94,"created_at":"2013-02-05T16:29:00-05:00","views":2314,"reply_count":65,"last_posted_at":"2013-06-25T21:50:28-04:00","visible":true,"closed":false,"archived":false,"has_best_of":true,"archetype":"regular","slug":"internationalization-localization","category_id":2}; \ No newline at end of file +Discourse.URL_FIXTURES["/t/280.json"] = {"post_stream":{"posts":[{"id":398,"name":"Uwe Keim","username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:29:00-05:00","cooked":"

Any plans to support localization of UI elements, so that I (for example) could set up a completely German speaking forum?

","post_number":1,"post_type":1,"updated_at":"2013-02-05T16:29:00-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":22,"incoming_link_count":0,"reads":336,"score":102.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Uwe Keim","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","internal":true,"reflection":true,"title":"Language mirrors","clicks":31},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","internal":true,"reflection":true,"title":"Roadplan for Discourse","clicks":19},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","internal":true,"reflection":true,"title":"Internationalization I18n provided for discourse ?","clicks":17},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","internal":true,"reflection":true,"title":"Solving XDA-Developer style forums","clicks":6},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","internal":true,"reflection":true,"title":"How to change language?","clicks":5},{"url":"http://meta.discourse.org/t/translation-workflow/6102","internal":true,"reflection":true,"title":"Translation workflow","clicks":4},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","internal":true,"reflection":true,"title":"Bookmark/last read sometimes doesn't go to the end of a topic","clicks":3},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","internal":true,"reflection":true,"title":"Comrades let's join our efforts on ukrainian and russian translations","clicks":3},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":2},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","internal":true,"reflection":true,"title":"When will discourse provide an local language configuration","clicks":1},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","internal":true,"reflection":true,"title":"[missing {{user}} value] in Chinese localized page","clicks":1},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","internal":true,"reflection":true,"title":"Suggestion: Translation on admin panel","clicks":0},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","internal":true,"reflection":true,"title":"I like discourse,want join discourse translation team","clicks":0}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":0,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":255,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":419,"name":"Tim Stone","username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T16:32:47-05:00","cooked":"

The application strings are externalized, so localization should be entirely possible with enough translation effort.

","post_number":2,"post_type":1,"updated_at":"2013-02-06T05:15:27-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":26,"incoming_link_count":10,"reads":329,"score":237.1,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":2,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","internal":false,"reflection":false,"clicks":71}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":9,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":1060,"name":"Jeff Atwood","username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-05T21:26:24-05:00","cooked":"

Yep, all strings are going through a lookup table.*

\n\n

https://github.com/discourse/discourse/blob/master/config/locales

\n\n

So you could replace that lookup table with the \"de\" one to get German.

\n\n

* we didn't get all the strings into the lookup table for launch, but the vast, vast majority of them are and the ones that are not, we will fix as we go!

","post_number":3,"post_type":1,"updated_at":"2013-06-18T22:58:28-04:00","reply_count":3,"reply_to_post_number":null,"quote_count":0,"avg_time":35,"incoming_link_count":4,"reads":322,"score":146.15,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Jeff Atwood","version":3,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales","internal":false,"reflection":false,"clicks":4}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":32,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3623,"name":"Shade","username":"shade","avatar_template":"https://www.gravatar.com/avatar/02c3f1806f6962f56168c7bd9f8924b8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T07:55:33-05:00","cooked":"

Is it a coincidence that the strings file is 1337 lines long? :D

","post_number":4,"post_type":1,"updated_at":"2013-02-07T07:55:33-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":21,"incoming_link_count":10,"reads":280,"score":242.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Shade","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","internal":true,"reflection":true,"title":"Hi, support Chinese?","clicks":13}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":7,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1808,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":3651,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:02:07-05:00","cooked":"

\n\n

The problem I see here is that this file is likely two grow and change massively over the next couple months, and tracking these changes in order to keep a localized file up to date is going to be a bitch.

\n\n

I wonder where there is a tool that can compare two yml structures and point out which nodes are missing? That would help keep track of new strings.

\n\n

Re keeping track of changed strings, @codinghorror I found this very interesting: http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders if plain English placeholders were used, any change in strings would lead to a new node in the yml file, making keeping the translation up to date easier. Maybe worth thinking about in the future.

","post_number":5,"post_type":1,"updated_at":"2013-02-07T09:05:42-05:00","reply_count":2,"reply_to_post_number":3,"quote_count":1,"avg_time":24,"incoming_link_count":6,"reads":274,"score":156.0,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","internal":false,"reflection":false,"clicks":47},{"url":"/users/codinghorror","internal":true,"reflection":false,"clicks":5}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3654,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:05:39-05:00","cooked":"

Yes, I really like the concept of fuzzy matching for localization, perhaps you can chase up alex sexton he was meaning to upload a localization tool for this kind of stuff.

\n\n

Also, I am a big fan of ICU message format, but it is not the \"Rails way (tm)\".

","post_number":6,"post_type":1,"updated_at":"2013-02-07T09:05:39-05:00","reply_count":1,"reply_to_post_number":5,"quote_count":0,"avg_time":20,"incoming_link_count":1,"reads":245,"score":75.0,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://github.com/SlexAxton/messageformat.js","internal":false,"reflection":false,"clicks":34},{"url":"https://github.com/SlexAxton","internal":false,"reflection":false,"clicks":9}],"read":false,"user_title":"Chief Waffle","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3655,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:08:17-05:00","cooked":"

Looks interesting, I'll take a peek.

\n\n

As said on dev, the best tool I can see in terms of giving translators a proper interface and quality control would be something like GlotPress. It's based on the PO messages format (is that somehow related to ICU?) but looks pretty great.

\n\n

\n\n

I'm not familiar with the term in this context, you mean keeping the English version in the code base (instead of a generic code like message_error_nametooshort ?)

","post_number":7,"post_type":1,"updated_at":"2013-02-07T09:12:02-05:00","reply_count":1,"reply_to_post_number":6,"quote_count":1,"avg_time":18,"incoming_link_count":0,"reads":247,"score":70.3,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://translate.wordpress.org/projects/bbpress/dev","internal":false,"reflection":false,"clicks":13}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3658,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:12:22-05:00","cooked":"

ICU Message format is basically Gettext on steroids, Gettext has been around for so many years and actually works pretty well, being super prevalent in Linux.

\n\n

Trouble is you need a fuzzy matcher for translators if you are going to store stuff like mf.compile( 'This is a message.' ) in source, one letter change and all your translators need to validate it.

","post_number":8,"post_type":1,"updated_at":"2013-02-07T09:12:22-05:00","reply_count":1,"reply_to_post_number":7,"quote_count":0,"avg_time":12,"incoming_link_count":0,"reads":224,"score":65.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","internal":true,"reflection":true,"title":"What I love about WordPress plugins","clicks":7}],"read":false,"user_title":"Chief Waffle","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3660,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:14:12-05:00","cooked":"

\n\n

Yeah, that's why I've always been a friend of message_error_nametooshort placeholders, until I asked the SO question linked above. The accepted answer makes a good argument against those placeholders: you want translations to break even on small changes in the English original because the translations will probably need to reflect the change, too. Maybe that's not the case right now as new stuff is being checked in pretty much every couple of hours, but in the long run, it'll be overwhelmingly true.

","post_number":9,"post_type":1,"updated_at":"2013-02-07T09:18:09-05:00","reply_count":1,"reply_to_post_number":8,"quote_count":1,"avg_time":11,"incoming_link_count":0,"reads":223,"score":65.15,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3667,"name":"Tim Stone","username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:25:16-05:00","cooked":"

Hmm...You could theoretically also build something into the development process that would monitor changes to the English locale file and make a translator-friendly list of changes between versions.

","post_number":10,"post_type":1,"updated_at":"2013-02-07T09:25:16-05:00","reply_count":1,"reply_to_post_number":9,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":213,"score":63.0,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Tim Stone","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":9,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3673,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:30:21-05:00","cooked":"

Yeah, totally, also we could build tools for dev that make introducing string less annoying and make it possible to garbage collect old unused strings, I hate trudging through that file.

","post_number":11,"post_type":1,"updated_at":"2013-02-07T09:30:21-05:00","reply_count":1,"reply_to_post_number":10,"quote_count":0,"avg_time":8,"incoming_link_count":0,"reads":209,"score":62.2,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":"Chief Waffle","reply_to_user":{"username":"tms","name":"Tim Stone"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3675,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T09:33:38-05:00","cooked":"

\n\n

As said, I'd look into whether WP's tools can't be reused for this with some tweaking. They seem to be able to scan a code base for new strings, and make them available automatically to translators.

\n\n

They're PHP based which isn't ideal, but it looks like they've done a crapload of work to take the hassle out of translations.

","post_number":12,"post_type":1,"updated_at":"2013-02-07T09:34:39-05:00","reply_count":1,"reply_to_post_number":11,"quote_count":1,"avg_time":9,"incoming_link_count":1,"reads":208,"score":67.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3690,"name":"Valts","username":"Vilx","avatar_template":"https://www.gravatar.com/avatar/7bd2e50770e937761cfc3811a332bccc.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T10:05:35-05:00","cooked":"

This site looks so nice with all the little tweaks like \"10 minutes ago\" instead of simply time, etc - I wonder if there will also be support for proper pluralization in other languages? That's a pretty hard task though, I don't think I've ever seen a website that has done that. But it would be awesome.

","post_number":13,"post_type":1,"updated_at":"2013-02-07T10:05:35-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":8,"incoming_link_count":9,"reads":215,"score":118.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Valts","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":2,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1216,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3925,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:37:06-05:00","cooked":"

\n\n

I've had pretty decent luck using Localeapp to localize Rails applications:

\n\n

http://www.localeapp.com/

\n\n

The developer workflow took me about an hour to really get used to, and there were a few minor glitches. But the non-technical translators had very few problems. One limitation: It insists on rewriting all those yaml files full of strings.

\n\n

Anyway, it's worth a look, and it's free for open source, if I recall correctly. Certainly easier than doing a whole bunch of toolsmithing from scratch.

","post_number":14,"post_type":1,"updated_at":"2013-02-07T14:37:06-05:00","reply_count":1,"reply_to_post_number":12,"quote_count":1,"avg_time":9,"incoming_link_count":0,"reads":203,"score":121.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/","internal":false,"reflection":false,"clicks":45}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":3938,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T14:52:13-05:00","cooked":"

\n\n

Ohhh. Looking sexy. droool

","post_number":15,"post_type":1,"updated_at":"2013-02-07T14:52:13-05:00","reply_count":1,"reply_to_post_number":14,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":192,"score":58.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3982,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T15:52:22-05:00","cooked":"

\n\n

Yeah, it's pretty. :-) But there were still some rough edges as of a few months ago.

\n\n

Whether or not those rough edges are a deal-breaker will probably depends on whether or not localization is already a source of acute pain. If you're already hurting, Localeapp is a pretty useful tool, especially when it comes to enlisting non-technical translators.

\n\n

But it does require changing how you work with text, and adding one new tool to the mix. So for projects that just don't want to know about non-English languages, it's not yet seamless the way Unicode is these days.

\n\n

(Sweet forum software, by the way. I was just testing out Egyptian hieroglyphics on the test server, because they're well off the Basic Multilingual Plane, and tend to flush Unicode bugs. Everything worked flawlessly.)

","post_number":16,"post_type":1,"updated_at":"2013-02-07T15:52:22-05:00","reply_count":1,"reply_to_post_number":15,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":187,"score":57.8,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1},{"id":3989,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:04:15-05:00","cooked":"

\n\n

Interesting, thanks for the insight. I don't think localization is seriously on their table right now, there's likely to be many other things on the table before it... but it will become an issue sooner or later.

","post_number":17,"post_type":1,"updated_at":"2013-02-07T16:04:15-05:00","reply_count":2,"reply_to_post_number":16,"quote_count":1,"avg_time":8,"incoming_link_count":0,"reads":190,"score":63.4,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":3996,"name":"Sam Saffron","username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:12:06-05:00","cooked":"

I had an idea ... what if in dev mode, you could right-click on a page and get access to all the translations on the page, make your edits and have it refreshed live.

\n\n

I think it would be awesome, very doable technically.

","post_number":18,"post_type":1,"updated_at":"2013-02-07T16:12:06-05:00","reply_count":2,"reply_to_post_number":17,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":193,"score":109.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Sam Saffron","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":"Chief Waffle","reply_to_user":{"username":"pekka","name":"Pekka Gaiser"},"actions_summary":[{"id":2,"count":4,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":true,"user_id":1,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":4009,"name":"Pekka Gaiser","username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:18:47-05:00","cooked":"

That would be fricking cool. There'd still be some leftovers (like error messages that normally never show up, etc.) but you could corral those up on a specific page.

\n\n

It could have a dropdown giving you all the languages that you have a .yml for in the locale directory, and write the changes into the one selected. I'm sure people would love it.

","post_number":19,"post_type":1,"updated_at":"2013-02-07T16:22:10-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":0,"avg_time":9,"incoming_link_count":0,"reads":183,"score":52.05,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Pekka Gaiser","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"read":false,"user_title":null,"reply_to_user":{"username":"sam","name":"Sam Saffron"},"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":7,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":4012,"name":"Marco Ceppi","username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:22:46-05:00","cooked":"

If you use gettext format you could leverage Launchpad translations and the community behind it.

","post_number":20,"post_type":1,"updated_at":"2013-02-07T16:22:46-05:00","reply_count":0,"reply_to_post_number":null,"quote_count":0,"avg_time":11,"incoming_link_count":1,"reads":183,"score":57.15,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Marco Ceppi","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"https://translations.launchpad.net/","internal":false,"reflection":false,"clicks":7}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":1,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":761,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":2},{"id":4025,"name":"Eric Kidd","username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","created_at":"2013-02-07T16:36:14-05:00","cooked":"

\n\n

One of the modes in LocaleApp is actually pretty great for this sort of work. When I'm coding, I just type something like like the following:

\n\n
          link_to t('.source_code'), langforums_github_url\n
\n\n

Then I reload the page, and I see a bunch of empty boxes on this page here (this link is real):

\n\n

\n\n

Then I fill in the two languages that I allegedly speak, and everything shows up automatically on the next reload. I can sync the translations back down into my local yaml file with one command, or ask for it to happen automagically.

\n\n

So it's definitely a little more work than just typing \"Source code langforums.org\" directly into the view source. But if you need to localize, it's really pretty reasonable. And the interface for translators is quite easy to use.

\n\n

As of a few months ago, LocaleApp was far-and-away the best option for Rails localization. But as you can see, it takes a couple of extra steps.

\n\n

\n\n

I'm generally in favor of localization, especially for big open source projects. I think most of the groundwork has already been laid, actually. And if you give translators halfway-decent tools, it's easy to find volunteers.

","post_number":21,"post_type":1,"updated_at":"2013-02-07T16:36:14-05:00","reply_count":0,"reply_to_post_number":18,"quote_count":2,"avg_time":19,"incoming_link_count":2,"reads":192,"score":154.35,"yours":false,"topic_slug":"internationalization-localization","topic_id":280,"display_username":"Eric Kidd","version":1,"can_edit":null,"can_delete":null,"can_recover":false,"link_counts":[{"url":"http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code","internal":false,"reflection":false,"clicks":18}],"read":false,"user_title":null,"actions_summary":[{"id":2,"count":3,"hidden":false,"can_act":null},{"id":3,"count":0,"hidden":false,"can_act":null},{"id":4,"count":0,"hidden":false,"can_act":null},{"id":5,"count":0,"hidden":true,"can_act":null},{"id":6,"count":0,"hidden":false,"can_act":null},{"id":7,"count":0,"hidden":false,"can_act":null},{"id":8,"count":0,"hidden":false,"can_act":null}],"moderator":false,"staff":false,"user_id":1860,"hidden":false,"hidden_reason_id":null,"deleted_at":null,"trust_level":1}],"stream":[398,419,1060,3623,3651,3654,3655,3658,3660,3667,3673,3675,3690,3925,3938,3982,3989,3996,4009,4012,4025,4056,4058,4093,4129,6288,6302,6683,6687,7059,7078,7197,7445,7448,7524,7528,7784,8379,8426,8427,8569,8570,8577,8861,8992,8999,9000,9002,9015,9048,9052,9104,9408,9435,9625,9631,9655,9896,10386,10400,10547,10671,10700,10710,10714,10753,10786,10846,10893,10994,11001,11107,11221,11225,11229,11251,11660,12453,12454,12462,12624,12625,12627,12628,12629,12630,12918,13501,13507,17251,17252,17977,20706,21397]},"draft":null,"draft_key":"topic_280","draft_sequence":null,"pinned":false,"details":{"auto_close_at":null,"created_by":{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon"},"last_poster":{"id":5683,"username":"AndreKR","avatar_template":"https://www.gravatar.com/avatar/3ad32697402bb21379768728e8640a22.png?s={size}&r=pg&d=identicon"},"participants":[{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","post_count":11},{"id":212,"username":"alxndr","avatar_template":"https://www.gravatar.com/avatar/51c9cfe3d5ebd64a79983aa3117f4aed.png?s={size}&r=pg&d=identicon","post_count":11},{"id":461,"username":"kuba","avatar_template":"https://www.gravatar.com/avatar/1835cb6a5f35bd4089e416a99af90f5f.png?s={size}&r=pg&d=identicon","post_count":7},{"id":7,"username":"pekka","avatar_template":"https://www.gravatar.com/avatar/100a6c42a31a56e882475725d65537f8.png?s={size}&r=pg&d=identicon","post_count":7},{"id":2995,"username":"tattoo","avatar_template":"https://www.gravatar.com/avatar/645454e097898e3f0d9a54c699995678.png?s={size}&r=pg&d=identicon","post_count":6},{"id":2540,"username":"jgourdon","avatar_template":"https://www.gravatar.com/avatar/3f0ee7e17ec820c458958ed7b0e8538b.png?s={size}&r=pg&d=identicon","post_count":5},{"id":1860,"username":"emk","avatar_template":"https://www.gravatar.com/avatar/528ca205857ff8f648359dcd3e74c84a.png?s={size}&r=pg&d=identicon","post_count":4},{"id":1275,"username":"dacap","avatar_template":"https://www.gravatar.com/avatar/ec0ebc7c17f649d03ee78d4eba56ef73.png?s={size}&r=pg&d=identicon","post_count":4},{"id":3704,"username":"mojzis","avatar_template":"https://www.gravatar.com/avatar/90847dfc44c19a250e9000bcfc7d1507.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1895,"username":"maciek","avatar_template":"https://www.gravatar.com/avatar/e3fe0c49f509994d67045602f49808ee.png?s={size}&r=pg&d=identicon","post_count":3},{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","post_count":3},{"id":3190,"username":"gururea","avatar_template":"https://www.gravatar.com/avatar/5ffb222c9c1bd2d99d9267c1557ca984.png?s={size}&r=pg&d=identicon","post_count":3},{"id":1979,"username":"Superuser","avatar_template":"https://www.gravatar.com/avatar/a7f1529299c8fb9a263b8e8afcab23da.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3620,"username":"potthast","avatar_template":"https://www.gravatar.com/avatar/1753724263a5dee3e38790e6ac3d685c.png?s={size}&r=pg&d=identicon","post_count":2},{"id":32,"username":"codinghorror","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","post_count":2},{"id":3818,"username":"Tudor","avatar_template":"https://www.gravatar.com/avatar/8f367608e1d013beed72a8941bb768ca.png?s={size}&r=pg&d=identicon","post_count":2},{"id":9,"username":"tms","avatar_template":"https://www.gravatar.com/avatar/3981cd271c302f5cba628c6b6d2b32ee.png?s={size}&r=pg&d=identicon","post_count":2},{"id":22,"username":"splattne","avatar_template":"https://www.gravatar.com/avatar/7847006dbf49f1722b07c8da396f1275.png?s={size}&r=pg&d=identicon","post_count":2},{"id":255,"username":"uwe_keim","avatar_template":"https://www.gravatar.com/avatar/53a82f701ae492808834e621de2586eb.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2753,"username":"mikl","avatar_template":"https://www.gravatar.com/avatar/2c3b9882e6898958b892a218b5493af9.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5052,"username":"vulkanino","avatar_template":"https://www.gravatar.com/avatar/811bf232b634245aebba5323462d885c.png?s={size}&r=pg&d=identicon","post_count":1},{"id":761,"username":"marcoceppi","avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","post_count":1},{"id":2316,"username":"pakl","avatar_template":"https://www.gravatar.com/avatar/42910619ef3d550e37f7150caa0d94ff.png?s={size}&r=pg&d=identicon","post_count":1},{"id":5564,"username":"Sjors","avatar_template":"https://www.gravatar.com/avatar/2fb09bd6501779802459a171d3f8fbd9.png?s={size}&r=pg&d=identicon","post_count":1}],"suggested_topics":[{"id":5644,"fancy_title":"Monetizing Discourse using Adsense (with Ajax)","slug":"monetizing-discourse-using-adsense-with-ajax","posts_count":6,"reply_count":5,"highest_post_number":6,"image_url":null,"created_at":"2013-04-05T09:08:23-04:00","last_posted_at":"2013-04-16T13:48:37-04:00","bumped":true,"bumped_at":"2013-04-16T13:48:37-04:00","unseen":false,"title":"Monetizing Discourse using Adsense (with Ajax)","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":0,"views":302,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":3084,"fancy_title":"“Time ago” on quoted text","slug":"time-ago-on-quoted-text","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":"http://cdn.discourse.org/uploads/meta_discourse/280/blob.png","created_at":"2013-02-14T10:20:06-05:00","last_posted_at":"2013-02-14T12:23:21-05:00","bumped":true,"bumped_at":"2013-02-14T12:23:21-05:00","unseen":false,"title":"\"Time ago\" on quoted text","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":9,"views":88,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":3622,"fancy_title":"Any read-later feature?","slug":"any-read-later-feature","posts_count":7,"reply_count":3,"highest_post_number":7,"image_url":null,"created_at":"2013-02-22T03:37:00-05:00","last_posted_at":"2013-02-23T18:50:10-05:00","bumped":true,"bumped_at":"2013-02-23T18:50:10-05:00","unseen":false,"title":"Any read-later feature?","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":5,"views":187,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":4407,"fancy_title":"“Reply as new topic” distracts me from reading while I move mouse up and down","slug":"reply-as-new-topic-distracts-me-from-reading-while-i-move-mouse-up-and-down","posts_count":17,"reply_count":10,"highest_post_number":17,"image_url":null,"created_at":"2013-03-04T09:16:01-05:00","last_posted_at":"2013-03-06T14:27:34-05:00","bumped":true,"bumped_at":"2013-03-06T14:58:17-05:00","unseen":false,"title":"\"Reply as new topic\" distracts me from reading while I move mouse up and down","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":9,"views":167,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}},{"id":6002,"fancy_title":"Add features to enhance user awareness of upper character limits","slug":"add-features-to-enhance-user-awareness-of-upper-character-limits","posts_count":2,"reply_count":1,"highest_post_number":2,"image_url":null,"created_at":"2013-04-18T15:13:11-04:00","last_posted_at":"2013-04-18T15:57:31-04:00","bumped":true,"bumped_at":"2013-04-18T15:57:31-04:00","unseen":false,"title":"Add features to enhance user awareness of upper character limits","pinned":false,"visible":true,"closed":false,"archived":false,"archetype":"regular","like_count":4,"views":63,"category":{"id":2,"name":"feature","color":"0E76BD","text_color":"FFFFFF","slug":"feature","topic_count":402,"description":"Discussion about features or potential features of Discourse: how they work, why they work, etc.","topic_url":"/t/category-definition-for-feature/11","hotness":5.0,"secure":false,"groups":[],"available_groups":["admins","moderators","my_group","staff","trust_level_1","trust_level_2","trust_level_3","trust_level_4","trust_level_5"],"auto_close_days":null}}],"links":[{"url":"https://github.com/discourse/discourse/blob/master/config/locales/en.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"71","user_id":9},{"url":"http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"47","user_id":7},{"url":"http://www.localeapp.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"45","user_id":1860},{"url":"https://github.com/SlexAxton/messageformat.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"34","user_id":1},{"url":"http://meta.discourse.org/t/language-mirrors/2378/2","title":"Language mirrors","fancy_title":null,"internal":true,"reflection":true,"clicks":"31","user_id":32},{"url":"http://meta.discourse.org/t/roadplan-for-discourse/2939/5","title":"Roadplan for Discourse","fancy_title":null,"internal":true,"reflection":true,"clicks":"19","user_id":32},{"url":"http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"18","user_id":1860},{"url":"https://github.com/berk/tr8n","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"18","user_id":1},{"url":"http://meta.discourse.org/t/internationalization-i18n-provided-for-discourse-/2073/2","title":"Internationalization I18n provided for discourse ?","fancy_title":null,"internal":true,"reflection":true,"clicks":"17","user_id":114},{"url":"https://translations.launchpad.net/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":761},{"url":"https://www.transifex.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"14","user_id":1979},{"url":"http://translate.wordpress.org/projects/bbpress/dev","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"13","user_id":7},{"url":"http://meta.discourse.org/t/hi-support-chinese/4393/6","title":"Hi, support Chinese?","fancy_title":null,"internal":true,"reflection":true,"clicks":"13","user_id":2014},{"url":"http://weblate.org","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"11","user_id":2316},{"url":"https://github.com/SlexAxton","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"9","user_id":1},{"url":"https://github.com/discourse/discourse/pull/493","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"7","user_id":2753},{"url":"http://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697","title":"What I love about WordPress plugins","fancy_title":null,"internal":true,"reflection":true,"clicks":"7","user_id":1},{"url":"http://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4","title":"Solving XDA-Developer style forums","fancy_title":null,"internal":true,"reflection":true,"clicks":"6","user_id":639},{"url":"https://github.com/gururea/discourse/tree/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"6","user_id":3190},{"url":"http://meta.discourse.org/t/how-to-change-language/6900/2","title":"How to change language?","fancy_title":null,"internal":true,"reflection":true,"clicks":"5","user_id":1995},{"url":"http://tr8n.github.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":212},{"url":"https://github.com/dacap/discourse/tree/spanish","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":1275},{"url":"http://www.getlocalization.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"5","user_id":22},{"url":"/users/codinghorror","title":null,"fancy_title":null,"internal":true,"reflection":false,"clicks":"5","user_id":7},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.en.yml#L691","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"https://github.com/discourse/discourse/blob/master/config/locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":32},{"url":"http://meta.discourse.org/t/translation-workflow/6102","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":true,"clicks":"4","user_id":4702},{"url":"https://github.com/discourse/discourse/blob/master/config/locales/client.nl.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"4","user_id":461},{"url":"http://meta.discourse.org/t/failed-to-create-new-category-when-set-the-default-locale-to-zh-cn/4703","title":"Failed to create new category when set the default_locale to zh_CN","fancy_title":null,"internal":true,"reflection":false,"clicks":"3","user_id":2995},{"url":"http://meta.discourse.org/t/bookmark-last-read-sometimes-doesn-t-go-to-the-end-of-a-topic/4825/9","title":"Bookmark/last read sometimes doesn't go to the end of a topic","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3681},{"url":"https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":212},{"url":"http://meta.discourse.org/t/comrades-let-s-join-our-efforts-on-ukrainian-and-russian-translations/4403/5","title":"Comrades let's join our efforts on ukrainian and russian translations","fancy_title":null,"internal":true,"reflection":true,"clicks":"3","user_id":3417},{"url":"http://translate.sourceforge.net/wiki/virtaal/index","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"3","user_id":1979},{"url":"http://en.lichess.org/@/Hellball","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.youtube.com/watch?v=MqqdzJ98q7s","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://pootle.locamotion.org/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://www.madanalogy.com/2012/06/rails-i18n-translations-in-yaml.html","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":3190},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/5","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"2","user_id":1},{"url":"https://poeditor.com/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1979},{"url":"http://www.slideshare.net/HeatherRivers/linguistic-potluck-crowdsourcing-localization-with-rails","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":212},{"url":"http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"2","user_id":1995},{"url":"http://meta.discourse.org/t/missing-user-value-in-chinese-localized-page/7406/6","title":"[missing {{user}} value] in Chinese localized page","fancy_title":null,"internal":true,"reflection":true,"clicks":"1","user_id":1},{"url":"http://meta.discourse.org/t/translation-workflow/6102/6","title":"Translation workflow","fancy_title":null,"internal":true,"reflection":false,"clicks":"1","user_id":1995},{"url":"http://en.wikipedia.org/wiki/T%E2%80%93V_distinction","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"1","user_id":3620},{"url":"http://meta.discourse.org/t/when-will-discourse-provide-an-local-language-configuration/7068/2","title":"When will discourse provide an local language configuration","fancy_title":null,"internal":true,"reflection":true,"clicks":"1","user_id":3987},{"url":"https://github.com/discourse/discourse/blob/master/app/assets/javascripts/locales/date_locales.js","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":461},{"url":"http://meta.discourse.org/t/translation-tools-transifex-localeapp/7763","title":"Translation Tools: Transifex? Localeapp?","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":2},{"url":"http://meta.discourse.org/t/suggestion-translation-on-admin-panel/6923/6","title":"Suggestion: Translation on admin panel","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1},{"url":"http://sugarjs.com/dates#date_locales","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":461},{"url":"http://meta.discourse.org/t/i-like-discourse-want-join-discourse-translation-team/6679/3","title":"I like discourse,want join discourse translation team","fancy_title":null,"internal":true,"reflection":true,"clicks":"0","user_id":1995},{"url":"http://guides.rubyonrails.org/i18n.html#the-public-i18n-api","title":null,"fancy_title":null,"internal":false,"reflection":false,"clicks":"0","user_id":1895}]},"highest_post_number":95,"id":280,"title":"Internationalization / localization","fancy_title":"Internationalization / localization","posts_count":94,"created_at":"2013-02-05T16:29:00-05:00","views":2360,"reply_count":65,"last_posted_at":"2013-06-25T21:50:28-04:00","visible":true,"closed":false,"archived":false,"has_best_of":true,"archetype":"regular","slug":"internationalization-localization","category_id":2}; diff --git a/test/javascripts/fixtures/user_fixtures.js b/test/javascripts/fixtures/user_fixtures.js new file mode 100644 index 000000000..03d8d25a9 --- /dev/null +++ b/test/javascripts/fixtures/user_fixtures.js @@ -0,0 +1,3 @@ +/*jshint maxlen:10000000 */ +Discourse.URL_FIXTURES["/users/eviltrout.json"] = {"user":{"id":19,"username":"eviltrout","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","name":"Robin Ward","last_posted_at":"2013-07-04T13:42:16-04:00","last_seen_at":"2013-07-04T15:17:30-04:00","bio_raw":"Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.","bio_cooked":"

Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.

","created_at":"2013-02-03T10:19:22-05:00","website":"http://","can_edit":null,"stats":[{"action_type":4,"count":"8"},{"action_type":5,"count":"188"},{"action_type":6,"count":"105"},{"action_type":1,"count":"92"},{"action_type":2,"count":"211"},{"action_type":7,"count":"111"},{"action_type":9,"count":"4"},{"action_type":10,"count":"4"},{"action_type":11,"count":"2"}],"can_send_private_message_to_user":false,"bio_excerpt":"Co-founder of Discourse. Previously, I created Forumwarz. Follow me on Twitter.","trust_level":2,"moderator":false,"admin":true,"title":null,"invited_by":{"id":1,"username":"sam","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon"}}}; +Discourse.URL_FIXTURES["/user_actions.json?offset=0&username=eviltrout"] = {"user_actions":[{"action_type":5,"created_at":"2013-07-04T17:42:16Z","excerpt":"I am composing a new post here.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"this-title-should-be-cleared-out2","topic_id":8077,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"This title should be cleared out2","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T17:41:43Z","excerpt":"okay brand new post here.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"this-title-should-be-cleared-out2","topic_id":8077,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"This title should be cleared out2","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-04T17:38:51Z","excerpt":"this is a new post that will go through.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"this-title-should-be-cleared-out2","topic_id":8077,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"This title should be cleared out2","deleted":false,"hidden":false},{"action_type":4,"created_at":"2013-07-04T17:15:38Z","excerpt":"okay pelase clear me out.23","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"this-title-should-be-cleared-out2","topic_id":8077,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"This title should be cleared out2","deleted":false,"hidden":null},{"action_type":4,"created_at":"2013-07-04T17:10:02Z","excerpt":"please post a new topic in this forum2","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"okay-this-is-a-new-topic","topic_id":8076,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Okay this is a new topic","deleted":false,"hidden":null},{"action_type":5,"created_at":"2013-07-04T17:09:40Z","excerpt":"this is a third post in the stream.2","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"okay-hello-world2","topic_id":8075,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":2,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Okay hello world2","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-03T20:21:45Z","excerpt":"[quote]Man, I'm glad for the little snake that he went in head first. It would suck being alive for the whole swallowing process.[/quote]\nHow am I supposed to not make a fellatio joke now? \n\naaa","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"okay-hello-world2","topic_id":8075,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Okay hello world2","deleted":false,"hidden":false},{"action_type":4,"created_at":"2013-07-03T19:56:21Z","excerpt":"my name is robin and I complain a lot23421012","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"okay-hello-world2","topic_id":8075,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Okay hello world2","deleted":false,"hidden":null},{"action_type":5,"created_at":"2013-07-03T19:56:09Z","excerpt":"this is a brand new reply to post.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"bluepill-setup-problem","topic_id":8074,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Bluepill setup problem","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-03T14:19:43Z","excerpt":"Hi there! \n\nI just tried these same settings and it appeared fine in the admin section. The only thing I can think of is perhaps you didn't restart your Rails server before checking? That file is only loaded when the server starts up. \n\n[image]","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"trying-to-change-the-email-delivery-method","topic_id":8055,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Trying to Change the Email Delivery Method","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-02T23:26:12Z","excerpt":"Sorry about this! I'll fix it as soon as I can.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":6,"reply_to_post_number":5,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-02T22:34:52Z","excerpt":"This is almost certainly related to the recent massive refactor @eviltrout did on post stream insertion.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"last-read-indicator-doesnt-always-update-when-scrolling-to-bottom","topic_id":8047,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Last read indicator doesn't always update when scrolling to bottom","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:38:56Z","excerpt":"I've just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it's working better now @Iszi? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:31:44Z","excerpt":"I've just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it's working better now @Iszi? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:31:33Z","excerpt":"I've just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-07-02T15:19:36Z","excerpt":"I've just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-02T15:17:36Z","excerpt":"I've just deployed my post stream update and I believe this issue is fixed! Sorry about that.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":16,"reply_to_post_number":14,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-07-02T15:15:56Z","excerpt":"I've just deployed the new post stream code. In my tests it seems to link correctly to the post. Can you confirm that it's working better now @Iszi? Thanks!","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":4,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-01T22:44:43Z","excerpt":"Yep we need to change this @eviltrout so that the text is accurate. \n\nI suggest sticking with the "merge" and "split" terminology so: \n\n\n I split {count} posts into a new topic: {topicname} \n\n\nand \n\n\n I merged {count} posts into an existing topic: {topicname}","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"incorrect-moved-a-post-mod-message","topic_id":8010,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Incorrect \"moved a post\" mod message","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-01T08:33:06Z","excerpt":"This might also be another thing that is fixed by @eviltrout's work on refactoring post loading in the topic this week. Hopefully he can update here after that happens!","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"following-links-to-posts-within-the-same-topic-jumps-to-the-top","topic_id":5971,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":null,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Following links to posts within the same topic jumps to the top","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-07-01T05:14:47Z","excerpt":"I believe @eviltrout is about to deploy major fixes in that area this week, and he will update here after that happens.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"loading-never-stops","topic_id":7554,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":14,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Loading (never stops)","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-30T16:24:33Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/69fda0df8b4878fb6a18deffa972d26a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"erlend_sh","acting_name":"Erlend Sogge Heggen","acting_user_id":5351,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-30T16:01:38Z","excerpt":"Most of your concerns about infinite scrolling come from badly implemented ones. \n\nThe infinite scrolling at Discourse is not one of them. \n\n \n\nThere's a progress bar on the bottom/right of the page that will tell you how long a topic is and where you are: \n\n[image] \n\n \n\nInfinite scrolling at Disc…","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"forums-are-dead-long-live-forums","topic_id":7933,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":3,"reply_to_post_number":16,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Forums Are Dead, Long Live Forums","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-30T13:31:20Z","excerpt":"I do all my developing in OSX. Actually I love buying hardware and PC gaming so my main system is actually a Hackintosh that I built myself. It's probably faster than any mac you can buy. \n\nAlthough I created the Vagrant install with @Neil's help I do my development for discourse right on my local m…","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/ef419cd042564d6d56fab6edfec7ad73.png?s={size}&r=pg&d=identicon","slug":"what-ide-editor-and-environment-do-you-use","topic_id":2105,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":15,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"nicmart","acting_name":"Nicolò Martini","acting_user_id":3581,"title":"What IDE, editor and environment do you use?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-30T10:06:17Z","excerpt":"I agree with both @codinghorror & @sam, this should be off by default. \n\nFlash Player has a lot of vulnerabilities.","avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":12,"reply_to_post_number":5,"username":"zogstrip","name":"Régis Hanol","user_id":1995,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-30T09:27:49Z","excerpt":"I agree with @codinghorror , this should be default off. Fine to have it as an option.","avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":5,"username":"sam","name":"Sam Saffron","user_id":1,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-30T09:17:42Z","excerpt":"I would definitely disable this by default. So many flash exploits. If people want it, they have to flip a boolean setting from off to on somewhere.","avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":5,"username":"codinghorror","name":"Jeff Atwood","user_id":32,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-29T22:05:20Z","excerpt":"Modals\n\nToday I merged in a large commit (warning, might slow down your browser) to back all our modals by controllers. \n\nPreviously, our modals were just views that we dynamically inserted into an ember ContainerView. They worked pretty well, but all the logic and attributes for dealing with the mo…","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/040f75103040d887e6e32d607cb940a3.png?s={size}&r=pg&d=identicon","slug":"discourse-ember-refactorings","topic_id":7019,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"CvX","acting_name":"Jarek Radosz","acting_user_id":369,"title":"Discourse Ember Refactorings","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-29T21:08:49Z","excerpt":"Are there any security issues with allowing people to arbitrarily include flash in a forum? I honestly don't know -- I've just heard lots of bad stuff about flash in the future. \n\nThe pull request looks good, I'd just like to be a little more sure of its safety first. \n\nThoughts @sam @zogstrip @Nei…","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"will-there-be-flash-videos-in-the-future","topic_id":7787,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":5,"reply_to_post_number":4,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"Will there be flash videos in the future?","deleted":false,"hidden":false},{"action_type":7,"created_at":"2013-06-29T21:01:53Z","excerpt":"Thanks for the help, @trident [smile] I ended up popping into the postgres database, navigating to tables > site_customizations > enabled and manually toggling the value to false. This let me access the site again with the default stylesheet so I can get back into the editor and fix my typo. \n\n@cod…","avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/eff1b72d56a97459a27161ccf7f20c89.png?s={size}&r=pg&d=identicon","slug":"customizing-my-css-broke-my-forum-with-no-easy-way-to-fix","topic_id":7203,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":null,"username":"Lee_Ars","name":"Lee_Ars","user_id":4457,"acting_username":"Lee_Ars","acting_name":"Lee_Ars","acting_user_id":4457,"title":"Customizing my CSS broke my forum with no easy way to fix","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T23:31:30Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4079bc13f142ea46e0144d1ca9426aa9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"fgonzal","acting_name":"Federico","acting_user_id":2287,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T21:18:53Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/28b6612d548d24ff57361dac58ac3fee.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"mkirk","acting_name":"Michael John Kirk","acting_user_id":5586,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":9,"created_at":"2013-06-28T18:39:55Z","excerpt":"Any chance of an option to have the key for the reply in the Email subject or body instead of in the email address itself? Would help for those of use with email servers that don't support it directly. (ie Exchange 2010) \n\nthanks, Brian \n\nContinuing the discussion from New: Reply via Email Support…","avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","slug":"reply-to-email-key-in-subject-instead-of-email-address","topic_id":7916,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"thebrianbarlow","name":"Brian Barlow","user_id":402,"acting_username":"thebrianbarlow","acting_name":"Brian Barlow","acting_user_id":402,"title":"Reply to email - key in subject instead of email address?","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T14:40:50Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe'd love to support web hooks too. It probably won't be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5c049595372be0a1a22f4192b490f032.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"jorge_castro","acting_name":"Jorge Castro","acting_user_id":529,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-28T14:34:17Z","excerpt":"You need an address that can accept wildcards. That's how our system knows the context of the email being replied to. So for example gmail will accept accountname+anything@gmail.com and send it to accountname@gmail.com. \n\nSo in that case you'd use accountname+%{reply_key}@gmail.com as your email ad…","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":11,"reply_to_post_number":10,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-28T09:45:44Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/0de93e19798baa853bff3237381de87a.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"polusok","acting_name":"Mykhailo Poliarush","acting_user_id":5810,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-27T21:56:13Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe'd love to support web hooks too. It probably won't be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/97e3dd0d8128a2e17b28c71e0fb08b31.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"knwang","acting_name":"knwang","acting_user_id":3865,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-27T21:10:26Z","excerpt":"Sorry, I don't fully understand what we are supposed to put in the field. \n\nWe setup a pop account on our internal exchange server to handle this talk@companyname.com \nHow should I setup this reply? \nthanks! \nBrian","avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5ddf2459e8edd6cf52dfff6cb41ca70d.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":10,"reply_to_post_number":1,"username":"thebrianbarlow","name":"Brian Barlow","user_id":402,"acting_username":"thebrianbarlow","acting_name":"Brian Barlow","acting_user_id":402,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":5,"created_at":"2013-06-27T04:29:17Z","excerpt":"Not yet! We started with polling because it was easiest for our setup, but\nwe'd love to support web hooks too. It probably won't be too hard due to\nthe way the internal API works.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"eviltrout","acting_name":"Robin Ward","acting_user_id":19,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-27T03:38:54Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/97e3dd0d8128a2e17b28c71e0fb08b31.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"knwang","acting_name":"knwang","acting_user_id":3865,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-27T00:43:18Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/04e8c634e5ee0fd074f78f3bad6eb5b3.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"djensen47","acting_name":"Dave Jensen","acting_user_id":5108,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-26T11:28:08Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/4ddc8924e79bcec03256821af65fca91.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"marcoceppi","acting_name":"Marco Ceppi","acting_user_id":761,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-26T00:25:31Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/34c3b45c075a6d85555beb674892d0d8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"computerdruid","acting_name":"ComputerDruid","acting_user_id":5372,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T23:10:49Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3dcae8378d46c244172a115c28ca49ce.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"sam","acting_name":"Sam Saffron","acting_user_id":1,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T22:56:16Z","excerpt":"It's queryable via the Category table which has a topic_id indicating what the category topic is. I wouldn't want to join on that though. \n\nIt seems we have a sub_type column that we could probably use to indicate category topics and filter them out. Will add to my list.","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/43675ac6f4ef94f40b5e44add2a984c1.png?s={size}&r=pg&d=identicon","slug":"your-topic-is-similar-to-always-comes-up","topic_id":7614,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":9,"reply_to_post_number":8,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"naggie","acting_name":"Callan Bryant","acting_user_id":1374,"title":"\"Your topic is similar to...\" Always comes up","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T21:28:00Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/413ef976f0d2ca993005c9aee4769254.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"BhaelOchon","acting_name":"Bill Ayakatubby","acting_user_id":471,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T18:47:21Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3baf9989e97ccf45aff1cf61fb730931.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"briangillespie","acting_name":"Brian Gillespie","acting_user_id":5483,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T18:18:19Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/7a42855912a58f4c3c5d0ce82e33905f.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"stevebaer","acting_name":"Steve Baer","acting_user_id":4939,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T18:09:49Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/e217128117fe24525c7af5ebc5e45745.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"mcwumbly","acting_name":"David McClure","acting_user_id":4263,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T17:42:33Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/6c38e00d92cd9bd3ada3392b15015553.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"frandallfarmer","acting_name":"F. Randall Farmer","acting_user_id":38,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T17:41:03Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/5c049595372be0a1a22f4192b490f032.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"jorge_castro","acting_name":"Jorge Castro","acting_user_id":529,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:59:02Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/42776c4982dff1fa45ee8248532f8ad0.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"Neil","acting_name":"Neil","acting_user_id":2,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:53:58Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/55c791f0242e5167536c65496046eef5.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"RGJ","acting_name":"Richard ","acting_user_id":406,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:24:42Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/3e8ede783ef16c8234c03473a5b8780f.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"MaSe","acting_name":"Мария Сергеева","acting_user_id":5174,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":11,"created_at":"2013-06-25T16:19:52Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:16:02Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/1c52629e9379bb4d8108634ce9ca4d9e.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"hugo","acting_name":"Hugo","acting_user_id":2935,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:10:51Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/b7797beb47cfb7aa0fe60d09604aaa09.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"zogstrip","acting_name":"Régis Hanol","acting_user_id":1995,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:06:40Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/51d623f33f8b83095db84ff35e15dbe8.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"codinghorror","acting_name":"Jeff Atwood","acting_user_id":32,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":6,"created_at":"2013-06-25T16:03:51Z","excerpt":"So... another big step towards a 'mailing list' interaction model for Discourse categories. Cool!","avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":2,"reply_to_post_number":1,"username":"kpfleming","name":"Kevin P. Fleming","user_id":2625,"acting_username":"kpfleming","acting_name":"Kevin P. Fleming","acting_user_id":2625,"title":"New: Reply via Email Support!","deleted":false,"hidden":false},{"action_type":2,"created_at":"2013-06-25T16:03:28Z","excerpt":"We've just enabled the ability to reply by email to Discourse for all users on meta! It works like on other sites such as Facebook or Github. If an email is related to a topic, it will say in the footer that you can reply to it. Simply reply to the message in your email client and your post will be …","avatar_template":"https://www.gravatar.com/avatar/c6e17f2ae2a215e87ff9e878a4e63cd9.png?s={size}&r=pg&d=identicon","acting_avatar_template":"https://www.gravatar.com/avatar/26bf5a02583eaf63d1f8063bb3a6bc00.png?s={size}&r=pg&d=identicon","slug":"new-reply-via-email-support","topic_id":7764,"target_user_id":19,"target_name":"Robin Ward","target_username":"eviltrout","post_number":1,"reply_to_post_number":null,"username":"eviltrout","name":"Robin Ward","user_id":19,"acting_username":"kpfleming","acting_name":"Kevin P. Fleming","acting_user_id":2625,"title":"New: Reply via Email Support!","deleted":false,"hidden":false}]}; diff --git a/test/javascripts/helpers/qunit_helpers.js b/test/javascripts/helpers/qunit_helpers.js index 033a9580f..585103841 100644 --- a/test/javascripts/helpers/qunit_helpers.js +++ b/test/javascripts/helpers/qunit_helpers.js @@ -1,5 +1,5 @@ function integration(name) { - module(name, { + module("Integration: " + name, { setup: function() { sinon.stub(Discourse.ScrollingDOMMethods, "bindOnScroll"); sinon.stub(Discourse.ScrollingDOMMethods, "unbindOnScroll"); diff --git a/test/javascripts/integration/list_topics_test.js b/test/javascripts/integration/list_topics_test.js index 04037b7e6..ac5d71226 100644 --- a/test/javascripts/integration/list_topics_test.js +++ b/test/javascripts/integration/list_topics_test.js @@ -1,24 +1,29 @@ integration("List Topics"); test("Default List", function() { + expect(2); visit("/").then(function() { - expect(2); - ok(exists("#topic-list"), "The list of topics was rendered"); ok(exists('#topic-list .topic-list-item'), "has topics"); }); +}); +test("List one Category", function() { + expect(2); + + visit("/category/bug").then(function() { + ok(exists("#topic-list"), "The list of topics was rendered"); + ok(exists('#topic-list .topic-list-item'), "has topics"); + }); }); test("Categories List", function() { + expect(1); visit("/categories").then(function() { - expect(1); - ok(exists('.category-list-item'), "has a list of categories"); }); - }); diff --git a/test/javascripts/integration/static_test.js b/test/javascripts/integration/static_test.js new file mode 100644 index 000000000..8cee60306 --- /dev/null +++ b/test/javascripts/integration/static_test.js @@ -0,0 +1,22 @@ +integration("Static"); + +test("Faq", function() { + expect(1); + visit("/faq").then(function() { + ok(exists(".body-page"), "The content is present"); + }); +}); + +test("Terms of Service", function() { + expect(1); + visit("/tos").then(function() { + ok(exists(".body-page"), "The content is present"); + }); +}); + +test("Privacy", function() { + expect(1); + visit("/privacy").then(function() { + ok(exists(".body-page"), "The content is present"); + }); +}); diff --git a/test/javascripts/integration/user_test.js b/test/javascripts/integration/user_test.js new file mode 100644 index 000000000..5fd238edc --- /dev/null +++ b/test/javascripts/integration/user_test.js @@ -0,0 +1,12 @@ +integration("User"); + +test("Profile", function() { + + visit("/users/eviltrout").then(function() { + expect(2); + + ok(exists(".user-heading"), "The heading is rendered"); + ok(exists("#user-stream"), "The stream is rendered"); + }); + +}); diff --git a/test/javascripts/integration/view_topic_test.js b/test/javascripts/integration/view_topic_test.js index 1745e60ef..7ed77d105 100644 --- a/test/javascripts/integration/view_topic_test.js +++ b/test/javascripts/integration/view_topic_test.js @@ -1,6 +1,6 @@ integration("View Topic"); -test("View a Topic", function() { +test("Enter a Topic", function() { visit("/t/internationalization-localization/280").then(function() { expect(2);