export default { "/t/130.json": { post_stream: { posts: [ { id: 133, name: null, username: "bianca", avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", created_at: "2020-07-05T09:28:36.371Z", cooked: "

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas a varius ipsum. Nunc euismod, metus non vulputate malesuada, ligula metus pharetra tortor, vel sodales arcu lacus sed mauris. Nam semper, orci vitae fringilla placerat, dui tellus convallis felis, ultricies laoreet sapien mi et metus. Mauris facilisis, mi fermentum rhoncus feugiat, dolor est vehicula leo, id porta leo ex non enim. In a ligula vel tellus commodo scelerisque non in ex. Pellentesque semper leo quam, nec varius est viverra eget. Donec vehicula sem et massa faucibus tempus.

", post_number: 1, post_type: 1, updated_at: "2020-07-05T09:28:36.371Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, readers_count: 0, score: 0, yours: true, topic_id: 130, topic_slug: "lorem-ipsum-dolor-sit-amet", display_username: null, primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: true, can_delete: false, can_recover: false, can_wiki: true, read: true, user_title: "Tester", title_is_group: false, actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, trust_level: 0, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, ], stream: [133], }, timeline_lookup: [[1, 0]], related_messages: [], suggested_topics: [], id: 130, title: "Lorem ipsum dolor sit amet", fancy_title: "Lorem ipsum dolor sit amet", posts_count: 1, created_at: "2020-07-05T09:28:36.260Z", views: 1, reply_count: 0, like_count: 0, last_posted_at: "2020-07-05T09:28:36.371Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "private_message", slug: "lorem-ipsum-dolor-sit-amet", category_id: null, word_count: 86, deleted_at: null, user_id: 1, featured_link: null, pinned_globally: false, pinned_at: null, pinned_until: null, image_url: null, draft: null, draft_key: "topic_130", draft_sequence: 0, posted: true, unpinned: null, pinned: false, current_post_number: 1, highest_post_number: 1, last_read_post_number: 1, last_read_post_id: 133, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, ], chunk_size: 20, bookmarked: false, bookmarks: [], message_archived: false, topic_timer: null, message_bus_last_id: 5, participant_count: 1, pm_with_non_human_user: false, show_read_indicator: false, requested_group_name: null, thumbnails: null, tags_disable_ads: false, details: { notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_remove_allowed_users: true, can_invite_to: true, can_invite_via_email: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, can_convert_topic: true, can_review_topic: true, can_remove_self_id: 1, participants: [ { id: 1, username: "bianca", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", post_count: 1, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, ], allowed_users: [ { id: 7, username: "foo", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/f/b19c9b/{size}.png", }, ], created_by: { id: 1, username: "bianca", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", }, last_poster: { id: 1, username: "bianca", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", }, allowed_groups: [ { id: 43, automatic: false, name: "foo_group", user_count: 4, mentionable_level: 0, messageable_level: 99, visibility_level: 0, automatic_membership_email_domains: "", primary_group: false, title: null, grant_trust_level: null, incoming_email: null, has_messages: true, flair_name: null, flair_url: null, flair_bg_color: "", flair_color: "", bio_raw: null, bio_cooked: null, bio_excerpt: null, public_admission: false, public_exit: false, allow_membership_requests: false, full_name: null, default_notification_level: 3, membership_request_template: null, members_visibility_level: 0, can_see_members: true, publish_read_state: false, }, ], }, }, "/t/280/1.json": { pending_posts: [], post_stream: { posts: [ { id: 398, name: "Uwe Keim", username: "uwe_keim", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5697, created_at: "2013-02-05T21:29:00.280Z", 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-05T21:29:00.280Z", like_count: 0, reply_count: 1, reply_to_post_number: null, quote_count: 0, incoming_link_count: 314, reads: 475, score: 1702.25, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Uwe Keim", primary_group_name: null, version: 1, can_edit: true, can_delete: false, can_recover: true, link_counts: [ { url: "https://meta.discourse.org/t/language-mirrors/2378/2", internal: true, reflection: true, title: "Language mirrors", clicks: 3, }, { url: "https://meta.discourse.org/t/translation-workflow/6102", internal: true, reflection: true, title: "Translation workflow", clicks: 2, }, { url: "https://meta.discourse.org/t/solving-xda-developer-style-forums/4368/4", internal: true, reflection: true, title: "Solving XDA-Developer style forums", clicks: 2, }, { url: "https://meta.discourse.org/t/comrades-lets-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: 1, }, { url: "https://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: 0, }, { url: "https://meta.discourse.org/t/roadplan-for-discourse/2939/5", internal: true, reflection: true, title: "Roadplan for Discourse 2013", clicks: 0, }, ], read: true, user_title: null, actions_summary: [ { id: 2, count: 0, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 255, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 419, name: "Tim Stone", username: "tms", avatar_template: "/images/avatar.png", uploaded_avatar_id: 40181, created_at: "2013-02-05T21:32:47.649Z", cooked: '

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

Link for unknown-test: link

', post_number: 2, post_type: 1, updated_at: "2013-02-06T10:15:27.965Z", like_count: 4, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 16, reads: 460, score: 308.35, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Tim Stone", primary_group_name: null, version: 2, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "https://github.com/discourse/discourse/blob/main/config/locales/en.yml", internal: false, reflection: false, clicks: 118, }, ], read: true, user_title: "Great contributor", actions_summary: [ { id: 2, count: 4, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 9, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 1060, name: "Jeff Atwood", username: "codinghorror", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5297, created_at: "2013-02-06T02:26:24.922Z", cooked: '

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

\n\n

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: "2014-02-24T05:23:39.211Z", like_count: 4, reply_count: 3, reply_to_post_number: null, quote_count: 0, incoming_link_count: 5, reads: 449, score: 191.45, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Jeff Atwood", primary_group_name: "discourse", version: 4, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "https://github.com/discourse/discourse/blob/main/config/locales", internal: false, reflection: false, title: "discourse/config/locales at master · discourse/discourse · GitHub", clicks: 62, }, { url: "https://meta.discourse.org/t/github-onebox-rendering-issue/7616", internal: true, reflection: true, title: "GitHub OneBox Rendering Issue", clicks: 0, }, ], read: true, user_title: "co-founder", actions_summary: [ { id: 2, count: 4, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 1, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: true, admin: true, staff: true, user_id: 32, hidden: false, hidden_reason_id: null, trust_level: 3, deleted_at: null, user_deleted: false, edit_reason: "", can_view_edit_history: true, wiki: false, }, { id: 3623, name: "Shade", username: "shade", avatar_template: "/images/avatar.png", uploaded_avatar_id: 8306, created_at: "2013-02-07T12:55:33.129Z", cooked: '

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

', post_number: 4, post_type: 1, updated_at: "2013-02-07T12:55:33.129Z", like_count: 7, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 15, reads: 401, score: 291.2, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Shade", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "https://meta.discourse.org/t/hi-support-chinese/4393/6", internal: true, reflection: true, title: "Hi, support Chinese?", clicks: 0, }, ], read: true, user_title: null, actions_summary: [ { id: 2, count: 7, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 1808, hidden: false, hidden_reason_id: null, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3651, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T14:02:07.869Z", 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, @eviltrout 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-07T14:05:42.328Z", like_count: 2, reply_count: 2, reply_to_post_number: 3, quote_count: 1, incoming_link_count: 10, reads: 386, score: 213.3, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders", internal: false, reflection: false, title: "internationalization - Why do people use plain english as translation placeholders? - Stack Overflow", clicks: 63, }, ], read: true, user_title: null, actions_summary: [ { id: 2, count: 2, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3654, name: "Sam Saffron", username: "sam", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5243, created_at: "2013-02-07T14:05:39.910Z", 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-07T14:05:39.910Z", like_count: 1, reply_count: 1, reply_to_post_number: 5, quote_count: 0, incoming_link_count: 4, reads: 329, score: 106.65, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Sam Saffron", primary_group_name: "discourse", version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "https://github.com/SlexAxton/messageformat.js", internal: false, reflection: false, title: "SlexAxton/messageformat.js · GitHub", clicks: 46, }, { url: "https://github.com/SlexAxton", internal: false, reflection: false, title: "SlexAxton (Alex Sexton) · GitHub", clicks: 10, }, ], read: true, user_title: "co-founder", reply_to_user: { username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, }, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: true, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3655, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T14:08:17.493Z", 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-07T14:12:02.965Z", like_count: 1, reply_count: 1, reply_to_post_number: 6, quote_count: 1, incoming_link_count: 0, reads: 326, score: 86.0, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "http://translate.wordpress.org/projects/bbpress/dev", internal: false, reflection: false, title: "WordPress › Development < GlotPress", clicks: 16, }, ], read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3658, name: "Sam Saffron", username: "sam", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5243, created_at: "2013-02-07T14:12:22.582Z", 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-07T14:12:22.582Z", like_count: 1, reply_count: 1, reply_to_post_number: 7, quote_count: 0, incoming_link_count: 2, reads: 296, score: 89.75, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Sam Saffron", primary_group_name: "discourse", version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "https://meta.discourse.org/t/what-i-love-about-wordpress-plugins/5697", internal: true, reflection: true, title: "What I love about WordPress plugins", clicks: 0, }, ], read: true, user_title: "co-founder", reply_to_user: { username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, }, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: true, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3660, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T14:14:12.666Z", cooked: '\n

repost after a reload thank you!

', post_number: 9, post_type: 1, updated_at: "2013-02-07T14:18:09.569Z", like_count: 1, reply_count: 1, reply_to_post_number: 8, quote_count: 1, incoming_link_count: 0, reads: 293, score: 79.1, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3667, name: "Tim Stone", username: "tms", avatar_template: "/images/avatar.png", uploaded_avatar_id: 40181, created_at: "2013-02-07T14:25:16.859Z", 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-07T14:25:16.859Z", like_count: 1, reply_count: 1, reply_to_post_number: 9, quote_count: 0, incoming_link_count: 0, reads: 275, score: 75.35, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Tim Stone", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: "Great contributor", reply_to_user: { username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, }, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 9, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3673, name: "Sam Saffron", username: "sam", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5243, created_at: "2013-02-07T14:30:21.401Z", 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-07T14:30:21.401Z", like_count: 1, reply_count: 1, reply_to_post_number: 10, quote_count: 0, incoming_link_count: 1, reads: 273, score: 79.95, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Sam Saffron", primary_group_name: "discourse", version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: "co-founder", reply_to_user: { username: "tms", avatar_template: "/images/avatar.png", uploaded_avatar_id: 40181, }, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: true, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3675, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T14:33:38.280Z", 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-07T14:34:39.910Z", like_count: 1, reply_count: 1, reply_to_post_number: 11, quote_count: 1, incoming_link_count: 2, reads: 273, score: 84.95, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3690, name: "Valts", username: "Vilx", avatar_template: "/images/avatar.png", uploaded_avatar_id: 7299, created_at: "2013-02-07T15:05:35.867Z", 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-07T15:05:35.867Z", like_count: 3, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 11, reads: 290, score: 158.35, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Valts", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 2, count: 3, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 1216, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3925, name: "Eric Kidd", username: "emk", avatar_template: "/images/avatar.png", uploaded_avatar_id: 8400, created_at: "2013-02-07T19:37:06.194Z", 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-07T19:37:06.194Z", like_count: 3, reply_count: 1, reply_to_post_number: 12, quote_count: 1, incoming_link_count: 0, reads: 283, score: 137.05, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Eric Kidd", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "http://www.localeapp.com/", internal: false, reflection: false, title: "Easy localization for Rails apps | Locale", clicks: 69, }, ], read: true, user_title: null, actions_summary: [ { id: 2, count: 3, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 1860, hidden: false, hidden_reason_id: null, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3938, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T19:52:13.748Z", cooked: '

\n\n

Ohhh. Looking sexy. droool

', post_number: 15, post_type: 1, updated_at: "2013-02-07T19:52:13.748Z", like_count: 1, reply_count: 1, reply_to_post_number: 14, quote_count: 1, incoming_link_count: 0, reads: 260, score: 72.35, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3982, name: "Eric Kidd", username: "emk", avatar_template: "/images/avatar.png", uploaded_avatar_id: 8400, created_at: "2013-02-07T20:52:22.454Z", cooked: '

\n\n

Yeah, it\'s pretty. smile 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-07T20:52:22.454Z", like_count: 1, reply_count: 1, reply_to_post_number: 15, quote_count: 1, incoming_link_count: 0, reads: 254, score: 71.15, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Eric Kidd", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 1860, hidden: false, hidden_reason_id: null, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3989, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T21:04:15.405Z", 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-07T21:04:15.405Z", like_count: 1, reply_count: 2, reply_to_post_number: 16, quote_count: 1, incoming_link_count: 0, reads: 255, score: 76.35, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 3996, name: "Sam Saffron", username: "sam", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5243, created_at: "2013-02-07T21:12:06.575Z", 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-07T21:12:06.575Z", like_count: 7, reply_count: 2, reply_to_post_number: 17, quote_count: 0, incoming_link_count: 0, reads: 264, score: 168.2, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Sam Saffron", primary_group_name: "discourse", version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: "co-founder", reply_to_user: { username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, }, actions_summary: [ { id: 2, count: 7, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: true, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 4009, name: "Pekka Gaiser", username: "pekka", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5253, created_at: "2013-02-07T21:18:47.422Z", 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-07T21:22:10.692Z", like_count: 1, reply_count: 0, reply_to_post_number: 18, quote_count: 0, incoming_link_count: 1, reads: 241, score: 68.6, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Pekka Gaiser", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, reply_to_user: { username: "sam", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5243, }, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 7, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 4012, name: "Marco Ceppi", username: "marcoceppi", avatar_template: "/images/avatar.png", uploaded_avatar_id: 6552, created_at: "2013-02-07T21:22:46.376Z", 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-07T21:22:46.376Z", like_count: 1, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 2, reads: 244, score: 74.25, yours: false, topic_id: 280, topic_slug: "internationalization-localization", display_username: "Marco Ceppi", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, link_counts: [ { url: "https://translations.launchpad.net/", internal: false, reflection: false, title: "Launchpad Translations", clicks: 13, }, ], read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: true, }, { id: 3, count: 0, hidden: false, can_act: true, }, { id: 4, count: 0, hidden: false, can_act: true, }, { id: 5, count: 0, hidden: true, can_act: true, }, { id: 6, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 761, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, ], stream: [ 398, 419, 1060, 3623, 3651, 3654, 3655, 3658, 3660, 3667, 3673, 3675, 3690, 3925, 3938, 3982, 3989, 3996, 4009, 4012, ], gaps: { before: {}, after: { 398: [4012] } }, }, id: 280, title: "Internationalization / localization", fancy_title: "Internationalization / localization", posts_count: 103, created_at: "2013-02-05T21:29:00.174Z", views: 5211, reply_count: 67, participant_count: 40, like_count: 135, last_posted_at: "2015-03-04T15:07:10.487Z", visible: true, closed: false, archived: false, has_summary: true, archetype: "regular", slug: "internationalization-localization", category_id: 2, word_count: 6198, deleted_at: null, draft: null, draft_key: "topic_280", draft_sequence: 4, posted: true, unpinned: null, pinned_globally: false, pinned: false, pinned_at: null, details: { can_publish_page: true, can_invite_via_email: true, can_toggle_topic_visibility: true, can_pin_unpin_topic: true, auto_close_at: null, auto_close_hours: null, auto_close_based_on_last_post: false, created_by: { id: 255, username: "uwe_keim", uploaded_avatar_id: 5697, avatar_template: "/images/avatar.png", }, last_poster: { id: 14091, username: "Luciano_Fantuzzi", uploaded_avatar_id: 39484, avatar_template: "/images/avatar.png", }, participants: [ { id: 212, username: "alxndr", uploaded_avatar_id: 5619, avatar_template: "/images/avatar.png", post_count: 11, }, { id: 1, username: "sam", uploaded_avatar_id: 5243, avatar_template: "/images/avatar.png", post_count: 11, }, { id: 7, username: "pekka", uploaded_avatar_id: 5253, avatar_template: "/images/avatar.png", post_count: 8, }, { id: 461, username: "kuba", uploaded_avatar_id: 6049, avatar_template: "/images/avatar.png", post_count: 7, }, { id: 2995, username: "tattoo", uploaded_avatar_id: null, avatar_template: "/images/avatar.png", post_count: 6, }, { id: 2540, username: "jgourdon", uploaded_avatar_id: 9537, avatar_template: "/images/avatar.png", post_count: 5, }, { id: 1860, username: "emk", uploaded_avatar_id: 8400, avatar_template: "/images/avatar.png", post_count: 4, }, { id: 1275, username: "dacap", uploaded_avatar_id: 7401, avatar_template: "/images/avatar.png", post_count: 4, }, { id: 19, username: "eviltrout", uploaded_avatar_id: 5275, avatar_template: "/images/avatar.png", post_count: 4, }, { id: 5, username: "charlie", uploaded_avatar_id: 5275, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 3704, username: "mojzis", uploaded_avatar_id: 31201, avatar_template: "/images/avatar.png", post_count: 3, }, { id: 3190, username: "gururea", uploaded_avatar_id: 10663, avatar_template: "/images/avatar.png", post_count: 3, }, { id: 1895, username: "maciek", uploaded_avatar_id: 8463, avatar_template: "/images/avatar.png", post_count: 3, }, { id: 22, username: "splattne", uploaded_avatar_id: 5280, avatar_template: "/images/avatar.png", post_count: 2, }, { id: 1979, username: "Superuser", uploaded_avatar_id: 8604, avatar_template: "/images/avatar.png", post_count: 2, }, { id: 3818, username: "Tudor", uploaded_avatar_id: 11675, avatar_template: "/images/avatar.png", post_count: 2, }, { id: 32, username: "codinghorror", uploaded_avatar_id: 5297, avatar_template: "/images/avatar.png", post_count: 2, }, { id: 3620, username: "potthast", uploaded_avatar_id: 11363, avatar_template: "/images/avatar.png", post_count: 2, }, { id: 9, username: "tms", uploaded_avatar_id: 40181, avatar_template: "/images/avatar.png", post_count: 2, }, { id: 14091, username: "Luciano_Fantuzzi", uploaded_avatar_id: 39484, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 255, username: "uwe_keim", uploaded_avatar_id: 5697, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 9006, username: "berk", uploaded_avatar_id: 19348, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 754, username: "danneu", uploaded_avatar_id: 6540, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 761, username: "marcoceppi", uploaded_avatar_id: 6552, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 2753, username: "mikl", uploaded_avatar_id: 9918, avatar_template: "/images/avatar.png", post_count: 1, }, ], links: [ { url: "https://github.com/discourse/discourse/blob/main/config/locales/en.yml", title: null, fancy_title: null, internal: false, reflection: false, clicks: 118, user_id: 9, domain: "github.com", }, { url: "http://www.localeapp.com/", title: "Easy localization for Rails apps | Locale", fancy_title: null, internal: false, reflection: false, clicks: 69, user_id: 1860, domain: "www.localeapp.com", }, { url: "http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders", title: "internationalization - Why do people use plain english as translation placeholders? - Stack Overflow", fancy_title: null, internal: false, reflection: false, clicks: 63, user_id: 7, domain: "stackoverflow.com", }, { url: "https://github.com/discourse/discourse/blob/main/config/locales", title: "discourse/config/locales at master · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 62, user_id: 32, domain: "github.com", }, { url: "https://github.com/SlexAxton/messageformat.js", title: "SlexAxton/messageformat.js · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 46, user_id: 1, domain: "github.com", }, { url: "http://www.localeapp.com/projects/1537/translations?utf8=%E2%9C%93&search=source_code", title: "langforums | Locale", fancy_title: null, internal: false, reflection: false, clicks: 25, user_id: 1860, domain: "www.localeapp.com", }, { url: "https://translations.launchpad.net/", title: "Launchpad Translations", fancy_title: null, internal: false, reflection: false, clicks: 23, user_id: 761, domain: "translations.launchpad.net", }, { url: "https://www.transifex.com/", title: "Transifex - Continuous Localization Platform", fancy_title: null, internal: false, reflection: false, clicks: 22, user_id: 1979, domain: "www.transifex.com", }, { url: "https://github.com/berk/tr8n", title: "berk/tr8n · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 22, user_id: 1, domain: "github.com", }, { url: "http://translate.wordpress.org/projects/bbpress/dev", title: "WordPress › Development < GlotPress", fancy_title: null, internal: false, reflection: false, clicks: 16, user_id: 7, domain: "translate.wordpress.org", }, { url: "http://weblate.org", title: "Weblate - web-based translation", fancy_title: null, internal: false, reflection: false, clicks: 15, user_id: 2316, domain: "weblate.org", }, { url: "https://github.com/discourse/discourse/tree/main/config/locales", title: "discourse/config/locales at master · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 14, user_id: 19, domain: "github.com", }, { url: "https://github.com/discourse/discourse/pull/493", title: "Danish translation. by mikl · Pull Request #493 · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 12, user_id: 2753, domain: "github.com", }, { url: "https://github.com/SlexAxton", title: "SlexAxton (Alex Sexton) · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 10, user_id: 1, domain: "github.com", }, { url: "https://github.com/gururea/discourse/tree/master/config/locales", title: "discourse/config/locales at master · gururea/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 9, user_id: 3190, domain: "github.com", }, { url: "https://github.com/discourse/discourse/blob/main/config/locales/client.en.yml#L691", title: "discourse/config/locales/client.en.yml at master · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 7, user_id: 461, domain: "github.com", }, { url: "https://github.com/dacap/discourse/tree/spanish", title: "dacap/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 7, user_id: 1275, domain: "github.com", }, { url: "https://github.com/discourse/discourse/blob/main/config/locales/client.nl.yml", title: "discourse/config/locales/client.nl.yml at master · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 7, user_id: 461, domain: "github.com", }, { url: "https://github.com/discourse/discourse/commit/c5761eae8afe37e20cec0d0f9d14b85b6e585bda", title: "Support for Simplified Chinese thanks to tangramor · c5761ea · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 6, user_id: 212, domain: "github.com", }, { url: "http://tr8n.github.com/", title: "tr8n", fancy_title: null, internal: false, reflection: false, clicks: 6, user_id: 212, domain: "tr8n.github.com", }, { url: "http://www.getlocalization.com/", title: "Crowdsourced, Social and Collaborative App & Website Translation - Get Localization", fancy_title: null, internal: false, reflection: false, clicks: 6, user_id: 22, domain: "www.getlocalization.com", }, { url: "http://blog.discourse.org/2013/04/discourse-as-your-first-rails-app/", title: "Discourse as Your First Rails App", fancy_title: null, internal: false, reflection: false, clicks: 5, user_id: 1995, domain: "blog.discourse.org", }, { url: "https://github.com/alxndr/discourse/blob/i18n-chinese/config/locales/server.zh.yml", title: null, fancy_title: null, internal: false, reflection: false, clicks: 5, user_id: 212, domain: "github.com", }, { url: "http://translate.sourceforge.net/wiki/virtaal/index", title: "Easy-to-use and powerful offline translation tool | Virtaal", fancy_title: null, internal: false, reflection: false, clicks: 4, user_id: 1979, domain: "translate.sourceforge.net", }, { url: "https://poeditor.com/", title: "POEditor - online software localization tool", fancy_title: null, internal: false, reflection: false, clicks: 4, user_id: 1979, domain: "poeditor.com", }, { url: "http://en.lichess.org/@/Hellball", title: null, fancy_title: null, internal: false, reflection: false, clicks: 3, user_id: 1979, domain: "en.lichess.org", }, { url: "http://en.wikipedia.org/wiki/T%E2%80%93V_distinction", title: "T–V distinction - Wikipedia, the free encyclopedia", fancy_title: null, internal: false, reflection: false, clicks: 3, user_id: 3620, domain: "en.wikipedia.org", }, { url: "http://www.slideshare.net/HeatherRivers/linguistic-potluck-crowdsourcing-localization-with-rails", title: "Linguistic Potluck: Crowdsourcing localization with Rails", fancy_title: null, internal: false, reflection: false, clicks: 3, user_id: 212, domain: "www.slideshare.net", }, { url: "https://meta.discourse.org/t/language-mirrors/2378/2", title: "Language mirrors", fancy_title: null, internal: true, reflection: true, clicks: 3, user_id: 32, domain: "meta.discourse.org", }, { url: "http://www.madanalogy.com/2012/06/rails-i18n-translations-in-yaml.html", title: "Mad Analogy: Rails i18n translations in Yaml: translation tool support", fancy_title: null, internal: false, reflection: false, clicks: 3, user_id: 3190, domain: "www.madanalogy.com", }, { url: "https://github.com/tr8n", title: "Translation Exchange · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 3, user_id: 9006, domain: "github.com", }, { url: "http://pootle.locamotion.org/", title: "Main | Pootle Demo", fancy_title: null, internal: false, reflection: false, clicks: 2, user_id: 3190, domain: "pootle.locamotion.org", }, { url: "http://www.youtube.com/watch?v=MqqdzJ98q7s", title: "GoGaRuCo 2012 - Linguistic Potluck: Crowdsourcing Localization in Rails by Heather Rivers - YouTube", fancy_title: null, internal: false, reflection: false, clicks: 2, user_id: 212, domain: "www.youtube.com", }, { url: "https://meta.discourse.org/t/translation-workflow/6102", title: "Translation workflow", fancy_title: null, internal: true, reflection: true, clicks: 2, user_id: 4702, domain: "meta.discourse.org", }, { url: "https://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: 2, user_id: 639, domain: "meta.discourse.org", }, { url: "https://tr8nhub.com", title: "TranslationExchange", fancy_title: null, internal: false, reflection: false, clicks: 2, user_id: 9006, domain: "tr8nhub.com", }, { url: "https://meta.discourse.org/t/roadplan-for-discourse/2939/3", title: "Roadplan for Discourse 2013", fancy_title: null, internal: true, reflection: true, clicks: 1, user_id: 2540, domain: "meta.discourse.org", }, { url: "http://sugarjs.com/dates#date_locales", title: "Dates - Sugar", fancy_title: null, internal: false, reflection: false, clicks: 1, user_id: 461, domain: "sugarjs.com", }, { url: "http://blog.discourse.org/2013/03/localizing-discourse/", title: "Localizing Discourse", fancy_title: null, internal: false, reflection: false, clicks: 1, user_id: 893, domain: "blog.discourse.org", }, { url: "https://github.com/discourse/discourse/blob/main/app/assets/javascripts/locales/date_locales.js", title: null, fancy_title: null, internal: false, reflection: false, clicks: 1, user_id: 461, domain: "github.com", }, { url: "http://transifex.com/projects/p/discourse-pt-br/", title: "Discourse-Translations-Project localization", fancy_title: null, internal: false, reflection: false, clicks: 1, user_id: 893, domain: "transifex.com", }, { url: "https://github.com/discourse/discourse/issues/279", title: null, fancy_title: null, internal: false, reflection: false, clicks: 1, user_id: 893, domain: "github.com", }, { url: "https://meta.discourse.org/t/comrades-lets-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: 1, user_id: 3417, domain: "meta.discourse.org", }, { url: "https://meta.discourse.org/t/translation-workflow/6102/6", title: "Translation workflow", fancy_title: null, internal: true, reflection: false, clicks: 0, user_id: 1995, domain: "meta.discourse.org", }, { url: "https://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: 0, user_id: 3681, domain: "meta.discourse.org", }, { url: "https://github.com/discourse/discourse/blob/main/config/locales/client.de.yml", title: "discourse/config/locales/client.de.yml at master · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 0, user_id: 2, domain: "github.com", }, { url: "https://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: 0, user_id: 1, domain: "meta.discourse.org", }, { url: "https://meta.discourse.org/t/github-onebox-rendering-issue/7616", title: "GitHub OneBox Rendering Issue", fancy_title: null, internal: true, reflection: true, clicks: 0, user_id: 5372, domain: "meta.discourse.org", }, { url: "https://github.com/discourse/discourse/blob/main/config/locales/server.de.yml", title: "discourse/config/locales/server.de.yml at master · discourse/discourse · GitHub", fancy_title: null, internal: false, reflection: false, clicks: 0, user_id: 2, domain: "github.com", }, { url: "https://meta.discourse.org/t/roadplan-for-discourse/2939/5", title: "Roadplan for Discourse 2013", fancy_title: null, internal: true, reflection: true, clicks: 0, user_id: 32, domain: "meta.discourse.org", }, { url: "https://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, domain: "meta.discourse.org", }, { url: "http://guides.rubyonrails.org/i18n.html#the-public-i18n-api", title: "Rails Internationalization (I18n) API — Ruby on Rails Guides", fancy_title: null, internal: false, reflection: false, clicks: 0, user_id: 1895, domain: "guides.rubyonrails.org", }, { url: "https://meta.discourse.org/t/hi-support-chinese/4393/6", title: "Hi, support Chinese?", fancy_title: null, internal: true, reflection: true, clicks: 0, user_id: 2014, domain: "meta.discourse.org", }, { url: "https://meta.discourse.org/t/translation-tools-transifex-localeapp/7763/41", title: "Translation Tools: Transifex? Localeapp?", fancy_title: null, internal: true, reflection: false, clicks: 0, user_id: 6626, domain: "meta.discourse.org", }, ], notification_level: 2, notifications_reason_id: 4, can_move_posts: true, can_edit: true, can_delete: true, can_recover: true, can_remove_allowed_users: true, can_invite_to: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, }, highest_post_number: 10, last_read_post_number: 10, deleted_by: null, has_deleted: true, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true }, { id: 7, count: 0, hidden: false, can_act: true }, { id: 8, count: 0, hidden: false, can_act: true }, ], chunk_size: 20, bookmarked: false, bookmarks: [], suggested_topics: [ { id: 27331, title: "Polls are still very buggy", fancy_title: "Polls are still very buggy", slug: "polls-are-still-very-buggy", posts_count: 4, reply_count: 1, highest_post_number: 4, image_url: "/uploads/default/_optimized/cd1/b8c/c162528887_690x401.png", created_at: "2015-04-08T09:51:00.357Z", last_posted_at: "2015-04-08T15:59:16.258Z", bumped: true, bumped_at: "2015-04-08T16:05:09.842Z", unseen: false, last_read_post_number: 3, unread_posts: 1, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 11, views: 55, category_id: 1, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, { id: 27343, title: "Mobile theme doesn't show last activity time for topics on category page", fancy_title: "Mobile theme doesn’t show last activity time for topics on category page", slug: "mobile-theme-doesnt-show-last-activity-time-for-topics-on-category-page", posts_count: 4, reply_count: 2, highest_post_number: 4, image_url: "/uploads/default/_optimized/13e/25c/bd30b466be_281x500.png", created_at: "2015-04-08T14:20:51.177Z", last_posted_at: "2015-04-08T15:40:30.037Z", bumped: true, bumped_at: "2015-04-08T15:40:30.037Z", unseen: false, last_read_post_number: 2, unread_posts: 2, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 3, views: 23, category_id: 9, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, { id: 27346, title: 'Reply+{messagekey}@... optionally in header "from" in addition to "reply-to"', fancy_title: "Reply+{messagekey}@… optionally in header “from” in addition to “reply-to”", slug: "reply-messagekey-optionally-in-header-from-in-addition-to-reply-to", posts_count: 1, reply_count: 0, highest_post_number: 1, image_url: null, created_at: "2015-04-08T16:05:13.103Z", last_posted_at: "2015-04-08T16:05:13.415Z", bumped: true, bumped_at: "2015-04-08T16:05:13.415Z", unseen: true, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 0, views: 8, category_id: 2, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, { id: 19670, title: "Parsing (Oneboxing) IMDB links", fancy_title: "Parsing (Oneboxing) IMDB links", slug: "parsing-oneboxing-imdb-links", posts_count: 8, reply_count: 1, highest_post_number: 8, image_url: null, created_at: "2014-09-05T07:19:26.161Z", last_posted_at: "2015-04-07T09:21:21.570Z", bumped: true, bumped_at: "2015-04-07T09:21:21.570Z", unseen: false, last_read_post_number: 8, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 4, views: 253, category_id: 2, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, { id: 7512, title: "Support for Piwik Analytics as an alternative to Google Analytics", fancy_title: "Support for Piwik Analytics as an alternative to Google Analytics", slug: "support-for-piwik-analytics-as-an-alternative-to-google-analytics", posts_count: 53, reply_count: 41, highest_post_number: 65, image_url: "/plugins/emoji/images/smile.png", created_at: "2013-06-16T01:32:30.596Z", last_posted_at: "2015-02-22T13:46:26.845Z", bumped: true, bumped_at: "2015-02-22T13:46:26.845Z", unseen: false, last_read_post_number: 65, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], bookmarks: [], liked: false, archetype: "regular", like_count: 62, views: 1877, category_id: 2, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, { id: 25480, title: "CSS admin-contents reloaded", fancy_title: "CSS admin-contents reloaded", slug: "css-admin-contents-reloaded", posts_count: 22, reply_count: 15, highest_post_number: 22, image_url: null, created_at: "2015-02-21T12:15:57.707Z", last_posted_at: "2015-03-02T23:24:18.899Z", bumped: true, bumped_at: "2015-03-02T23:24:18.899Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 21, views: 185, category_id: 2, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, { id: 26576, title: "Badge timestamp should be the time the badge was granted?", fancy_title: "Badge timestamp should be the time the badge was granted?", slug: "badge-timestamp-should-be-the-time-the-badge-was-granted", posts_count: 2, reply_count: 0, highest_post_number: 2, image_url: null, created_at: "2015-03-20T13:22:08.266Z", last_posted_at: "2015-03-21T00:33:52.243Z", bumped: true, bumped_at: "2015-03-21T00:33:52.243Z", unseen: false, last_read_post_number: 1, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 1, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 9, views: 87, category_id: 2, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, ], tags: null, }, "/t/281.json": { post_stream: { posts: [ { id: 133, name: null, username: "bianca", avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", created_at: "2020-07-05T09:28:36.371Z", cooked: "

2021-09-30T11:00:00Z

", post_number: 1, post_type: 1, updated_at: "2020-07-05T09:28:36.371Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, readers_count: 0, score: 0, yours: true, topic_id: 281, topic_slug: "local-dates", display_username: null, primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: true, can_delete: false, can_recover: false, can_wiki: true, read: true, user_title: "Tester", title_is_group: false, actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, trust_level: 0, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, ], stream: [133], }, timeline_lookup: [[1, 0]], related_messages: [], suggested_topics: [], id: 281, title: "Local dates", fancy_title: "Local dates", posts_count: 1, created_at: "2020-07-05T09:28:36.260Z", views: 1, reply_count: 0, like_count: 0, last_posted_at: "2020-07-05T09:28:36.371Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "local-dates", category_id: null, word_count: 86, deleted_at: null, user_id: 1, featured_link: null, pinned_globally: false, pinned_at: null, pinned_until: null, image_url: null, draft: null, draft_key: "topic_281", draft_sequence: 0, posted: true, unpinned: null, pinned: false, current_post_number: 1, highest_post_number: 1, last_read_post_number: 1, last_read_post_id: 133, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, ], chunk_size: 20, bookmarked: false, bookmarks: [], message_archived: false, topic_timer: null, message_bus_last_id: 5, participant_count: 1, pm_with_non_human_user: false, show_read_indicator: false, requested_group_name: null, thumbnails: null, tags_disable_ads: false, details: { notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_remove_allowed_users: true, can_invite_to: true, can_invite_via_email: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, can_convert_topic: true, can_review_topic: true, can_remove_self_id: 1, participants: [ { id: 1, username: "bianca", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", post_count: 1, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, ], allowed_users: [], created_by: { id: 1, username: "bianca", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", }, last_poster: { id: 1, username: "bianca", name: null, avatar_template: "/letter_avatar_proxy/v4/letter/b/3be4f8/{size}.png", }, allowed_groups: [], }, }, "/t/28830/1.json": { post_stream: { posts: [ { id: 118591, name: "spends too much time on WTDWTF", username: "RaceProUK", avatar_template: "/images/avatar.png", uploaded_avatar_id: 40071, created_at: "2015-05-14T20:18:17.954Z", cooked: '

Normally, actions such as Liking are rate-limited, and when you hit the limit, you get a message telling you you\'ve hit the limit. However, in 1.3.0beta9, it seems those popups are no longer appearing.

\n\n

Edit: Possibly linked to this issue?

', post_number: 1, post_type: 1, updated_at: "2015-05-14T20:21:42.825Z", like_count: 6, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 14, reads: 24, score: 224.6, yours: false, topic_id: 28830, topic_slug: "1-3-0beta9-no-rate-limit-popups", display_username: "spends too much time on WTDWTF", primary_group_name: null, version: 1, can_edit: false, can_delete: false, can_recover: false, link_counts: [ { url: "https://meta.discourse.org/t/post-reply-on-different-topic-no-longer-works/28825", internal: true, reflection: false, title: "Post reply on different topic no longer works", clicks: 6, }, ], read: true, user_title: "Contributor", actions_summary: [ { id: 2, count: 6, hidden: false, can_act: false }, { id: 3, count: 0, hidden: false, can_act: false }, { id: 4, count: 0, hidden: false, can_act: false }, { id: 5, count: 0, hidden: true, can_act: false }, { id: 6, count: 0, hidden: false, can_act: false }, { id: 7, count: 0, hidden: false, can_act: false }, { id: 8, count: 0, hidden: false, can_act: false }, ], moderator: false, admin: false, staff: false, user_id: 14169, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: "", can_view_edit_history: true, wiki: false, }, { id: 118597, name: "Sam", username: "Yuun", avatar_template: "/images/avatar.png", uploaded_avatar_id: null, created_at: "2015-05-14T20:35:03.793Z", cooked: "

I'm seeing this issue as well. When you hit the rate limit, any further likes look like the forum is attempting and failing to apply them - the text saying 'you liked this' comes into place before quickly being removed.

\n\n

This makes it look (to the user) like the forum software is running into errors instead of said user hitting an intentional limit, which is a bit unfortunate.

", post_number: 2, post_type: 1, updated_at: "2015-05-14T20:35:03.793Z", like_count: 0, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 6, reads: 22, score: 34.2, yours: false, topic_id: 28830, topic_slug: "1-3-0beta9-no-rate-limit-popups", display_username: "Sam", primary_group_name: null, version: 1, can_edit: false, can_delete: false, can_recover: false, read: true, user_title: null, actions_summary: [ { id: 2, count: 0, hidden: false, can_act: false }, { id: 3, count: 0, hidden: false, can_act: false }, { id: 4, count: 0, hidden: false, can_act: false }, { id: 5, count: 0, hidden: true, can_act: false }, { id: 6, count: 0, hidden: false, can_act: false }, { id: 7, count: 0, hidden: false, can_act: false }, { id: 8, count: 0, hidden: false, can_act: false }, ], moderator: false, admin: false, staff: false, user_id: 14795, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 118601, name: "Kane York", username: "riking", avatar_template: "/images/avatar.png", uploaded_avatar_id: 40212, created_at: "2015-05-14T21:05:19.837Z", cooked: "

I'm going to guess that the bootbox library got broken somehow?

", post_number: 3, post_type: 1, updated_at: "2015-05-14T21:05:19.837Z", like_count: 0, reply_count: 1, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 14, score: 7.2, yours: false, topic_id: 28830, topic_slug: "1-3-0beta9-no-rate-limit-popups", display_username: "Kane York", primary_group_name: null, version: 1, can_edit: false, can_delete: false, can_recover: false, read: true, user_title: "team summer intern 2014", actions_summary: [ { id: 2, count: 0, hidden: false, can_act: false }, { id: 3, count: 0, hidden: false, can_act: false }, { id: 4, count: 0, hidden: false, can_act: false }, { id: 5, count: 0, hidden: true, can_act: false }, { id: 6, count: 0, hidden: false, can_act: false }, { id: 7, count: 0, hidden: false, can_act: false }, { id: 8, count: 0, hidden: false, can_act: false }, ], moderator: false, admin: false, staff: false, user_id: 6626, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 118606, name: "Jeff Atwood", username: "codinghorror", avatar_template: "/images/avatar.png", uploaded_avatar_id: 5297, created_at: "2015-05-14T21:15:41.612Z", cooked: '

Yeah maybe another Ember 1.10 regression for @eviltrout ?

', post_number: 4, post_type: 1, updated_at: "2015-05-14T21:15:41.612Z", like_count: 0, reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 6, reads: 12, score: 31.6, yours: false, topic_id: 28830, topic_slug: "1-3-0beta9-no-rate-limit-popups", display_username: "Jeff Atwood", primary_group_name: "discourse", version: 1, can_edit: false, can_delete: false, can_recover: false, read: true, user_title: "co-founder", actions_summary: [ { id: 2, count: 0, hidden: false, can_act: false }, { id: 3, count: 0, hidden: false, can_act: false }, { id: 4, count: 0, hidden: false, can_act: false }, { id: 5, count: 0, hidden: true, can_act: false }, { id: 6, count: 0, hidden: false, can_act: false }, { id: 7, count: 0, hidden: false, can_act: false }, { id: 8, count: 0, hidden: false, can_act: false }, ], moderator: true, admin: true, staff: true, user_id: 32, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 118612, name: "TDWTF member", username: "Onyx", avatar_template: "/images/avatar.png", uploaded_avatar_id: 33015, created_at: "2015-05-14T21:23:09.562Z", cooked: '\n\n

You mean the popup box library, guessing by the name? Still shows up when you want to cancel a post, so it\'s not all popups it seems.

', post_number: 5, post_type: 1, updated_at: "2015-05-14T21:23:09.562Z", like_count: 1, reply_count: 0, reply_to_post_number: 3, quote_count: 1, incoming_link_count: 0, reads: 11, score: 16.0, yours: false, topic_id: 28830, topic_slug: "1-3-0beta9-no-rate-limit-popups", display_username: "TDWTF member", primary_group_name: null, version: 1, can_edit: false, can_delete: false, can_recover: false, read: true, user_title: null, actions_summary: [ { id: 2, count: 1, hidden: false, can_act: false }, { id: 3, count: 0, hidden: false, can_act: false }, { id: 4, count: 0, hidden: false, can_act: false }, { id: 5, count: 0, hidden: true, can_act: false }, { id: 6, count: 0, hidden: false, can_act: false }, { id: 7, count: 0, hidden: false, can_act: false }, { id: 8, count: 0, hidden: false, can_act: false }, ], moderator: false, admin: false, staff: false, user_id: 10886, hidden: false, hidden_reason_id: null, trust_level: 2, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, ], stream: [118591, 118597, 118601, 118606, 118612], }, id: 28830, title: "1.3.0beta9: No rate-limit popups", fancy_title: "1.3.0beta9: No rate-limit popups", posts_count: 5, created_at: "2015-05-14T20:18:17.877Z", views: 38, reply_count: 1, participant_count: 5, like_count: 7, last_posted_at: "2015-05-14T21:23:09.562Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "1-3-0beta9-no-rate-limit-popups", category_id: 1, word_count: 198, deleted_at: null, draft: null, draft_key: "topic_28830", draft_sequence: null, unpinned: null, pinned_globally: false, pinned: false, pinned_at: null, details: { auto_close_at: null, auto_close_hours: null, auto_close_based_on_last_post: false, created_by: { id: 14169, username: "RaceProUK", uploaded_avatar_id: 40071, avatar_template: "/images/avatar.png", }, last_poster: { id: 10886, username: "Onyx", uploaded_avatar_id: 33015, avatar_template: "/images/avatar.png", }, participants: [ { id: 14795, username: "Yuun", uploaded_avatar_id: null, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 10886, username: "Onyx", uploaded_avatar_id: 33015, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 14169, username: "RaceProUK", uploaded_avatar_id: 40071, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 6626, username: "riking", uploaded_avatar_id: 40212, avatar_template: "/images/avatar.png", post_count: 1, }, { id: 32, username: "codinghorror", uploaded_avatar_id: 5297, avatar_template: "/images/avatar.png", post_count: 1, }, ], suggested_topics: [ { id: 2890, title: "Expanded quoted text not highlighting when text is formatted", fancy_title: "Expanded quoted text not highlighting when text is formatted", slug: "expanded-quoted-text-not-highlighting-when-text-is-formatted", posts_count: 8, reply_count: 5, highest_post_number: 8, image_url: null, created_at: "2013-02-12T12:18:02.181Z", last_posted_at: "2013-02-14T15:59:40.014Z", bumped: true, bumped_at: "2013-02-14T15:59:40.014Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 3, views: 361, category_id: 1, }, { id: 14213, title: "Plugins not being parsed in correct javascript context when loaded for jobs", fancy_title: "Plugins not being parsed in correct javascript context when loaded for jobs", slug: "plugins-not-being-parsed-in-correct-javascript-context-when-loaded-for-jobs", posts_count: 2, reply_count: 0, highest_post_number: 2, image_url: "/plugins/emoji/images/frowning.png", created_at: "2014-03-27T23:57:00.974Z", last_posted_at: "2015-03-20T04:56:03.982Z", bumped: true, bumped_at: "2015-03-20T04:56:03.982Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 0, views: 156, category_id: 1, }, { id: 22544, title: "Like count on profile off by one", fancy_title: "Like count on profile off by one", slug: "like-count-on-profile-off-by-one", posts_count: 7, reply_count: 2, highest_post_number: 7, image_url: null, created_at: "2014-11-26T08:15:39.802Z", last_posted_at: "2014-11-27T07:23:37.638Z", bumped: true, bumped_at: "2014-11-27T07:23:37.638Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 18, views: 192, category_id: 1, }, { id: 27670, title: "Using back still shows unread indicator on the topic", fancy_title: "Using back still shows unread indicator on the topic", slug: "using-back-still-shows-unread-indicator-on-the-topic", posts_count: 2, reply_count: 0, highest_post_number: 2, image_url: null, created_at: "2015-04-16T23:21:42.739Z", last_posted_at: "2015-04-17T02:43:08.447Z", bumped: true, bumped_at: "2015-04-17T02:43:08.447Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 1, views: 85, category_id: 1, }, { id: 26628, title: "Embed blocklist selector is broken", fancy_title: "Embed blocklist selector is broken", slug: "embed-blocklist-selector-is-broken", posts_count: 11, reply_count: 7, highest_post_number: 11, image_url: null, created_at: "2015-03-22T11:21:14.825Z", last_posted_at: "2015-04-20T09:11:38.999Z", bumped: true, bumped_at: "2015-04-20T09:11:38.999Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 1, views: 247, category_id: 1, }, { id: 18027, title: "Minor: delete/undelete needs a rate limit", fancy_title: "Minor: delete/undelete needs a rate limit", slug: "minor-delete-undelete-needs-a-rate-limit", posts_count: 4, reply_count: 1, highest_post_number: 4, image_url: null, created_at: "2014-07-25T02:51:41.158Z", last_posted_at: "2014-07-25T04:01:15.343Z", bumped: true, bumped_at: "2014-07-25T11:06:46.213Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 1, views: 165, category_id: 1, }, { id: 17396, title: "Bad Reply Key when pulling Autoforwarded Emails to Discourse", fancy_title: "Bad Reply Key when pulling Autoforwarded Emails to Discourse", slug: "bad-reply-key-when-pulling-autoforwarded-emails-to-discourse", posts_count: 20, reply_count: 15, highest_post_number: 20, image_url: null, created_at: "2014-07-09T18:34:57.114Z", last_posted_at: "2014-10-21T15:08:50.441Z", bumped: true, bumped_at: "2014-10-21T15:08:50.441Z", unseen: false, pinned: false, unpinned: null, visible: true, closed: false, archived: false, bookmarked: null, liked: null, archetype: "regular", like_count: 7, views: 542, category_id: 1, }, ], links: [ { url: "https://meta.discourse.org/t/post-reply-on-different-topic-no-longer-works/28825", title: "Post reply on different topic no longer works", fancy_title: null, internal: true, reflection: false, clicks: 6, user_id: 14169, domain: "meta.discourse.org", }, ], notification_level: 1, can_flag_topic: false, }, highest_post_number: 5, deleted_by: null, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: false }, { id: 7, count: 0, hidden: false, can_act: false }, { id: 8, count: 0, hidden: false, can_act: false }, ], chunk_size: 20, bookmarked: null, bookmarks: [], tags: null, }, "/t/9/1.json": { post_stream: { posts: [ { id: 18, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:11.840Z", cooked: "

This is the first post.

", post_number: 1, post_type: 1, updated_at: "2015-08-13T14:49:11.840Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: false, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 19, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:18.231Z", cooked: "

This is the second post.

", post_number: 2, post_type: 1, updated_at: "2015-08-13T14:49:18.231Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 20, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:23.927Z", cooked: "

This is the third post.

", post_number: 3, post_type: 1, updated_at: "2015-08-13T14:49:23.927Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, ], stream: [18, 19, 20], }, id: 9, title: "This is a test topic!", fancy_title: "This is a test topic!", posts_count: 3, created_at: "2015-08-13T14:49:11.720Z", views: 1, reply_count: 0, participant_count: 1, like_count: 0, last_posted_at: "2015-08-13T14:49:23.927Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "this-is-a-test-topic", category_id: 24, is_shared_draft: true, word_count: 15, deleted_at: null, user_id: 1, draft: null, draft_key: "topic_9", draft_sequence: 3, posted: true, unpinned: null, pinned_globally: false, pinned: false, pinned_at: null, pinned_until: null, details: { auto_close_at: null, auto_close_hours: null, auto_close_based_on_last_post: false, created_by: { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", }, last_poster: { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", }, participants: [ { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", post_count: 3, }, ], suggested_topics: [ { id: 8, title: "This is a new and awesome topic!", fancy_title: "This is a new and awesome topic!", slug: "this-is-a-new-and-awesome-topic", posts_count: 3, reply_count: 0, highest_post_number: 5, image_url: null, created_at: "2015-08-13T05:17:00.000Z", last_posted_at: "2015-08-13T10:14:34.799Z", bumped: true, bumped_at: "2015-08-13T10:14:34.799Z", unseen: false, last_read_post_number: 5, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, }, { id: 7, title: "This is a test category!", fancy_title: "This is a test category!", slug: "this-is-a-test-category", posts_count: 3, reply_count: 0, highest_post_number: 3, image_url: null, created_at: "2015-08-10T13:40:38.439Z", last_posted_at: "2015-08-13T01:59:44.928Z", bumped: true, bumped_at: "2015-08-13T01:58:35.206Z", unseen: false, last_read_post_number: 3, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 3, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, }, ], notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_recover: true, can_remove_allowed_users: true, can_invite_to: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, }, highest_post_number: 3, last_read_post_number: 3, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true }, { id: 7, count: 0, hidden: false, can_act: true }, { id: 8, count: 0, hidden: false, can_act: true }, ], chunk_size: 20, bookmarked: false, bookmarks: [], destination_category_id: 3, }, "/t/12/1.json": { suggested_topics: [ { id: 8, title: "This is a new and awesome topic!", fancy_title: "This is a new and awesome topic!", slug: "this-is-a-new-and-awesome-topic", posts_count: 3, reply_count: 0, highest_post_number: 5, image_url: null, created_at: "2015-08-13T05:17:00.000Z", last_posted_at: "2015-08-13T10:14:34.799Z", bumped: true, bumped_at: "2015-08-13T10:14:34.799Z", unseen: false, last_read_post_number: 5, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, ], post_stream: { posts: [ { id: 15, name: null, username: "test", avatar_template: "/images/avatar.png", created_at: "2017-01-27T03:53:58.394Z", cooked: "

I have a pen, I have an apple

", post_number: 1, post_type: 1, updated_at: "2017-01-27T03:53:58.394Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 12, topic_slug: "pm-for-testing", display_username: null, primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: true, can_delete: false, can_recover: true, can_wiki: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, can_translate: false, }, { id: 16, name: null, username: "test", avatar_template: "/images/avatar.png", created_at: "2017-01-27T04:10:02.941Z", cooked: "", post_number: 2, post_type: 3, updated_at: "2017-01-27T04:10:02.941Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 12, topic_slug: "pm-for-testing", display_username: null, primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: true, can_delete: true, can_recover: true, can_wiki: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, action_code: "invited_group", action_code_who: "Group", can_translate: false, }, ], stream: [15, 16], }, timeline_lookup: [[1, 0]], id: 12, title: "PM for testing", fancy_title: "PM for testing", posts_count: 2, created_at: "2017-01-27T03:53:58.360Z", views: 1, reply_count: 0, participant_count: 1, like_count: 0, last_posted_at: "2017-01-27T04:10:02.941Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "private_message", slug: "pm-for-testing", category_id: null, word_count: 8, deleted_at: null, user_id: 1, draft: null, draft_key: "topic_12", draft_sequence: 2, posted: true, unpinned: null, pinned_globally: false, pinned: false, pinned_at: null, pinned_until: null, details: { auto_close_at: null, auto_close_hours: null, auto_close_based_on_last_post: false, created_by: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, last_poster: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, allowed_groups: [ { id: 41, automatic: false, name: "Group", user_count: 0, alias_level: 99, visible: true, automatic_membership_email_domains: "", primary_group: false, title: null, grant_trust_level: null, incoming_email: null, has_messages: false, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, bio_raw: null, bio_cooked: null, public: false, allow_membership_requests: false, full_name: null, }, ], allowed_users: [ { id: 2, username: "someguy", avatar_template: "/images/avatar.png" }, { id: 1, username: "test", avatar_template: "/images/avatar.png" }, ], participants: [ { id: 1, username: "test", avatar_template: "/images/avatar.png", post_count: 2, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, ], suggested_topics: [ { id: 11, title: "This is a very important announcement", fancy_title: "This is a very important announcement", slug: "this-is-a-very-important-announcement", posts_count: 1, reply_count: 0, highest_post_number: 1, image_url: null, created_at: "2017-01-27T03:52:02.061Z", last_posted_at: "2017-01-27T03:52:02.119Z", bumped: true, bumped_at: "2017-01-27T03:52:02.119Z", unseen: false, last_read_post_number: 1, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 3, bookmarked: false, bookmarks: [], liked: false, archetype: "private_message", like_count: 0, views: 1, category_id: null, featured_link: null, posters: [ { extras: "latest single", description: "Original Poster, Most Recent Poster", user: { id: 1, username: "test", avatar_template: "/images/avatar.png", }, }, ], }, ], notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_recover: true, can_remove_allowed_users: true, can_invite_to: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, }, highest_post_number: 2, last_read_post_number: 2, last_read_post_id: 16, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true }, { id: 7, count: 0, hidden: false, can_act: true }, { id: 8, count: 0, hidden: false, can_act: true }, ], chunk_size: 20, bookmarked: false, bookmarks: [], message_archived: false, featured_link: null, }, "/t/299/1.json": { post_stream: { posts: [ { id: 18, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:11.840Z", cooked: "

This is the first post.

", post_number: 1, post_type: 1, updated_at: "2015-08-13T14:49:11.840Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: false, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 19, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:18.231Z", cooked: "

This is the second post.

", post_number: 2, post_type: 1, updated_at: "2015-08-13T14:49:18.231Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 20, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:23.927Z", cooked: "

This is the third post.

", post_number: 3, post_type: 1, updated_at: "2015-08-13T14:49:23.927Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, ], stream: [18, 19, 20], }, id: 299, title: "Look at this link", fancy_title: "Look at this link", posts_count: 3, created_at: "2015-08-13T14:49:11.720Z", views: 1, reply_count: 0, participant_count: 1, like_count: 0, last_posted_at: "2015-08-13T14:49:23.927Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "this-is-a-test-topic", category_id: 1, word_count: 15, deleted_at: null, user_id: 1, draft: null, draft_key: "topic_9", draft_sequence: 3, posted: true, unpinned: null, pinned_globally: false, pinned: false, pinned_at: null, pinned_until: null, featured_link: "http://www.example.com/has-title.html", featured_link_root_domain: "example.com", details: { auto_close_at: null, auto_close_hours: null, auto_close_based_on_last_post: false, created_by: { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", }, last_poster: { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", }, participants: [ { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", post_count: 3, }, ], suggested_topics: [ { id: 8, title: "This is a new and awesome topic!", fancy_title: "This is a new and awesome topic!", slug: "this-is-a-new-and-awesome-topic", posts_count: 3, reply_count: 0, highest_post_number: 5, image_url: null, created_at: "2015-08-13T05:17:00.000Z", last_posted_at: "2015-08-13T10:14:34.799Z", bumped: true, bumped_at: "2015-08-13T10:14:34.799Z", unseen: false, last_read_post_number: 5, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, }, { id: 7, title: "This is a test category!", fancy_title: "This is a test category!", slug: "this-is-a-test-category", posts_count: 3, reply_count: 0, highest_post_number: 3, image_url: null, created_at: "2015-08-10T13:40:38.439Z", last_posted_at: "2015-08-13T01:59:44.928Z", bumped: true, bumped_at: "2015-08-13T01:58:35.206Z", unseen: false, last_read_post_number: 3, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 3, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, }, ], notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_recover: true, can_remove_allowed_users: true, can_invite_to: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, }, highest_post_number: 3, last_read_post_number: 3, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true }, { id: 7, count: 0, hidden: false, can_act: true }, { id: 8, count: 0, hidden: false, can_act: true }, ], chunk_size: 20, bookmarked: false, bookmarks: [], }, "/t/301/1.json": { post_stream: { posts: [ { id: 18, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:11.840Z", cooked: '

This is the first post. @discourse

', post_number: 1, post_type: 1, updated_at: "2015-08-13T14:49:11.840Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: false, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 19, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:18.231Z", cooked: "

This is the second post.

", post_number: 2, post_type: 1, updated_at: "2015-08-13T14:49:18.231Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 20, username: "eviltrout", avatar_template: "/images/avatar.png", name: "Evil Trout", uploaded_avatar_id: 9, created_at: "2015-08-13T14:49:23.927Z", cooked: "

This is the third post.

", post_number: 3, post_type: 1, updated_at: "2015-08-13T14:49:23.927Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 1, score: 0, yours: true, topic_id: 9, topic_slug: "this-is-a-test-topic", display_username: "", primary_group_name: null, version: 1, can_edit: true, can_delete: true, can_recover: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true }, { id: 4, can_act: true }, { id: 5, hidden: true, can_act: true }, { id: 7, can_act: true }, { id: 8, can_act: true }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, hidden_reason_id: null, trust_level: 4, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, ], stream: [18, 19, 20], }, id: 299, title: "Look at this link", fancy_title: "Look at this link", posts_count: 3, created_at: "2015-08-13T14:49:11.720Z", views: 1, reply_count: 0, participant_count: 1, like_count: 0, last_posted_at: "2015-08-13T14:49:23.927Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "this-is-a-test-topic", category_id: 1, word_count: 15, deleted_at: null, user_id: 1, draft: null, draft_key: "topic_9", draft_sequence: 3, posted: true, unpinned: null, pinned_globally: false, pinned: false, pinned_at: null, pinned_until: null, featured_link: "http://www.example.com/has-title.html", details: { auto_close_at: null, auto_close_hours: null, auto_close_based_on_last_post: false, created_by: { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", }, last_poster: { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", }, participants: [ { id: 1, username: "tgxworld", uploaded_avatar_id: 9, avatar_template: "/images/avatar.png", post_count: 3, }, ], suggested_topics: [ { id: 8, title: "This is a new and awesome topic!", fancy_title: "This is a new and awesome topic!", slug: "this-is-a-new-and-awesome-topic", posts_count: 3, reply_count: 0, highest_post_number: 5, image_url: null, created_at: "2015-08-13T05:17:00.000Z", last_posted_at: "2015-08-13T10:14:34.799Z", bumped: true, bumped_at: "2015-08-13T10:14:34.799Z", unseen: false, last_read_post_number: 5, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 2, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, }, { id: 7, title: "This is a test category!", fancy_title: "This is a test category!", slug: "this-is-a-test-category", posts_count: 3, reply_count: 0, highest_post_number: 3, image_url: null, created_at: "2015-08-10T13:40:38.439Z", last_posted_at: "2015-08-13T01:59:44.928Z", bumped: true, bumped_at: "2015-08-13T01:58:35.206Z", unseen: false, last_read_post_number: 3, unread_posts: 0, pinned: false, unpinned: null, visible: true, closed: false, archived: false, notification_level: 3, bookmarked: false, bookmarks: [], liked: false, archetype: "regular", like_count: 0, views: 2, category_id: 1, }, ], notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_recover: true, can_remove_allowed_users: true, can_invite_to: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, }, highest_post_number: 3, last_read_post_number: 3, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true }, { id: 7, count: 0, hidden: false, can_act: true }, { id: 8, count: 0, hidden: false, can_act: true }, ], chunk_size: 20, bookmarked: false, bookmarks: [], }, "/t/34/1.json": { post_stream: { posts: [ { id: 98737532, name: null, username: "tim.lange", avatar_template: "/images/avatar.png", created_at: "2019-03-28T07:57:50.527Z", cooked: "

I am writing this private message to you

", ignored: false, post_number: 1, post_type: 1, updated_at: "2019-03-28T07:57:50.527Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, score: 1.15, yours: true, topic_id: 34, topic_slug: "test-pm", display_username: null, primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: true, can_delete: false, can_recover: null, can_wiki: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: true, staff: true, user_id: 1, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, }, { id: 419, name: "Tim Lange", username: "vox", avatar_template: "/images/avatar.png", created_at: "2019-03-28T08:04:16.790Z", cooked: "

Have a reply for your pm

", ignored: false, post_number: 3, post_type: 1, updated_at: "2019-03-28T08:04:16.790Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, score: 1.2, yours: false, topic_id: 34, topic_slug: "test-pm", display_username: "Tim Lange", primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: true, can_delete: true, can_recover: null, can_wiki: true, read: true, user_title: null, actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 2, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, notice: { type: "new_user" } }, ], stream: [25, 26, 27], }, timeline_lookup: [[1, 0]], id: 34, title: "Test PM", fancy_title: "Test PM", posts_count: 3, created_at: "2019-03-28T07:57:50.266Z", views: 2, reply_count: 0, like_count: 0, last_posted_at: "2019-03-28T08:04:16.790Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "private_message", slug: "test-pm", category_id: null, word_count: 23, deleted_at: null, pending_posts_count: 0, user_id: 1, featured_link: null, pinned_globally: false, pinned_at: null, pinned_until: null, draft: null, draft_key: "topic_34", draft_sequence: 2, posted: true, unpinned: null, pinned: false, details: { created_by: { id: 1, username: "tim.lange", name: null, avatar_template: "/images/avatar.png", }, last_poster: { id: 2, username: "vox", name: "Tim Lange", avatar_template: "/images/avatar.png", }, allowed_groups: [], allowed_users: [ { id: 2, username: "vox", name: "Tim Lange", avatar_template: "/images/avatar.png", }, { id: 1, username: "tim.lange", name: null, avatar_template: "/images/avatar.png", }, ], participants: [ { id: 1, username: "tim.lange", name: null, avatar_template: "/images/avatar.png", post_count: 2, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, { id: 2, username: "vox", name: "Tim Lange", avatar_template: "/images/avatar.png", post_count: 1, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, ], notification_level: 3, notifications_reason_id: 1, can_move_posts: true, can_edit: true, can_delete: true, can_remove_allowed_users: true, can_remove_self_id: 1, can_invite_to: true, can_invite_via_email: true, can_create_post: true, can_reply_as_new_topic: true, can_flag_topic: true, can_convert_topic: true, }, current_post_number: 1, highest_post_number: 3, last_read_post_number: 3, last_read_post_id: 27, deleted_by: null, has_deleted: false, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true }, { id: 8, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true }, ], chunk_size: 20, bookmarked: false, bookmarks: [], message_archived: false, topic_timer: null, message_bus_last_id: 7, participant_count: 2, pm_with_non_human_user: false, }, "/t/2480/1.json": { post_stream: { posts: [ { id: 41, name: "", username: "group_moderator", avatar_template: "/images/avatar.png", created_at: "2020-07-24T17:48:55.419Z", cooked: "

