{"action":"created","issue":{"url":"https://api.github.com/repos/ckan/ckan/issues/2461","labels_url":"https://api.github.com/repos/ckan/ckan/issues/2461/labels{/name}","comments_url":"https://api.github.com/repos/ckan/ckan/issues/2461/comments","events_url":"https://api.github.com/repos/ckan/ckan/issues/2461/events","html_url":"https://github.com/ckan/ckan/pull/2461","id":86963293,"number":2461,"title":"add ITranslations interface","user":{"login":"joetsoi","id":241130,"avatar_url":"https://avatars.githubusercontent.com/u/241130?v=3","gravatar_id":"","url":"https://api.github.com/users/joetsoi","html_url":"https://github.com/joetsoi","followers_url":"https://api.github.com/users/joetsoi/followers","following_url":"https://api.github.com/users/joetsoi/following{/other_user}","gists_url":"https://api.github.com/users/joetsoi/gists{/gist_id}","starred_url":"https://api.github.com/users/joetsoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joetsoi/subscriptions","organizations_url":"https://api.github.com/users/joetsoi/orgs","repos_url":"https://api.github.com/users/joetsoi/repos","events_url":"https://api.github.com/users/joetsoi/events{/privacy}","received_events_url":"https://api.github.com/users/joetsoi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-06-10T13:00:54Z","updated_at":"2015-06-18T13:50:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ckan/ckan/pulls/2461","html_url":"https://github.com/ckan/ckan/pull/2461","diff_url":"https://github.com/ckan/ckan/pull/2461.diff","patch_url":"https://github.com/ckan/ckan/pull/2461.patch"},"body":"This allows extensions to merge in their own translations with the main\r\nckan strings at runtime. Each extension should have an 'i18n' directory in ckanext/myplugin/ of their repo containing its translations. The gettext domain\r\n(and hence filename) of the .mo files should be ckanext-{extname}\r\n\r\nsee (http://babel.pocoo.org/docs/support/#extended-translations-class)\r\n\r\nfixes #959 "},"comment":{"url":"https://api.github.com/repos/ckan/ckan/issues/comments/113162861","html_url":"https://github.com/ckan/ckan/pull/2461#issuecomment-113162861","issue_url":"https://api.github.com/repos/ckan/ckan/issues/2461","id":113162861,"user":{"login":"metaodi","id":538415,"avatar_url":"https://avatars.githubusercontent.com/u/538415?v=3","gravatar_id":"","url":"https://api.github.com/users/metaodi","html_url":"https://github.com/metaodi","followers_url":"https://api.github.com/users/metaodi/followers","following_url":"https://api.github.com/users/metaodi/following{/other_user}","gists_url":"https://api.github.com/users/metaodi/gists{/gist_id}","starred_url":"https://api.github.com/users/metaodi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metaodi/subscriptions","organizations_url":"https://api.github.com/users/metaodi/orgs","repos_url":"https://api.github.com/users/metaodi/repos","events_url":"https://api.github.com/users/metaodi/events{/privacy}","received_events_url":"https://api.github.com/users/metaodi/received_events","type":"User","site_admin":false},"created_at":"2015-06-18T13:50:47Z","updated_at":"2015-06-18T13:50:47Z","body":"@joetsoi how does that work with the domains? Do you have to specify from which domain you want to load a translation in a template? Or would a plugin have to override the `i18n_domain()` method and return `ckan` to replace translations from the CKAN core?"}}