                 _id = ChanslateMessages.insert(
                     createMessage(userName, null, msg)
                 )
-                translatedMsg = translate(msg, dstLang, srcLang)
-                ChanslateMessages.update({ _id: _id }, {
-                    $set:
-                        'src.text': translatedMsg
-                })
+                translateAndPopulate(msg, dstLang, srcLang, _id, 'src.text')
+
     )
 
 

                _id = ChanslateMessages.insert(
                    createMessage(userName, msg, null)
                )
                translatedMsg = translate(msg, srcLang, dstLang)
                ChanslateMessages.update({ _id: _id }, {
                    $set:
                        'dst.text': translatedMsg
                })

        addDstMessage: (userName, msg) ->
            # TODO (UU): This can fail.
            console.log('Adding dst message:', msg, ' ~ ', userName)

            checkParams(userName, msg)


srcLang = 'en'
dstLang = 'de'

createMessage = (userName, srcMsg, dstMsg) ->
    {
        userName: userName
        at: new Date()
        src:
            lang     : srcLang
            text     : srcMsg
            original : srcMsg != null
        dst:
            lang     : dstLang
            text     : dstMsg
            original : dstMsg != null
    }

checkParams = (userName, msg) ->
    check(userName , String)
    check(msg      , String)


truncMessage = (msg, limit) ->
    if msg.length > limit
        msg.substr(0, limit)
    else
        msg


translate = (text, source, target) ->
    check(text   , String)
