I am writing a web app in ASP.NET (2.0), VS2005. The main reason for developing a new application (rather than using readily-available off-the-shelf solutions) is that I need full support for at least two languages (that is front-end and the data). I am looking for the best ways of tackling i18n in ASP.NET (it can be just the UI, sorting out DB is simpler). Obviously .NET provides its own i18n mechanisms and I've been using those before but have not been greatly impressed - it falls short in my opinion to gettext that I used on a few big open source projects in C++ and Java. I am looking for a solution that would satisfy the following requirements:
- all translations gathered in one place
- adding new languages being easy
- translating does not require VS and can be done by fairly inexperienced users (translators)
- discovery of available languages
- changes to original strings easily cascaded to existing translations
- support for plural forms (ngettext)
(any more ideas?)