Доброго времени суток! Подскажите пожалуйста, достаточно ли для полноценной интернационализации приложения на С следующих вещей: 1. Установить локаль (setlocale(LC_ALL, "");). 2. Либо весь вводимый текст переводить в wide-char и работать с ним, либо помнить, что в char* один символ != один байт. 3. Использовать gettext (либо аналог). 4. Числа, даты, валюту выводить/форматировать стандартными средствами с поддержкой локали.
Это все или я что-то забыл?
Далее, какие за и против использования внутреннего представления в wide-char? Если в программе не требуется обработка текста (максимум - сортировка введенных строк), то не лучше ли не делать лишние трансляции (mbstowcs/wcstombs)?
Если требуется хранить текст в UTF-8, то нормально ли использовать для перекодировки iconv, получая текущую кодировку через nl_langinfo(CODESET)?
Насколько прозрачна поддержка i18n и UTF-8 в библиотеках GUI (Gtk, Qt)?