{"action":"created","issue":{"url":"https://api.github.com/repos/rainlab/translate-plugin/issues/83","labels_url":"https://api.github.com/repos/rainlab/translate-plugin/issues/83/labels{/name}","comments_url":"https://api.github.com/repos/rainlab/translate-plugin/issues/83/comments","events_url":"https://api.github.com/repos/rainlab/translate-plugin/issues/83/events","html_url":"https://github.com/rainlab/translate-plugin/pull/83","id":95875807,"number":83,"title":"Fixed unicode message not translatable","user":{"login":"justin-lau","id":2094881,"avatar_url":"https://avatars.githubusercontent.com/u/2094881?v=3","gravatar_id":"","url":"https://api.github.com/users/justin-lau","html_url":"https://github.com/justin-lau","followers_url":"https://api.github.com/users/justin-lau/followers","following_url":"https://api.github.com/users/justin-lau/following{/other_user}","gists_url":"https://api.github.com/users/justin-lau/gists{/gist_id}","starred_url":"https://api.github.com/users/justin-lau/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justin-lau/subscriptions","organizations_url":"https://api.github.com/users/justin-lau/orgs","repos_url":"https://api.github.com/users/justin-lau/repos","events_url":"https://api.github.com/users/justin-lau/events{/privacy}","received_events_url":"https://api.github.com/users/justin-lau/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-07-19T01:55:31Z","updated_at":"2015-07-19T21:31:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rainlab/translate-plugin/pulls/83","html_url":"https://github.com/rainlab/translate-plugin/pull/83","diff_url":"https://github.com/rainlab/translate-plugin/pull/83.diff","patch_url":"https://github.com/rainlab/translate-plugin/pull/83.patch"},"body":"This PR fixes #82. I have created it based on an assumption that the message codes are merely used as a key of the hash table of messages. If I have overlooked anything, hashing may not be the way to solve the unicode message issue. Anyway, I need unicode messages to be translatable in my current project and I have tested and confirmed it working great with unicode messages as well as the English based ones.\r\n\r\nThe message code is replaced by a hash value using [MurmurHash 3](https://github.com/lastguest/murmurhash-php), the [fastest non-cryptographic hashing algorithm](https://github.com/Cyan4973/xxHash#benchmarks) I can find without the need of an extension, yet has a fairly well collision avoidance. (Extended reading: [Hash functions: An empirical comparison](http://www.strchr.com/hash_functions))\r\n\r\nThis PR changes the way the message code is generated, therefore **it breaks the ability to lookup previously stored messages**."},"comment":{"url":"https://api.github.com/repos/rainlab/translate-plugin/issues/comments/122708166","html_url":"https://github.com/rainlab/translate-plugin/pull/83#issuecomment-122708166","issue_url":"https://api.github.com/repos/rainlab/translate-plugin/issues/83","id":122708166,"user":{"login":"daftspunk","id":1392869,"avatar_url":"https://avatars.githubusercontent.com/u/1392869?v=3","gravatar_id":"","url":"https://api.github.com/users/daftspunk","html_url":"https://github.com/daftspunk","followers_url":"https://api.github.com/users/daftspunk/followers","following_url":"https://api.github.com/users/daftspunk/following{/other_user}","gists_url":"https://api.github.com/users/daftspunk/gists{/gist_id}","starred_url":"https://api.github.com/users/daftspunk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daftspunk/subscriptions","organizations_url":"https://api.github.com/users/daftspunk/orgs","repos_url":"https://api.github.com/users/daftspunk/repos","events_url":"https://api.github.com/users/daftspunk/events{/privacy}","received_events_url":"https://api.github.com/users/daftspunk/received_events","type":"User","site_admin":false},"created_at":"2015-07-19T21:31:33Z","updated_at":"2015-07-19T21:31:33Z","body":"I see the problem now. We'll need to come up with a way to make this backwards compatible by converting existing translations, or leave it until the next major version as a breaking change."}}