With DatoCMS you are free to add new locales at any time; just be aware that, once a new locale is added, if some validations are present on your fields, those validations will be enforced for every locale. Records already created will therefore be marked as “invalid”, and you won't be able to update your records until all the validations are satisfied for all the locales. For more information, take a look at the Data migration chapter.
You can configure a certain model so that your editors are not forced to insert content for every language your project supports, but just for some of them, on a per-record basis.
This allows use cases such as multi-language blogs, where some articles can be written only in English, other only in Italian and others in both languages.
You can enable optional translations, unchecking the All locales required? option in your model settings:
Our roles/permissions system allows specifying which locales each collaborator can add/edit/remove on any record. For each role you can define both global rules, which will be applied to all models in your project, and specific per-model rules, giving maximum flexibility:
By default, the CMS interface will pick the default browser's language and, if available, will show the interface localized.
If you prefer to manually pick one, you can do it like this:
If you don't find the translation that you need, and you are looking into contributing, read this blog post to learn more and get involved.
DatoCMS allows a great deal of customization when dealing with localization. Check out these tutorial videos for a hands-on approach: