From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 8 Sep 2003 10:33:10 +0300 From: Sviatoslav Sviridov/Lintec Project To: ALT Devel discussion list Subject: Re: [devel] Russian characters & GTK2 (pango) Message-Id: <20030908103310.46ad3723.svd@lintec.minsk.by> In-Reply-To: <20030908065016.GB16619@abr.tool.ru> References: <20030908065016.GB16619@abr.tool.ru> Organization: Lintec Project JV X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i586-alt-linux-gnu) X-Face: %Av?Q?S`_fW3{8Nn@U?pmQ:KpT{ubq^sADb; Mqrs'rMWqxeYqnbN>?urq)N7<]T:H!bH!gzQfxTc5s9ee:^hCOeUF}|tc<2 Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2003 07:33:21 -0000 Archived-At: List-Archive: List-Post: On Mon, 8 Sep 2003 10:50:16 +0400 Andrey Brindeew wrote: > Hi! > > Попытался собрал на днях JPilot с GTK2 и понял, что там всё плохо с > интернационализацией. Программа пытается выводить однобайтовые данные, в > результате чего в половине контролов мы не видим ничего, а в другой > половине - так называемые "кракозябры" (ISO). > > Вопрос следующий: как правильно выводить русские символы в программе на > языке Си, которая использует GTK2? Надо использовать строки в UTF-8 для отображения. > P.S. Русский перевод, который сделан в CP1251, выводится в GTK2-сборке > без проблем, в отличие от других данных, которые jpilot выводит > самостоятельно. При работе с GTK2-сборкой в консоли видим кучу > ворнингов: > > ** (jpilot:18821): WARNING **: Invalid UTF8 string passed to > pango_layout_set_text() > > Но вызова этой функции напрямую в коде jpilot я не нашел. > > P.P.S. Ссылки на программы, где сделана нормально интернационализация, > будет достаточно. Как и где правильно - не знаю :), но, как минимум, знаю, что synaptic и grip имеют в себе код по перекодированию. В synaptic использовались g_utf8_validate() и g_locale_to_utf8(). В grip производятся более разнообразные преобразования, и там используется g_convert(). -- Sviatoslav Sviridov /* icq: 10845380; jid: svd at altlinux dot org; */ [...] нет необходимости поддерживать целостность того, чего нет. -- ldv in devel@