Add reference to GNU.Gettext.dll assembly in your project.
// Create resource manager
GettextResourceManager catalog = new GettextResourceManager();
// if satellite assemblies have another base name use
// GettextResourceManager("Examples.HelloForms.Messages") constructor
// Write out translated messages
Console.WriteLine(catalog.GetString("Hello, world!"));
Console.WriteLine(catalog.GetStringFmt(
"This program is running as process number \"{0}\".",
Process.GetCurrentProcess().Id));
Extract messages to PO template file from your *.cs source code using Xgettext.NET utility
# From project root directory
# Linux
mono GNU.Gettext.Xgettext.exe -D ./ --recursive -o ./po/Messages.pot
# Windows
GNU.Gettext.Xgettext.exe" -D .\ --recursive -o .\po\Messages.pot
With using of any PO editor (i.e. POEdit) create or update your PO translation files and then translate messages.
Build resources satellite assemblies from PO files using Msgfmt.NET utility
# From PO directory
# Linux
mono GNU.Gettext.Msgfmt.exe -l fr-FR -d ../bin/Debug -r Examples.Hello.Messages -L ../../Bin/Debug fr.po
# Windows
GNU.Gettext.Msgfmt.exe -l fr-FR -d ..\bin\Debug -r Examples.Hello.Messages -L ..\..\Bin/Debug fr.po
The wiki uses Markdown syntax.