if you are using VFtemplate you can set language attribute to contact's language in <messaging:emailTemplate> tag, like in below example, this template is used when case is created and mail is sent to contact:
Make sure to check the Email template encoding format should be 'Unicode-UTF8' other wise the translations are not applied for selected language. Follow the Karan suggestion to add language attribute in email template and create custom lables in email template. So that the template will generate user language.
Go throgh below link for more details. http://salesforcedrive.blogspot.in/2013/08/visualforce-email-template-subject.html
<messaging:emailTemplate subject="Your subject" recipientType="User" relatedToType="Case" language="{!relatedTo.Contact.Supported_Language__c}">
where Supported_Language__c is custom field on contact.
Follow the Karan suggestion to add language attribute in email template and create custom lables in email template. So that the template will generate user language.
Go throgh below link for more details.
http://salesforcedrive.blogspot.in/2013/08/visualforce-email-template-subject.html