{"action":"created","issue":{"url":"https://api.github.com/repos/SFTtech/openage/issues/266","labels_url":"https://api.github.com/repos/SFTtech/openage/issues/266/labels{/name}","comments_url":"https://api.github.com/repos/SFTtech/openage/issues/266/comments","events_url":"https://api.github.com/repos/SFTtech/openage/issues/266/events","html_url":"https://github.com/SFTtech/openage/issues/266","id":65100107,"number":266,"title":"String resource markup format","user":{"login":"dbrgn","id":105168,"avatar_url":"https://avatars.githubusercontent.com/u/105168?v=3","gravatar_id":"","url":"https://api.github.com/users/dbrgn","html_url":"https://github.com/dbrgn","followers_url":"https://api.github.com/users/dbrgn/followers","following_url":"https://api.github.com/users/dbrgn/following{/other_user}","gists_url":"https://api.github.com/users/dbrgn/gists{/gist_id}","starred_url":"https://api.github.com/users/dbrgn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbrgn/subscriptions","organizations_url":"https://api.github.com/users/dbrgn/orgs","repos_url":"https://api.github.com/users/dbrgn/repos","events_url":"https://api.github.com/users/dbrgn/events{/privacy}","received_events_url":"https://api.github.com/users/dbrgn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/SFTtech/openage/labels/proposal","name":"proposal","color":"6445d9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":14,"created_at":"2015-03-29T21:50:11Z","updated_at":"2015-04-01T08:59:41Z","closed_at":null,"body":"I stumbled over this comment in the converter source:\r\n\r\n ```python\r\n# TODO: transform and cleanup the read strings...\r\n# (strip html, insert formatchars/identifiers, ...)\r\n```\r\n\r\nWhen take a look at the strings, the following format is being used:\r\n\r\n- `<Team>`\r\n- `<b>Mini-map<b>`\r\n- `Create <b> Samurai<b> (<cost>)`\r\n- ..\r\n\r\nI see two different \"features\" in there. The first one is the pseudo-HTML (it's not HTML as no proper closing tags are being used) that's being used for markup. The other thing is placeholders.\r\n\r\nMy suggestion is the following:\r\n\r\n- Use a markdown subset for markup: `*italic*`, `**bold**`, `***bold italic***`. Maybe also the underscore variants (although I prefer simplicity).\r\n- Use a placeholder syntax inspired by Python 3's named `.format()` syntax: `Create **Samurai** ({cost})`. I don't think we need formatting syntax like `!s` or `:.2`.\r\n- Convert all uppercase placeholders to lowercase. Convert camelCase (not sure if that even exists) to snake_case.\r\n- Strip unneeded whitespace\r\n\r\nSo the examples above would become:\r\n\r\n- `{team}`\r\n- `**Mini-map**`\r\n- `Create **Samurai** ({cost})`\r\n\r\nAn alternative placeholder could be like in the Django template language: `{{ placeholder_name }}`. That would also leave open the possibility for filters: `{{ begin_date|date:\"d.m.y H:M\" }}`\r\n\r\nOpinions?\r\n\r\n<bountysource-plugin>\r\n---\r\nWant to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/10198376-string-resource-markup-format?utm_campaign=plugin&utm_content=tracker%2F371436&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F371436&utm_medium=issues&utm_source=github).\r\n</bountysource-plugin>"},"comment":{"url":"https://api.github.com/repos/SFTtech/openage/issues/comments/88401663","html_url":"https://github.com/SFTtech/openage/issues/266#issuecomment-88401663","issue_url":"https://api.github.com/repos/SFTtech/openage/issues/266","id":88401663,"user":{"login":"mic-e","id":796624,"avatar_url":"https://avatars.githubusercontent.com/u/796624?v=3","gravatar_id":"","url":"https://api.github.com/users/mic-e","html_url":"https://github.com/mic-e","followers_url":"https://api.github.com/users/mic-e/followers","following_url":"https://api.github.com/users/mic-e/following{/other_user}","gists_url":"https://api.github.com/users/mic-e/gists{/gist_id}","starred_url":"https://api.github.com/users/mic-e/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mic-e/subscriptions","organizations_url":"https://api.github.com/users/mic-e/orgs","repos_url":"https://api.github.com/users/mic-e/repos","events_url":"https://api.github.com/users/mic-e/events{/privacy}","received_events_url":"https://api.github.com/users/mic-e/received_events","type":"User","site_admin":false},"created_at":"2015-04-01T08:59:41Z","updated_at":"2015-04-01T08:59:41Z","body":"Well, I don't really care at what point in the abstraction stack the hover text is rendered, but it should be."}}