1. A computer-implemented method, comprising: automatically detecting, at a computing system including one or more processors, input by a user to a first application executing on the computing system, the input consisting of text to be translated from a source language to a target language that is different than the source language; intercepting, at the computing system, the input to the first application in response to automatically detecting the input; redirecting, at the computing system, the input to a second application executing on the computing system, the second application being different than the first application; generating, at the computing system, one or more potential translations of the input using the second application, each of the one or more potential translations of the input being of the target language; determining, at the computing system, one of the one or more potential translations of the input to obtain a translated input; and providing, at the computing system, the translated input to the first application, wherein intercepting the input to the first application includes intercepting a call via an interface, the interface being between the first application and an operating system of the computing system, the call being one of a system call and an application programming interface (API) call, wherein intercepting the call from the first application to the operating system further includes: applying, at the computing system, a hook to the interface between the first application and the operating system, and determining, at the computing system, the call by monitoring the interface between the first application and the operating system using the hook, wherein applying the hook to the interface between the first application and the operating system further includes registering, at the computing system, an address of the hook as an event handler, wherein providing the translated input to the first application further includes: unregistering, at the computing system, the address of the hook as an event handler by calling an original event handler, and transmitting, at the computing system, the translated input to the original handler, wherein the original event handler is configured to transmit the translated input to an application interface of the first application, and wherein unregistering the address of the hook is performed when the user manually disables the first application or when the user changes their focus to a different application, and further comprising re-registering, at the computing system, the address of the hook as an event handler when the address of the hook has been unregistered and the user changes their focus back to the first application.