We have a plugin with custom Element Types that allows a user to create a field layout using custom fields.

We understand how to setup a localized site and add translation files. This question is specifically about how to add support for the user to be able to add content in multiple languages via the custom fields as they add new Entries to a Custom Element Type.

It would be nice to see a list of all the steps we need to consider. Ideally, the answer could double as the page we would have read in the documentation instead of posting this question =)

**Update:**

For reference, these are the tables that appear to have a `locale` column in the default Craft database.

* craft\_categorygroups\_i18n
* craft\_content
* craft\_elements\_i18n
* craft\_entrydrafts
* craft\_entryversions
* craft\_locales
* craft\_matrixblocks (ownerLocale)
* craft\_matrixcontent\_body (and any other Matrix field's content table)
* craft\_routes
* craft\_searchindex
* craft\_sections\_i18n
* craft\_templatecaches