Here is my new topic. I am a group category moderator!

", post_number: 1, post_type: 1, updated_at: "2020-07-24T17:48:55.419Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, readers_count: 1, score: 0, yours: true, topic_id: 2480, topic_slug: "a-topic-with-group-category-moderators", display_username: "", primary_group_name: "group_moderators", flair_name: "group_moderators", flair_url: "cheese", flair_bg_color: "ff0", flair_color: "", version: 1, can_edit: true, can_delete: false, can_recover: false, can_wiki: false, read: true, user_title: "a title", title_is_group: false, bookmarked: false, bookmarks: [], actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, group_moderator: true, user_id: 3, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, { id: 42, name: "", username: "normal_user", avatar_template: "/images/avatar.png", created_at: "2020-07-24T17:50:01.263Z", cooked: "

A fascinating topic worthy of discussion.

", post_number: 2, post_type: 1, updated_at: "2020-07-24T17:50:01.263Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, readers_count: 1, score: 0, yours: false, topic_id: 2480, topic_slug: "a-topic-with-group-category-moderators", display_username: "", primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: false, can_delete: false, can_recover: false, can_wiki: false, read: true, user_title: null, bookmarked: false, bookmarks: [], actions_summary: [ { id: 2, can_act: true, }, { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 6, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 2, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, { id: 43, name: "", username: "group_moderator", avatar_template: "/images/avatar.png", created_at: "2020-07-24T17:50:17.274Z", cooked: '', post_number: 3, post_type: 1, updated_at: "2020-07-24T17:50:17.274Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, readers_count: 1, score: 0, yours: true, topic_id: 2480, topic_slug: "a-topic-with-group-category-moderators", display_username: "", primary_group_name: "group_moderators", flair_url: "cheese", flair_bg_color: "ff0", flair_color: "", version: 1, can_edit: true, can_delete: true, can_recover: false, can_wiki: false, read: true, user_title: "a title", title_is_group: false, bookmarked: false, bookmarks: [], actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, group_moderator: true, user_id: 3, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, ], stream: [41, 42, 43], }, timeline_lookup: [[1, 0]], id: 2480, title: "A Topic with Group Category Moderators", fancy_title: "A Topic with Group Category Moderators", posts_count: 3, created_at: "2020-07-24T17:48:54.986Z", views: 2, reply_count: 0, like_count: 0, last_posted_at: "2020-07-24T17:50:17.274Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "a-topic-with-group-category-moderators", category_id: 5, word_count: 22, deleted_at: null, user_id: 3, featured_link: null, pinned_globally: false, pinned_at: null, pinned_until: null, image_url: null, draft: null, draft_key: "topic_2480", draft_sequence: 1, posted: true, unpinned: null, pinned: false, current_post_number: 3, highest_post_number: 3, last_read_post_number: 3, last_read_post_id: 43, deleted_by: null, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, ], chunk_size: 20, bookmarked: false, bookmarks: [], topic_timer: null, message_bus_last_id: 4, participant_count: 2, show_read_indicator: false, thumbnails: null, details: { notification_level: 3, notifications_reason_id: 1, can_delete: true, can_edit: true, can_create_post: true, can_move_posts: true, can_reply_as_new_topic: true, can_flag_topic: true, can_review_topic: true, can_close_topic: true, can_archive_topic: true, can_toggle_topic_visibility: true, can_split_merge_topic: true, can_edit_staff_notes: true, can_pin_unpin_topic: true, can_moderate_category: true, participants: [ { id: 3, username: "group_moderator", name: "", avatar_template: "/images/avatar.png", post_count: 2, primary_group_name: "group_moderators", flar_name: "group_moderators", flair_url: "cheese", flair_color: "", flair_bg_color: "ff0", }, { id: 2, username: "normal_user", name: "", avatar_template: "/images/avatar.png", post_count: 1, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, ], created_by: { id: 3, username: "group_moderator", name: "", avatar_template: "/images/avatar.png", }, last_poster: { id: 3, username: "group_moderator", name: "", avatar_template: "/images/avatar.png", }, }, }, "/t/2481/1.json": { post_stream: { posts: [ { id: 2441, name: "", username: "group_moderator", avatar_template: "/images/avatar.png", created_at: "2020-07-24T17:48:55.419Z", cooked: "

Here is my new topic. I am a group category moderator!

", post_number: 1, post_type: 1, updated_at: "2020-07-24T17:48:55.419Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, readers_count: 1, score: 0, yours: true, topic_id: 2481, topic_slug: "topic-in-restricted-group", display_username: "", primary_group_name: "group_moderators", flair_name: "group_moderators", flair_url: "cheese", flair_bg_color: "ff0", flair_color: "", version: 1, can_edit: true, can_delete: false, can_recover: false, can_wiki: false, read: true, user_title: "a title", title_is_group: false, bookmarked: false, bookmarks: [], actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, group_moderator: true, user_id: 3, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, { id: 2442, name: "", username: "normal_user", avatar_template: "/images/avatar.png", created_at: "2020-07-24T17:50:01.263Z", cooked: "

A fascinating topic worthy of discussion.

", post_number: 2, post_type: 1, updated_at: "2020-07-24T17:50:01.263Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, readers_count: 1, score: 0, yours: false, topic_id: 2481, topic_slug: "topic-in-restricted-group", display_username: "", primary_group_name: null, flair_name: null, flair_url: null, flair_bg_color: null, flair_color: null, version: 1, can_edit: false, can_delete: false, can_recover: false, can_wiki: false, read: true, user_title: null, bookmarked: false, bookmarks: [], actions_summary: [ { id: 2, can_act: true, }, { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 6, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, user_id: 2, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, { id: 2443, name: "", username: "group_moderator", avatar_template: "/images/avatar.png", created_at: "2020-07-24T17:50:17.274Z", cooked: '', post_number: 3, post_type: 1, updated_at: "2020-07-24T17:50:17.274Z", reply_count: 0, reply_to_post_number: null, quote_count: 0, incoming_link_count: 0, reads: 2, readers_count: 1, score: 0, yours: true, topic_id: 2481, topic_slug: "topic-in-restricted-group", display_username: "", primary_group_name: "group_moderators", flair_url: "cheese", flair_bg_color: "ff0", flair_color: "", version: 1, can_edit: true, can_delete: true, can_recover: false, can_wiki: false, read: true, user_title: "a title", title_is_group: false, bookmarked: false, bookmarks: [], actions_summary: [ { id: 3, can_act: true, }, { id: 4, can_act: true, }, { id: 8, can_act: true, }, { id: 7, can_act: true, }, ], moderator: false, admin: false, staff: false, group_moderator: true, user_id: 3, hidden: false, trust_level: 1, deleted_at: null, user_deleted: false, edit_reason: null, can_view_edit_history: true, wiki: false, reviewable_id: 0, reviewable_score_count: 0, reviewable_score_pending_count: 0, }, ], stream: [2441, 2442, 2443], }, timeline_lookup: [[1, 0]], id: 2481, title: "A Topic in a Restricted Group", fancy_title: "A Topic in a Restricted Group", posts_count: 3, created_at: "2020-07-24T17:48:54.986Z", views: 2, reply_count: 0, like_count: 0, last_posted_at: "2020-07-24T17:50:17.274Z", visible: true, closed: false, archived: false, has_summary: false, archetype: "regular", slug: "topic-in-restricted-group", category_id: 2481, word_count: 22, deleted_at: null, user_id: 3, featured_link: null, pinned_globally: false, pinned_at: null, pinned_until: null, image_url: null, draft: null, draft_key: "topic_2481", draft_sequence: 1, posted: true, unpinned: null, pinned: false, current_post_number: 3, highest_post_number: 3, last_read_post_number: 3, last_read_post_id: 43, deleted_by: null, actions_summary: [ { id: 4, count: 0, hidden: false, can_act: true, }, { id: 8, count: 0, hidden: false, can_act: true, }, { id: 7, count: 0, hidden: false, can_act: true, }, ], chunk_size: 20, bookmarked: false, bookmarks: [], topic_timer: null, message_bus_last_id: 4, participant_count: 2, show_read_indicator: false, thumbnails: null, details: { notification_level: 3, notifications_reason_id: 1, can_delete: true, can_edit: true, can_create_post: true, can_move_posts: true, can_reply_as_new_topic: true, can_flag_topic: true, can_review_topic: true, can_close_topic: true, can_archive_topic: true, can_toggle_topic_visibility: true, can_split_merge_topic: true, can_edit_staff_notes: true, can_pin_unpin_topic: true, can_moderate_category: true, participants: [ { id: 3, username: "group_moderator", name: "", avatar_template: "/images/avatar.png", post_count: 2, primary_group_name: "group_moderators", flar_name: "group_moderators", flair_url: "cheese", flair_color: "", flair_bg_color: "ff0", }, { id: 2, username: "normal_user", name: "", avatar_template: "/images/avatar.png", post_count: 1, primary_group_name: null, flair_name: null, flair_url: null, flair_color: null, flair_bg_color: null, }, ], created_by: { id: 3, username: "group_moderator", name: "", avatar_template: "/images/avatar.png", }, last_poster: { id: 3, username: "group_moderator", name: "", avatar_template: "/images/avatar.png", }, }, }, };