1. A computer-implemented method comprising: receiving, using one or more processors, an initial message of a first user in a first language from a first chat client system; querying, using the one or more processors, a data store for a first corresponding message in a second language, the first corresponding message being based on the initial message in the first language; determining, using the one or more processors, that the data store does not include the first corresponding message and, based thereon: selecting, using the one or more processors, an order for a plurality of different transformation modules based on the initial message, wherein each transformation module accepts as respective input a portion of a message and provides as respective output a transformed version of the respective input in the first language, and wherein the order is selected based on at least one of (i) precedence, (ii) a priority of transformation operations, (iii) a transformation operation that is most likely to generate a transformed message suitable for translation, and (iv) a transformation operation that generates a most formal transformed message; for each of one or more portions of the initial message, providing, using the one or more processors, the portion as input to a first transformation module in the order and providing the respective output of each transformation module as the respective input to a following transformation module in the order; selecting, using the one or more processors, the respective output of the last transformation module in the order as the transformed message in the first language; and querying, using the one or more processors, the data store for a second corresponding message in the second language, the second corresponding message being based on the transformed message in the first language.