The texts are kept in a database which can be given to a human translator who can create equivalent texts in another language, which is then added to the database. The database also contains the necessary details of object geometry. The system is applied as a pre-processor to the Revolution code to adapt the application to the new language. There is no need for the developer to change the original Revolution code at all. There is no limit to the number of languages that can be accommodated in this way. NativeSpeak contains a number of powerful components, which are fully described in the documentation.