Submitted by: jmz
If anyone wants to translate this into another language, I believe it's ready.
have some doc.