2010-10-03 4 views
2

Я пишу приложение на C++, которое должно быть независимым от локали, поэтому я решил использовать UTF-16 в качестве своего представления в памяти для строк/текстов (приложение должно быть как независимо от платформы). Для локализации сообщений приложения я хочу использовать библиотеку gettext GNU. Поскольку эта библиотека, как представляется, использует библиотеку GNU's libunistring, я тоже хочу использовать ее.C++ l10n, i18n решение с GNU gettext, libunistring

Является ли это хорошим решением для i18n, l10n? Я имею в виду, что в моих классах C++ будет много кода C (я не нашел C++ Wrapper для библиотеки libunistring).

Стефан

PS: Это мое первое приложение большой C++.

+0

Это приложение gui? Если это тот инструмент, на который вы пишете его? –

+0

Да, это должно быть приложение GUI, но я хочу сначала написать интерфейс командной строки, поэтому я еще не выбрал инструментарий. – Stefan

+0

Вопрос о GUI действителен, так как Qt, например, имеет встроенное представление для строк Unicode (QString). И другая (не-gettext) модель локализации. Это может быть проще (но не обязательно лучше). –

ответ

3

Вместо этого используйте UTF8. см:

+0

Библиотека libunistring также поддерживает UTF-8 как представление в памяти, поэтому нет смысла использовать его. Вы знаете лучшую библиотеку для этого? Кажется, что либнстримация не настолько хорошо документирована. – Stefan

+0

@Downvoter: Использование UTF-16 в коде C++ может быть проблематичным, особенно если нужно преобразовать между UTF-16 и UTF-8. Я не вижу веских оснований для этого ответа. –

1

Если это графический интерфейс приложения, написанные на C++, Qt может быть хорошим инструментарий, чтобы сделать это в Она включает в свой собственный класс строк и. его поддержка по интернационализации:

http://doc.trolltech.com/4.7/internationalization.html.

Также вы можете использовать основные классы non gui самостоятельно (они находятся в собственном пространстве имен QtCore, отдельно от пространства имен QtGui, и скомпилированы для разделения динамически связанных библиотек).

Смежные вопросы