As a non-native English speaker, I always have to develop my projects with the option to translate at a later time, as it seems very very wrong to build anything with a default language other than English. So, I have tried various approaches and I believe it really depends on your project input.
An online application for managing clients won't need any translation on input, as clients' names are obviously non-translatable contents. Users from both languages should be comfortable seeing the client data in the client's native language.
An application to build an input form / input template (which may eventually be part of the UI). Your users may have to create fields, etc, for other users - in which case translating is necessary. Depending on how you implement your translation, you may ask them to:
- Write both languages
- Write an alias that will be used by someone who is responsible for translating the UI
- Write only one language and give the ability to other users to translate.
To elaborate on 3, you can show your (e.g.) English text to French users, if a translation is not available, but give them the ability to translate it on the fly, with a
<sup>Translate this!</sup> link or something.
To summarize, I don't believe anyone can help you draw a clear line on what to translate or how, without knowing more about your project. In my opinion, it is good practice to pass every part of the UI through translation when coding
, so that you can decide what to translate later on, by editing the database or whichever method you use for translating.