{"action":"created","comment":{"url":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments/28993560","id":28993560,"diff_hunk":"@@ -362,7 +362,8 @@ def load_dictionary(filename):\n                       'spyder.ini', 'temp.py', 'temp.spydata', 'template.py',\r\n                       'history.py', 'history_internal.py', 'workingdir',\r\n                       '.projects', '.spyderproject', '.ropeproject',\r\n-                      'monitor.log', 'monitor_debug.log', 'rope.log')\r\n+                      'monitor.log', 'monitor_debug.log', 'rope.log',\r\n+                      '.langconfig')\r","path":"spyderlib/utils/iofuncs.py","position":6,"original_position":6,"commit_id":"b0338bc56f7bef50a3681fc9dc708353b7444399","original_commit_id":"b0338bc56f7bef50a3681fc9dc708353b7444399","user":{"login":"ccordoba12","id":365293,"avatar_url":"https://avatars.githubusercontent.com/u/365293?v=3","gravatar_id":"","url":"https://api.github.com/users/ccordoba12","html_url":"https://github.com/ccordoba12","followers_url":"https://api.github.com/users/ccordoba12/followers","following_url":"https://api.github.com/users/ccordoba12/following{/other_user}","gists_url":"https://api.github.com/users/ccordoba12/gists{/gist_id}","starred_url":"https://api.github.com/users/ccordoba12/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccordoba12/subscriptions","organizations_url":"https://api.github.com/users/ccordoba12/orgs","repos_url":"https://api.github.com/users/ccordoba12/repos","events_url":"https://api.github.com/users/ccordoba12/events{/privacy}","received_events_url":"https://api.github.com/users/ccordoba12/received_events","type":"User","site_admin":false},"body":"`.langconfig` -> `langconfig`","created_at":"2015-04-23T19:10:46Z","updated_at":"2015-04-23T19:10:46Z","html_url":"https://github.com/spyder-ide/spyder/pull/2349#discussion_r28993560","pull_request_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349","_links":{"self":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments/28993560"},"html":{"href":"https://github.com/spyder-ide/spyder/pull/2349#discussion_r28993560"},"pull_request":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349"}}},"pull_request":{"url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349","id":33847812,"html_url":"https://github.com/spyder-ide/spyder/pull/2349","diff_url":"https://github.com/spyder-ide/spyder/pull/2349.diff","patch_url":"https://github.com/spyder-ide/spyder/pull/2349.patch","issue_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2349","number":2349,"state":"open","locked":false,"title":"Add support for language selection in preferences","user":{"login":"goanpeca","id":3627835,"avatar_url":"https://avatars.githubusercontent.com/u/3627835?v=3","gravatar_id":"","url":"https://api.github.com/users/goanpeca","html_url":"https://github.com/goanpeca","followers_url":"https://api.github.com/users/goanpeca/followers","following_url":"https://api.github.com/users/goanpeca/following{/other_user}","gists_url":"https://api.github.com/users/goanpeca/gists{/gist_id}","starred_url":"https://api.github.com/users/goanpeca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goanpeca/subscriptions","organizations_url":"https://api.github.com/users/goanpeca/orgs","repos_url":"https://api.github.com/users/goanpeca/repos","events_url":"https://api.github.com/users/goanpeca/events{/privacy}","received_events_url":"https://api.github.com/users/goanpeca/received_events","type":"User","site_admin":false},"body":"Fixes #1001 \r\n\r\n---\r\n\r\n## Description\r\n\r\nAdd support for language selection in preferences. \r\n\r\nThis was a bit trickier than expected, namely the configuration of the language needs to be stored in a separate file, because we cannot use CONF at the stage the `_` function is called.\r\n\r\nI added a `.langconfig` in the .`spyder` folder, which stores the language value ('en', 'fr' etc)\r\n\r\nWith this change I had to implement some new logic in the config dialog, so now comboboxes (so far) have an extra parameter call `restart`  (by default False).\r\n\r\nThere are two possible ways and we need to agree on which. \r\n\r\n1.) Ask the user if he wants to restart for the setting to take place, **immediately** after changing the setting \r\n2.) Ask the user if he wants to restart for the setting to take place, only after pressing Ok or Apply \r\n\r\n## Preferences dialog\r\n\r\n![image](https://cloud.githubusercontent.com/assets/3627835/7273982/3265775a-e8f9-11e4-9ebc-a33eaaa60722.png)\r\n\r\n\r\n## Pop up message box\r\nRight now, I implemented version 1.) as soon as the user selects a different language, a message box will pop up:\r\n\r\n![image](https://cloud.githubusercontent.com/assets/3627835/7273091/8fe2daa2-e8f0-11e4-9442-80d9c4f592b8.png)\r\n\r\nIf the user accepts, settings will be saved and spyder will restart automatically.\r\n\r\n### Note:\r\nThe message box is now available for any other combobox that is created with the `restart=True` parameter. There is a possibility to include this behavior to other widgets.\r\n\r\n## TODO\r\n- [x] Display language names In original Language?\r\n- [ ] Agree on additional file method and name?\r\n- [ ] Add the restart functionality to all the other widgets besides comboboxes?\r\n- [ ] Define when to pop the box to the user for restart\r\n","created_at":"2015-04-22T11:08:20Z","updated_at":"2015-04-23T19:10:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"816082bcd9f3604fb972821e4afbe9c84cd63912","assignee":{"login":"goanpeca","id":3627835,"avatar_url":"https://avatars.githubusercontent.com/u/3627835?v=3","gravatar_id":"","url":"https://api.github.com/users/goanpeca","html_url":"https://github.com/goanpeca","followers_url":"https://api.github.com/users/goanpeca/followers","following_url":"https://api.github.com/users/goanpeca/following{/other_user}","gists_url":"https://api.github.com/users/goanpeca/gists{/gist_id}","starred_url":"https://api.github.com/users/goanpeca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goanpeca/subscriptions","organizations_url":"https://api.github.com/users/goanpeca/orgs","repos_url":"https://api.github.com/users/goanpeca/repos","events_url":"https://api.github.com/users/goanpeca/events{/privacy}","received_events_url":"https://api.github.com/users/goanpeca/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/spyder-ide/spyder/milestones/5","html_url":"https://github.com/spyder-ide/spyder/milestones/v3.0","labels_url":"https://api.github.com/repos/spyder-ide/spyder/milestones/5/labels","id":982077,"number":5,"title":"v3.0","description":"","creator":{"login":"spyder-issues-migrator","id":11021581,"avatar_url":"https://avatars.githubusercontent.com/u/11021581?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-issues-migrator","html_url":"https://github.com/spyder-issues-migrator","followers_url":"https://api.github.com/users/spyder-issues-migrator/followers","following_url":"https://api.github.com/users/spyder-issues-migrator/following{/other_user}","gists_url":"https://api.github.com/users/spyder-issues-migrator/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-issues-migrator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-issues-migrator/subscriptions","organizations_url":"https://api.github.com/users/spyder-issues-migrator/orgs","repos_url":"https://api.github.com/users/spyder-issues-migrator/repos","events_url":"https://api.github.com/users/spyder-issues-migrator/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-issues-migrator/received_events","type":"User","site_admin":false},"open_issues":253,"closed_issues":59,"state":"open","created_at":"2015-02-16T23:17:23Z","updated_at":"2015-04-23T17:10:44Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349/commits","review_comments_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349/comments","review_comment_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2349/comments","statuses_url":"https://api.github.com/repos/spyder-ide/spyder/statuses/b0338bc56f7bef50a3681fc9dc708353b7444399","head":{"label":"goanpeca:language","ref":"language","sha":"b0338bc56f7bef50a3681fc9dc708353b7444399","user":{"login":"goanpeca","id":3627835,"avatar_url":"https://avatars.githubusercontent.com/u/3627835?v=3","gravatar_id":"","url":"https://api.github.com/users/goanpeca","html_url":"https://github.com/goanpeca","followers_url":"https://api.github.com/users/goanpeca/followers","following_url":"https://api.github.com/users/goanpeca/following{/other_user}","gists_url":"https://api.github.com/users/goanpeca/gists{/gist_id}","starred_url":"https://api.github.com/users/goanpeca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goanpeca/subscriptions","organizations_url":"https://api.github.com/users/goanpeca/orgs","repos_url":"https://api.github.com/users/goanpeca/repos","events_url":"https://api.github.com/users/goanpeca/events{/privacy}","received_events_url":"https://api.github.com/users/goanpeca/received_events","type":"User","site_admin":false},"repo":{"id":31085493,"name":"spyder","full_name":"goanpeca/spyder","owner":{"login":"goanpeca","id":3627835,"avatar_url":"https://avatars.githubusercontent.com/u/3627835?v=3","gravatar_id":"","url":"https://api.github.com/users/goanpeca","html_url":"https://github.com/goanpeca","followers_url":"https://api.github.com/users/goanpeca/followers","following_url":"https://api.github.com/users/goanpeca/following{/other_user}","gists_url":"https://api.github.com/users/goanpeca/gists{/gist_id}","starred_url":"https://api.github.com/users/goanpeca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goanpeca/subscriptions","organizations_url":"https://api.github.com/users/goanpeca/orgs","repos_url":"https://api.github.com/users/goanpeca/repos","events_url":"https://api.github.com/users/goanpeca/events{/privacy}","received_events_url":"https://api.github.com/users/goanpeca/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/goanpeca/spyder","description":"Official repository for Spyder - The Scientific PYthon Development EnviRonment","fork":true,"url":"https://api.github.com/repos/goanpeca/spyder","forks_url":"https://api.github.com/repos/goanpeca/spyder/forks","keys_url":"https://api.github.com/repos/goanpeca/spyder/keys{/key_id}","collaborators_url":"https://api.github.com/repos/goanpeca/spyder/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/goanpeca/spyder/teams","hooks_url":"https://api.github.com/repos/goanpeca/spyder/hooks","issue_events_url":"https://api.github.com/repos/goanpeca/spyder/issues/events{/number}","events_url":"https://api.github.com/repos/goanpeca/spyder/events","assignees_url":"https://api.github.com/repos/goanpeca/spyder/assignees{/user}","branches_url":"https://api.github.com/repos/goanpeca/spyder/branches{/branch}","tags_url":"https://api.github.com/repos/goanpeca/spyder/tags","blobs_url":"https://api.github.com/repos/goanpeca/spyder/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/goanpeca/spyder/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/goanpeca/spyder/git/refs{/sha}","trees_url":"https://api.github.com/repos/goanpeca/spyder/git/trees{/sha}","statuses_url":"https://api.github.com/repos/goanpeca/spyder/statuses/{sha}","languages_url":"https://api.github.com/repos/goanpeca/spyder/languages","stargazers_url":"https://api.github.com/repos/goanpeca/spyder/stargazers","contributors_url":"https://api.github.com/repos/goanpeca/spyder/contributors","subscribers_url":"https://api.github.com/repos/goanpeca/spyder/subscribers","subscription_url":"https://api.github.com/repos/goanpeca/spyder/subscription","commits_url":"https://api.github.com/repos/goanpeca/spyder/commits{/sha}","git_commits_url":"https://api.github.com/repos/goanpeca/spyder/git/commits{/sha}","comments_url":"https://api.github.com/repos/goanpeca/spyder/comments{/number}","issue_comment_url":"https://api.github.com/repos/goanpeca/spyder/issues/comments{/number}","contents_url":"https://api.github.com/repos/goanpeca/spyder/contents/{+path}","compare_url":"https://api.github.com/repos/goanpeca/spyder/compare/{base}...{head}","merges_url":"https://api.github.com/repos/goanpeca/spyder/merges","archive_url":"https://api.github.com/repos/goanpeca/spyder/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/goanpeca/spyder/downloads","issues_url":"https://api.github.com/repos/goanpeca/spyder/issues{/number}","pulls_url":"https://api.github.com/repos/goanpeca/spyder/pulls{/number}","milestones_url":"https://api.github.com/repos/goanpeca/spyder/milestones{/number}","notifications_url":"https://api.github.com/repos/goanpeca/spyder/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/goanpeca/spyder/labels{/name}","releases_url":"https://api.github.com/repos/goanpeca/spyder/releases{/id}","created_at":"2015-02-20T21:13:25Z","updated_at":"2015-04-21T21:42:02Z","pushed_at":"2015-04-23T09:59:15Z","git_url":"git://github.com/goanpeca/spyder.git","ssh_url":"git@github.com:goanpeca/spyder.git","clone_url":"https://github.com/goanpeca/spyder.git","svn_url":"https://github.com/goanpeca/spyder","homepage":"","size":21541,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"spyder-ide:master","ref":"master","sha":"8d3b9850fea3f88abeb0d07fbac24ee082d3cf3e","user":{"login":"spyder-ide","id":1284937,"avatar_url":"https://avatars.githubusercontent.com/u/1284937?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-ide","html_url":"https://github.com/spyder-ide","followers_url":"https://api.github.com/users/spyder-ide/followers","following_url":"https://api.github.com/users/spyder-ide/following{/other_user}","gists_url":"https://api.github.com/users/spyder-ide/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-ide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-ide/subscriptions","organizations_url":"https://api.github.com/users/spyder-ide/orgs","repos_url":"https://api.github.com/users/spyder-ide/repos","events_url":"https://api.github.com/users/spyder-ide/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-ide/received_events","type":"Organization","site_admin":false},"repo":{"id":30892477,"name":"spyder","full_name":"spyder-ide/spyder","owner":{"login":"spyder-ide","id":1284937,"avatar_url":"https://avatars.githubusercontent.com/u/1284937?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-ide","html_url":"https://github.com/spyder-ide","followers_url":"https://api.github.com/users/spyder-ide/followers","following_url":"https://api.github.com/users/spyder-ide/following{/other_user}","gists_url":"https://api.github.com/users/spyder-ide/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-ide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-ide/subscriptions","organizations_url":"https://api.github.com/users/spyder-ide/orgs","repos_url":"https://api.github.com/users/spyder-ide/repos","events_url":"https://api.github.com/users/spyder-ide/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-ide/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spyder-ide/spyder","description":"Official repository for Spyder - The Scientific PYthon Development EnviRonment","fork":false,"url":"https://api.github.com/repos/spyder-ide/spyder","forks_url":"https://api.github.com/repos/spyder-ide/spyder/forks","keys_url":"https://api.github.com/repos/spyder-ide/spyder/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spyder-ide/spyder/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spyder-ide/spyder/teams","hooks_url":"https://api.github.com/repos/spyder-ide/spyder/hooks","issue_events_url":"https://api.github.com/repos/spyder-ide/spyder/issues/events{/number}","events_url":"https://api.github.com/repos/spyder-ide/spyder/events","assignees_url":"https://api.github.com/repos/spyder-ide/spyder/assignees{/user}","branches_url":"https://api.github.com/repos/spyder-ide/spyder/branches{/branch}","tags_url":"https://api.github.com/repos/spyder-ide/spyder/tags","blobs_url":"https://api.github.com/repos/spyder-ide/spyder/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spyder-ide/spyder/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spyder-ide/spyder/git/refs{/sha}","trees_url":"https://api.github.com/repos/spyder-ide/spyder/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spyder-ide/spyder/statuses/{sha}","languages_url":"https://api.github.com/repos/spyder-ide/spyder/languages","stargazers_url":"https://api.github.com/repos/spyder-ide/spyder/stargazers","contributors_url":"https://api.github.com/repos/spyder-ide/spyder/contributors","subscribers_url":"https://api.github.com/repos/spyder-ide/spyder/subscribers","subscription_url":"https://api.github.com/repos/spyder-ide/spyder/subscription","commits_url":"https://api.github.com/repos/spyder-ide/spyder/commits{/sha}","git_commits_url":"https://api.github.com/repos/spyder-ide/spyder/git/commits{/sha}","comments_url":"https://api.github.com/repos/spyder-ide/spyder/comments{/number}","issue_comment_url":"https://api.github.com/repos/spyder-ide/spyder/issues/comments{/number}","contents_url":"https://api.github.com/repos/spyder-ide/spyder/contents/{+path}","compare_url":"https://api.github.com/repos/spyder-ide/spyder/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spyder-ide/spyder/merges","archive_url":"https://api.github.com/repos/spyder-ide/spyder/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spyder-ide/spyder/downloads","issues_url":"https://api.github.com/repos/spyder-ide/spyder/issues{/number}","pulls_url":"https://api.github.com/repos/spyder-ide/spyder/pulls{/number}","milestones_url":"https://api.github.com/repos/spyder-ide/spyder/milestones{/number}","notifications_url":"https://api.github.com/repos/spyder-ide/spyder/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spyder-ide/spyder/labels{/name}","releases_url":"https://api.github.com/repos/spyder-ide/spyder/releases{/id}","created_at":"2015-02-16T22:49:48Z","updated_at":"2015-04-23T18:58:26Z","pushed_at":"2015-04-23T18:18:58Z","git_url":"git://github.com/spyder-ide/spyder.git","ssh_url":"git@github.com:spyder-ide/spyder.git","clone_url":"https://github.com/spyder-ide/spyder.git","svn_url":"https://github.com/spyder-ide/spyder","homepage":"","size":31132,"stargazers_count":216,"watchers_count":216,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":64,"mirror_url":null,"open_issues_count":473,"forks":64,"open_issues":473,"watchers":216,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349"},"html":{"href":"https://github.com/spyder-ide/spyder/pull/2349"},"issue":{"href":"https://api.github.com/repos/spyder-ide/spyder/issues/2349"},"comments":{"href":"https://api.github.com/repos/spyder-ide/spyder/issues/2349/comments"},"review_comments":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349/comments"},"review_comment":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2349/commits"},"statuses":{"href":"https://api.github.com/repos/spyder-ide/spyder/statuses/b0338bc56f7bef50a3681fc9dc708353b7444399"}}}}