Локализация может быть достаточно простой в .NET или настолько сложной, насколько вам нравится.
Более простым способом было бы создать библиотеки локализованных ресурсов для каждого поддерживаемого языка, а затем установить CultureInfo.CurrentUICulture
для выбранного или обнаруженного пользователем языка, возвращаясь к значению по умолчанию (предпочтительно английскому), если язык не установлен. не поддерживается.
И настроить наблюдателя на случай изменения языка.
Некоторые программы требуют перезагрузки, другие просто перерисовывают (как это выглядит в примере, который вы предоставили).