'Jumps through all the right hoops to create a new translation.
If ``id`` is not given a new id will be created using
``translations_seq``.  Otherwise, the id will be used to add strings to
an existing translation.
To increment IDs we use a setting on MySQL. This is to support multiple
database masters -- it\'s just crazy enough to work! See bug 756242.'

@classmethod
def new(cls, string, locale, id=None):

    if (id is None):
        cursor = connections['default'].cursor()
        cursor.execute('\n                                                                UPDATE    translations_seq\n                                                                SET    id=LAST_INSERT_ID(id    +\n                                                                @@global.auto_increment_increment)')
        if (not (cursor.rowcount > 0)):
            cursor.execute('\n                                                                                INSERT    INTO    translations_seq    (id)\n                                                                                VALUES(LAST_INSERT_ID(id    +\n                                                                                @@global.auto_increment_increment))')
        cursor.execute('SELECT    LAST_INSERT_ID()')
        id = cursor.fetchone()[0]
    q = {'id': id, 'locale': locale}
    try:
        trans = cls.objects.get(**q)
        trans.localized_string = string
    except cls.DoesNotExist:
        trans = cls(localized_string=string, **q)
    return trans
