{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla/addons-frontend/pulls/comments/71128019","id":71128019,"diff_hunk":"@@ -84,3 +84,113 @@ the JSON to the repo.\n # build the JSON.\n NODE_APP_INSTANCE=[MY_APP] bin/build-locales\n ```\n+\n+## Setting up translations\n+\n+To set-up a component to be translated there are two pieces of code to know\n+about.\n+\n+### Jed\n+\n+We use [Jed](https://slexaxton.github.io/Jed/) as the API for providing\n+`gettext` functions inside React components. An initialized `Jed` instance\n+has all the `gettext` related functionality exposed as methods. There is a\n+fancy chained API but we've stuck to a more traditional approach.\n+\n+Before we get into how to make use of these functions let's take a look at\n+how the Jed instance is exposed to our components.\n+\n+### The Translation Provider\n+\n+The translation provider is used to pass down a Jed instance via context to\n+components lower down in the component hierarchy. This part is already done\n+for you in the addons-frontend code-base. So you should only need to worry\n+about wrapping your components as detailed in the next section.\n+\n+## The translate component wrapper.\n+\n+The translate Higher Order Component is a helper that wraps any component\n+and takes the `Jed` `i18n` instance from context and makes it  available in\n+the wrapped component's props.\n+\n+Here's an example of a very basic component setup for translation:\n+\n+\n+```javascript\n+import React, { PropTypes } from 'react';\n+import translate from 'core/i18n/translate';\n+\n+\n+export class MyTranslatedComponent extends React.Component {\n+  static propTypes = {\n+    i18n: PropTypes.object.isRequired,\n+  }\n+\n+  render() {\n+    const { i18n } = this.props;\n+    return (\n+      <div>\n+        <p>{i18n.gettext('Something translated')}</p>\n+      </div>\n+    );\n+  }\n+}\n+\n+export default translate()(MyTranslatedComponent);\n+```\n+\n+That's pretty much all there is to it.\n+\n+## Using the Jed API\n+\n+Once you have `i18n` available to your component you can then use\n+any of the Jed methods exposed on the `i18n` object.\n+\n+```","path":"docs/i18n.md","position":66,"original_position":66,"commit_id":"6f00ef102c2f3cdbd9f67054c2d8bfb8e30baf97","original_commit_id":"6f00ef102c2f3cdbd9f67054c2d8bfb8e30baf97","user":{"login":"tofumatt","id":90871,"avatar_url":"https://avatars.githubusercontent.com/u/90871?v=3","gravatar_id":"","url":"https://api.github.com/users/tofumatt","html_url":"https://github.com/tofumatt","followers_url":"https://api.github.com/users/tofumatt/followers","following_url":"https://api.github.com/users/tofumatt/following{/other_user}","gists_url":"https://api.github.com/users/tofumatt/gists{/gist_id}","starred_url":"https://api.github.com/users/tofumatt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tofumatt/subscriptions","organizations_url":"https://api.github.com/users/tofumatt/orgs","repos_url":"https://api.github.com/users/tofumatt/repos","events_url":"https://api.github.com/users/tofumatt/events{/privacy}","received_events_url":"https://api.github.com/users/tofumatt/received_events","type":"User","site_admin":false},"body":"Could add the \"javascript\" text here to syntax highlight the functions below.","created_at":"2016-07-18T10:42:48Z","updated_at":"2016-07-18T10:42:48Z","html_url":"https://github.com/mozilla/addons-frontend/pull/775#discussion_r71128019","pull_request_url":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775","_links":{"self":{"href":"https://api.github.com/repos/mozilla/addons-frontend/pulls/comments/71128019"},"html":{"href":"https://github.com/mozilla/addons-frontend/pull/775#discussion_r71128019"},"pull_request":{"href":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775","id":77619580,"html_url":"https://github.com/mozilla/addons-frontend/pull/775","diff_url":"https://github.com/mozilla/addons-frontend/pull/775.diff","patch_url":"https://github.com/mozilla/addons-frontend/pull/775.patch","issue_url":"https://api.github.com/repos/mozilla/addons-frontend/issues/775","number":775,"state":"open","locked":false,"title":"Add docs re: component translation","user":{"login":"muffinresearch","id":1514,"avatar_url":"https://avatars.githubusercontent.com/u/1514?v=3","gravatar_id":"","url":"https://api.github.com/users/muffinresearch","html_url":"https://github.com/muffinresearch","followers_url":"https://api.github.com/users/muffinresearch/followers","following_url":"https://api.github.com/users/muffinresearch/following{/other_user}","gists_url":"https://api.github.com/users/muffinresearch/gists{/gist_id}","starred_url":"https://api.github.com/users/muffinresearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/muffinresearch/subscriptions","organizations_url":"https://api.github.com/users/muffinresearch/orgs","repos_url":"https://api.github.com/users/muffinresearch/repos","events_url":"https://api.github.com/users/muffinresearch/events{/privacy}","received_events_url":"https://api.github.com/users/muffinresearch/received_events","type":"User","site_admin":false},"body":"Fixes #514","created_at":"2016-07-15T13:57:28Z","updated_at":"2016-07-18T10:42:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2b200b00c97729f7a47e572b22b258a54aad16cd","assignee":{"login":"tofumatt","id":90871,"avatar_url":"https://avatars.githubusercontent.com/u/90871?v=3","gravatar_id":"","url":"https://api.github.com/users/tofumatt","html_url":"https://github.com/tofumatt","followers_url":"https://api.github.com/users/tofumatt/followers","following_url":"https://api.github.com/users/tofumatt/following{/other_user}","gists_url":"https://api.github.com/users/tofumatt/gists{/gist_id}","starred_url":"https://api.github.com/users/tofumatt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tofumatt/subscriptions","organizations_url":"https://api.github.com/users/tofumatt/orgs","repos_url":"https://api.github.com/users/tofumatt/repos","events_url":"https://api.github.com/users/tofumatt/events{/privacy}","received_events_url":"https://api.github.com/users/tofumatt/received_events","type":"User","site_admin":false},"assignees":[{"login":"tofumatt","id":90871,"avatar_url":"https://avatars.githubusercontent.com/u/90871?v=3","gravatar_id":"","url":"https://api.github.com/users/tofumatt","html_url":"https://github.com/tofumatt","followers_url":"https://api.github.com/users/tofumatt/followers","following_url":"https://api.github.com/users/tofumatt/following{/other_user}","gists_url":"https://api.github.com/users/tofumatt/gists{/gist_id}","starred_url":"https://api.github.com/users/tofumatt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tofumatt/subscriptions","organizations_url":"https://api.github.com/users/tofumatt/orgs","repos_url":"https://api.github.com/users/tofumatt/repos","events_url":"https://api.github.com/users/tofumatt/events{/privacy}","received_events_url":"https://api.github.com/users/tofumatt/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775/commits","review_comments_url":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775/comments","review_comment_url":"https://api.github.com/repos/mozilla/addons-frontend/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla/addons-frontend/issues/775/comments","statuses_url":"https://api.github.com/repos/mozilla/addons-frontend/statuses/6f00ef102c2f3cdbd9f67054c2d8bfb8e30baf97","head":{"label":"muffinresearch:add-docs-for-translations","ref":"add-docs-for-translations","sha":"6f00ef102c2f3cdbd9f67054c2d8bfb8e30baf97","user":{"login":"muffinresearch","id":1514,"avatar_url":"https://avatars.githubusercontent.com/u/1514?v=3","gravatar_id":"","url":"https://api.github.com/users/muffinresearch","html_url":"https://github.com/muffinresearch","followers_url":"https://api.github.com/users/muffinresearch/followers","following_url":"https://api.github.com/users/muffinresearch/following{/other_user}","gists_url":"https://api.github.com/users/muffinresearch/gists{/gist_id}","starred_url":"https://api.github.com/users/muffinresearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/muffinresearch/subscriptions","organizations_url":"https://api.github.com/users/muffinresearch/orgs","repos_url":"https://api.github.com/users/muffinresearch/repos","events_url":"https://api.github.com/users/muffinresearch/events{/privacy}","received_events_url":"https://api.github.com/users/muffinresearch/received_events","type":"User","site_admin":false},"repo":{"id":52104378,"name":"addons-frontend","full_name":"muffinresearch/addons-frontend","owner":{"login":"muffinresearch","id":1514,"avatar_url":"https://avatars.githubusercontent.com/u/1514?v=3","gravatar_id":"","url":"https://api.github.com/users/muffinresearch","html_url":"https://github.com/muffinresearch","followers_url":"https://api.github.com/users/muffinresearch/followers","following_url":"https://api.github.com/users/muffinresearch/following{/other_user}","gists_url":"https://api.github.com/users/muffinresearch/gists{/gist_id}","starred_url":"https://api.github.com/users/muffinresearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/muffinresearch/subscriptions","organizations_url":"https://api.github.com/users/muffinresearch/orgs","repos_url":"https://api.github.com/users/muffinresearch/repos","events_url":"https://api.github.com/users/muffinresearch/events{/privacy}","received_events_url":"https://api.github.com/users/muffinresearch/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/muffinresearch/addons-frontend","description":"Front-end infrastructure and code to complement mozilla/addons-server","fork":true,"url":"https://api.github.com/repos/muffinresearch/addons-frontend","forks_url":"https://api.github.com/repos/muffinresearch/addons-frontend/forks","keys_url":"https://api.github.com/repos/muffinresearch/addons-frontend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/muffinresearch/addons-frontend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/muffinresearch/addons-frontend/teams","hooks_url":"https://api.github.com/repos/muffinresearch/addons-frontend/hooks","issue_events_url":"https://api.github.com/repos/muffinresearch/addons-frontend/issues/events{/number}","events_url":"https://api.github.com/repos/muffinresearch/addons-frontend/events","assignees_url":"https://api.github.com/repos/muffinresearch/addons-frontend/assignees{/user}","branches_url":"https://api.github.com/repos/muffinresearch/addons-frontend/branches{/branch}","tags_url":"https://api.github.com/repos/muffinresearch/addons-frontend/tags","blobs_url":"https://api.github.com/repos/muffinresearch/addons-frontend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/muffinresearch/addons-frontend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/muffinresearch/addons-frontend/git/refs{/sha}","trees_url":"https://api.github.com/repos/muffinresearch/addons-frontend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/muffinresearch/addons-frontend/statuses/{sha}","languages_url":"https://api.github.com/repos/muffinresearch/addons-frontend/languages","stargazers_url":"https://api.github.com/repos/muffinresearch/addons-frontend/stargazers","contributors_url":"https://api.github.com/repos/muffinresearch/addons-frontend/contributors","subscribers_url":"https://api.github.com/repos/muffinresearch/addons-frontend/subscribers","subscription_url":"https://api.github.com/repos/muffinresearch/addons-frontend/subscription","commits_url":"https://api.github.com/repos/muffinresearch/addons-frontend/commits{/sha}","git_commits_url":"https://api.github.com/repos/muffinresearch/addons-frontend/git/commits{/sha}","comments_url":"https://api.github.com/repos/muffinresearch/addons-frontend/comments{/number}","issue_comment_url":"https://api.github.com/repos/muffinresearch/addons-frontend/issues/comments{/number}","contents_url":"https://api.github.com/repos/muffinresearch/addons-frontend/contents/{+path}","compare_url":"https://api.github.com/repos/muffinresearch/addons-frontend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/muffinresearch/addons-frontend/merges","archive_url":"https://api.github.com/repos/muffinresearch/addons-frontend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/muffinresearch/addons-frontend/downloads","issues_url":"https://api.github.com/repos/muffinresearch/addons-frontend/issues{/number}","pulls_url":"https://api.github.com/repos/muffinresearch/addons-frontend/pulls{/number}","milestones_url":"https://api.github.com/repos/muffinresearch/addons-frontend/milestones{/number}","notifications_url":"https://api.github.com/repos/muffinresearch/addons-frontend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/muffinresearch/addons-frontend/labels{/name}","releases_url":"https://api.github.com/repos/muffinresearch/addons-frontend/releases{/id}","deployments_url":"https://api.github.com/repos/muffinresearch/addons-frontend/deployments","created_at":"2016-02-19T17:26:17Z","updated_at":"2016-03-11T16:08:46Z","pushed_at":"2016-07-15T13:56:54Z","git_url":"git://github.com/muffinresearch/addons-frontend.git","ssh_url":"git@github.com:muffinresearch/addons-frontend.git","clone_url":"https://github.com/muffinresearch/addons-frontend.git","svn_url":"https://github.com/muffinresearch/addons-frontend","homepage":null,"size":66554,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mozilla:master","ref":"master","sha":"492ae6ce354e37353d59a03d3cc2e0c12b0ca231","user":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"repo":{"id":52104368,"name":"addons-frontend","full_name":"mozilla/addons-frontend","owner":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla/addons-frontend","description":"Front-end infrastructure and code to complement mozilla/addons-server","fork":false,"url":"https://api.github.com/repos/mozilla/addons-frontend","forks_url":"https://api.github.com/repos/mozilla/addons-frontend/forks","keys_url":"https://api.github.com/repos/mozilla/addons-frontend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla/addons-frontend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla/addons-frontend/teams","hooks_url":"https://api.github.com/repos/mozilla/addons-frontend/hooks","issue_events_url":"https://api.github.com/repos/mozilla/addons-frontend/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla/addons-frontend/events","assignees_url":"https://api.github.com/repos/mozilla/addons-frontend/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla/addons-frontend/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla/addons-frontend/tags","blobs_url":"https://api.github.com/repos/mozilla/addons-frontend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla/addons-frontend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla/addons-frontend/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla/addons-frontend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla/addons-frontend/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla/addons-frontend/languages","stargazers_url":"https://api.github.com/repos/mozilla/addons-frontend/stargazers","contributors_url":"https://api.github.com/repos/mozilla/addons-frontend/contributors","subscribers_url":"https://api.github.com/repos/mozilla/addons-frontend/subscribers","subscription_url":"https://api.github.com/repos/mozilla/addons-frontend/subscription","commits_url":"https://api.github.com/repos/mozilla/addons-frontend/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla/addons-frontend/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla/addons-frontend/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla/addons-frontend/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla/addons-frontend/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla/addons-frontend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla/addons-frontend/merges","archive_url":"https://api.github.com/repos/mozilla/addons-frontend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla/addons-frontend/downloads","issues_url":"https://api.github.com/repos/mozilla/addons-frontend/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla/addons-frontend/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla/addons-frontend/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla/addons-frontend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla/addons-frontend/labels{/name}","releases_url":"https://api.github.com/repos/mozilla/addons-frontend/releases{/id}","deployments_url":"https://api.github.com/repos/mozilla/addons-frontend/deployments","created_at":"2016-02-19T17:25:57Z","updated_at":"2016-07-10T10:33:52Z","pushed_at":"2016-07-17T20:59:23Z","git_url":"git://github.com/mozilla/addons-frontend.git","ssh_url":"git@github.com:mozilla/addons-frontend.git","clone_url":"https://github.com/mozilla/addons-frontend.git","svn_url":"https://github.com/mozilla/addons-frontend","homepage":null,"size":66686,"stargazers_count":7,"watchers_count":7,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":8,"mirror_url":null,"open_issues_count":57,"forks":8,"open_issues":57,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775"},"html":{"href":"https://github.com/mozilla/addons-frontend/pull/775"},"issue":{"href":"https://api.github.com/repos/mozilla/addons-frontend/issues/775"},"comments":{"href":"https://api.github.com/repos/mozilla/addons-frontend/issues/775/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla/addons-frontend/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla/addons-frontend/pulls/775/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla/addons-frontend/statuses/6f00ef102c2f3cdbd9f67054c2d8bfb8e30baf97"}}}}
{"actor":{"display_login":"tofumatt"}}