SecondLanguage lets you use Gettext files in .NET without a lot of hassle.
It can read and write both .mo and .po, and fully supports message contexts and plural forms.
A C-style printf formatter is included so you don't have to use .NET-specific translations.
Provide a printf replacement with colors.
This library provide a colorprintf function where colors can be set for a range using the syntax :
$foreground;background[text]
For example:
colorprintf "Hello $red[%s]." "world"