<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - Локализация/ЛокализацияПрограмм</title>
<link>http://freesource.info/wiki/Локализация/ЛокализацияПрограмм</link>
<description>History/revisions of FreeSource/Локализация/ЛокализацияПрограмм</description>
<language>en-us</language>
<item>
<title>2008-02-07 11:26:25</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2008-02-07+11%3A26%3A25</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".lokalizacija.lokalizacijaprogramm" href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2008-02-07+11%3A26%3A25">2008-02-07 11:26:25&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm">2008-02-07 11:28:04&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ul>&lt;li> &lt;a href="http://www.ibm.com/developerworks/ru/library/au-internatlgtk/index.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Эффективная локализация приложений с&amp;nbsp;помощью GTK+&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2007-08-30 07:10:47</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2007-08-30+07%3A10%3A47</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2007-08-30+07%3A10%3A47">2007-08-30 07:10:47&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2008-02-07+11%3A26%3A25">2008-02-07 11:26:25&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Как&amp;nbsp;показывает практика, в&amp;nbsp;большинстве программ, написанных на&amp;nbsp;gtk2, вывод в&amp;nbsp;консоль осуществляется с&amp;nbsp;помощью функций printf или&amp;nbsp;g_printf, которая есть ни&amp;nbsp;что иное, как&amp;nbsp;обёртка для&amp;nbsp;printf. Поскольку внутри программ на&amp;nbsp;gtk2 используется кодировка UTF8 (обратных примеров не&amp;nbsp;знаю), на&amp;nbsp;консоль выводится нечитаемая UTF8, без&amp;nbsp;всякого перекодирования.&lt;br />
if&amp;nbsp;(stat(filename, &amp;stat_struct) == 0) { // File already exist&lt;br />
&lt;div class="indent">&lt;div class="indent">char buffer[300];&lt;br />
char *utf8filename = NULL;&lt;br />
if&amp;nbsp;(!g_utf8_validate(filename, -1, NULL)) {&lt;br />
&lt;div class="indent">&lt;div class="indent">utf8filename = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);&lt;br />
if&amp;nbsp;(utf8filename == NULL) {&lt;br />
&lt;div class="indent">&lt;div class="indent">message_warning(_(&amp;laquo;Some characters in&amp;nbsp;the filename are&amp;nbsp;neither UTF-8 nor&amp;nbsp;you local encoding&amp;raquo;));&lt;br />
&lt;/div>&lt;/div>}&lt;br />
&lt;/div>&lt;/div>}&lt;br />
if&amp;nbsp;(utf8filename == NULL) utf8filename = g_strdup(filename);&lt;br />
g_snprintf(buffer, 300,&lt;br />
&lt;div class="indent">&lt;div class="indent">_(&amp;laquo;The file '%s' already exists.\n&amp;raquo;&lt;br />
&amp;#8220;Do you&amp;nbsp;want to&amp;nbsp;overwrite it?&amp;#8221;), utf8filename);&lt;br />
&lt;/div>&lt;/div>....&lt;br />
g_free(utf8filename);&lt;/div>&lt;/div>
}&lt;a name="h323-1">&lt;/a>&lt;h3>  Проблемы (с glade) &lt;/h3>
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell"> Система &lt;/td>&lt;td class="usercell"> Программа &lt;/td>&lt;td class="usercell"> Интерфейс (GTK) &lt;/td>&lt;td  class="usercell"> Проблемы &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> программа должна внутри перекодировать всякое общение с&amp;nbsp;граф. интерфейсом &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> программа должна перекодировать всякое общение с&amp;nbsp;внешним миром (консоль и&amp;nbsp;названия файлов)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> самый безпроблемный вариант &lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h323-2">&lt;/a>&lt;h2> Замечания по&amp;nbsp;локализации QT/KDE программ &lt;/h2>
О&amp;nbsp;интернационализации KDE-программ:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html&lt;/a>&lt;/li>&lt;/ul>
При&amp;nbsp;получении названия файла от&amp;nbsp;диалога &lt;br />
result.second = string(dlg.selectedFile().data());&lt;br />
 перед использованием для&amp;nbsp;открытия файлов нужна перекодировка &lt;a name="h323-3">&lt;/a>&lt;h3> Перевод одинаковых строк по-разному &lt;/h3>
При&amp;nbsp;переводе часто встречается ситуация, когда одинаковые строки, встречающиеся в&amp;nbsp;разных частях программы, должны переводиться по-разному. gettext же&amp;nbsp;объединяет такие строки. Лечится это&amp;nbsp;добавлением комментариев к&amp;nbsp;исходной строке, &lt;br />
&lt;s>для чего существует макрос I18N_NOOP2&lt;/s> в&amp;nbsp;KDE.  Совет устарел, см.&amp;nbsp;kde-i18n-howto. Сам&amp;nbsp;макрос, естественно, можно портировать куда угодно, если разработчикам соответствующего софта это&amp;nbsp;интересно. В&amp;nbsp;KDE используется патченный вариант xgettext. Но&amp;nbsp;и в&amp;nbsp;непатченном xgettext должна быть возможность использовать комментарии к&amp;nbsp;строкам, так&amp;nbsp;что какой-то вариант этого решения доступен и&amp;nbsp;в &lt;span class="missingpage">Gtk&amp;nbsp;/&amp;nbsp;GNOME&lt;/span>&lt;a href="http://freesource.info/wiki/Gtk/GNOME/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>.&lt;a name="h323-4">&lt;/a>&lt;h3> Десятичный разделитель &lt;/h3>
При&amp;nbsp;записи в&amp;nbsp;файл в&amp;nbsp;качестве десятичного разделителя должна использоваться точка.&lt;br />
В&amp;nbsp;функциях, сохраняющих данные в&amp;nbsp;файл в&amp;nbsp;определённом формате, необходимо использовать&lt;br />
следующую конструкцию во&amp;nbsp;избежание записи чисел в&amp;nbsp;локализованном виде.&lt;br />
&lt;div class="indent">&lt;div class="indent">char *oldloc;&lt;br />
/* &lt;span class="missingpage">Post&amp;nbsp;Script&lt;/span>&lt;a href="http://freesource.info/wiki/PostScript/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> parses things in&amp;nbsp;&amp;#8220;C&amp;#8221; locale too&amp;nbsp;*/&lt;br />
oldloc = setlocale(LC_NUMERIC,"C");&lt;br />
...&lt;br />
код&amp;nbsp;сохранения (fprintf например)&lt;br />
...&lt;br />
setlocale(LC_NUMERIC,oldloc); &lt;br />
&lt;div class="indent"> &lt;/div>&lt;/div>&lt;/div>&lt;a name="h323-5">&lt;/a>&lt;h2> Порядок испытания программы на&amp;nbsp;корректную работу с&amp;nbsp;локалью &lt;/h2>
Проблема работы с&amp;nbsp;файлами, названными по-русски, может возникнуть в&amp;nbsp;любой программе. Вот&amp;nbsp;примерный план проверки:&lt;br />
&lt;ol type="1">&lt;li> Сохранение файла с&amp;nbsp;русским названием в&amp;nbsp;английский каталог
&lt;/li>&lt;li> Сохранение файла с&amp;nbsp;русским путём к&amp;nbsp;файлу
&lt;/li>&lt;li> Корректное название вновь создаваемого файла  (в диалоге Создать)
&lt;/li>&lt;li> Открытие файла по&amp;nbsp;русскому пути (во всех возможных диалогах вставки и&amp;nbsp;открытия файла)
&lt;/li>&lt;li> Проверка экспортируемых файлов (например EPS&amp;nbsp;на&amp;nbsp;предмет корректности оформления цифр (десятичный разделитель): файлы не&amp;nbsp;должны отличаться при&amp;nbsp;запуске программы просто и&amp;nbsp;через $ LANG=C программа
&lt;/li>&lt;li> Запуск программы с&amp;nbsp;указанием русского названия файла в&amp;nbsp;качестве параметра
&lt;/li>&lt;/ol>&lt;div class="indent">&lt;/div>
&lt;em>Дополнительное замечание: &lt;/em>&lt;br />
Файловые диалоги при&amp;nbsp;повторном обращении должны помнить предыдущий каталог.&lt;br />
Vitaly Lipatov &amp;lt;lav@altlinux.ru&amp;gt;, 20&lt;span class="nobr">04&amp;ndash;200&lt;/span>5&lt;br />
Vyacheslav Dikonov &amp;lt;slava@altlinux.ru&amp;gt;, 2005&lt;a name="h323-6">&lt;/a>&lt;h2> Ссылки &lt;/h2>
&lt;ul>&lt;li> &lt;a href="http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html&lt;/a>&lt;/li>&lt;/ul>
&lt;!--notypo-->{{backlinks}}&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Как&amp;nbsp;показывает практика, в&amp;nbsp;большинстве программ, написанных на&amp;nbsp;gtk2, вывод в&lt;br />
2000&lt;br />
 консоль осуществляется с&amp;nbsp;помощью функций printf или&amp;nbsp;g_printf, которая есть ни&amp;nbsp;что иное, как&amp;nbsp;обёртка для&amp;nbsp;printf. Поскольку внутри программ на&amp;nbsp;gtk2 используется кодировка UTF8 (обратных примеров не&amp;nbsp;знаю), на&amp;nbsp;консоль выводится нечитаемая UTF8, без&amp;nbsp;всякого перекодирования.&lt;br />
if&amp;nbsp;(stat(filename,&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2007-01-05 20:43:59</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2007-01-05+20%3A43%3A59</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2007-01-05+20%3A43%3A59">2007-01-05 20:43:59&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2007-08-30+07%3A10%3A47">2007-08-30 07:10:47&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Как&amp;nbsp;показывает практика, в&amp;nbsp;большинстве программ, написанных на&amp;nbsp;gtk2, вывод в&lt;br />
2000&lt;br />
 консоль осуществляется с&amp;nbsp;помощью функций printf или&amp;nbsp;g_printf, которая есть ни&amp;nbsp;что иное, как&amp;nbsp;обёртка для&amp;nbsp;printf. Поскольку внутри программ на&amp;nbsp;gtk2 используется кодировка UTF8 (обратных примеров не&amp;nbsp;знаю), на&amp;nbsp;консоль выводится нечитаемая UTF8, без&amp;nbsp;всякого перекодирования.&lt;br />
if&amp;nbsp;(stat(filename,&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Как&amp;nbsp;показывает практика, в&amp;nbsp;большинстве программ, написанных на&amp;nbsp;gtk2, вывод в&amp;nbsp;консоль осуществляется с&amp;nbsp;помощью функций printf или&amp;nbsp;g_printf, которая есть ни&amp;nbsp;что иное, как&amp;nbsp;обёртка для&amp;nbsp;printf. Поскольку внутри программ на&amp;nbsp;gtk2 используется кодировка UTF8 (обратных примеров не&amp;nbsp;знаю), на&amp;nbsp;консоль выводится нечитаемая UTF8, без&amp;nbsp;всякого перекодирования.&lt;br />
if&amp;nbsp;(stat(filename, &amp;stat_struct) == 0) { // File already exist&lt;br />
&lt;div class="indent">&lt;div class="indent">char buffer[300];&lt;br />
char *utf8filename = NULL;&lt;br />
if&amp;nbsp;(!g_utf8_validate(filename, -1, NULL)) {&lt;br />
&lt;div class="indent">&lt;div class="indent">utf8filename = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);&lt;br />
if&amp;nbsp;(utf8filename == NULL) {&lt;br />
&lt;div class="indent">&lt;div class="indent">message_warning(_(&amp;laquo;Some characters in&amp;nbsp;the filename are&amp;nbsp;neither UTF-8 nor&amp;nbsp;you local encoding&amp;raquo;));&lt;br />
&lt;/div>&lt;/div>}&lt;br />
&lt;/div>&lt;/div>}&lt;br />
if&amp;nbsp;(utf8filename == NULL) utf8filename = g_strdup(filename);&lt;br />
g_snprintf(buffer, 300,&lt;br />
&lt;div class="indent">&lt;div class="indent">_(&amp;laquo;The file '%s' already exists.\n&amp;raquo;&lt;br />
&amp;#8220;Do you&amp;nbsp;want to&amp;nbsp;overwrite it?&amp;#8221;), utf8filename);&lt;br />
&lt;/div>&lt;/div>....&lt;br />
g_free(utf8filename);&lt;/div>&lt;/div>
}&lt;a name="h323-1">&lt;/a>&lt;h3>  Проблемы (с glade) &lt;/h3>
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell"> Система &lt;/td>&lt;td class="usercell"> Программа &lt;/td>&lt;td class="usercell"> Интерфейс (GTK) &lt;/td>&lt;td  class="usercell"> Проблемы &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> программа должна внутри перекодировать всякое общение с&amp;nbsp;граф. интерфейсом &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> программа должна перекодировать всякое общение с&amp;nbsp;внешним миром (консоль и&amp;nbsp;названия файлов)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> самый безпроблемный вариант &lt;/td>&lt;/tr>
&lt;/table>&lt;a name="h323-2">&lt;/a>&lt;h2> Замечания по&amp;nbsp;локализации QT/KDE программ &lt;/h2>
О&amp;nbsp;интернационализации KDE-программ:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html&lt;/a>&lt;/li>&lt;/ul>
При&amp;nbsp;получении названия файла от&amp;nbsp;диалога &lt;br />
result.second = string(dlg.selectedFile().data());&lt;br />
 перед использованием для&amp;nbsp;открытия файлов нужна перекодировка &lt;a name="h323-3">&lt;/a>&lt;h3> Перевод одинаковых строк по-разному &lt;/h3>
При&amp;nbsp;переводе часто встречается ситуация, когда одинаковые строки, встречающиеся в&amp;nbsp;разных частях программы, должны переводиться по-разному. gettext же&amp;nbsp;объединяет такие строки. Лечится это&amp;nbsp;добавлением комментариев к&amp;nbsp;исходной строке, &lt;br />
&lt;s>для чего существует макрос I18N_NOOP2&lt;/s> в&amp;nbsp;KDE.  Совет устарел, см.&amp;nbsp;kde-i18n-howto. Сам&amp;nbsp;макрос, естественно, можно портировать куда угодно, если разработчикам соответствующего софта это&amp;nbsp;интересно. В&amp;nbsp;KDE используется патченный вариант xgettext. Но&amp;nbsp;и в&amp;nbsp;непатченном xgettext должна быть возможность использовать комментарии к&amp;nbsp;строкам, так&amp;nbsp;что какой-то вариант этого решения доступен и&amp;nbsp;в &lt;span class="missingpage">Gtk&amp;nbsp;/&amp;nbsp;GNOME&lt;/span>&lt;a href="http://freesource.info/wiki/Gtk/GNOME/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a>.&lt;a name="h323-4">&lt;/a>&lt;h3> Десятичный разделитель &lt;/h3>
При&amp;nbsp;записи в&amp;nbsp;файл в&amp;nbsp;качестве десятичного разделителя должна использоваться точка.&lt;br />
В&amp;nbsp;функциях, сохраняющих данные в&amp;nbsp;файл в&amp;nbsp;определённом формате, необходимо использовать&lt;br />
следующую конструкцию во&amp;nbsp;избежание записи чисел в&amp;nbsp;локализованном виде.&lt;br />
&lt;div class="indent">&lt;div class="indent">char *oldloc;&lt;br />
/* &lt;span class="missingpage">Post&amp;nbsp;Script&lt;/span>&lt;a href="http://freesource.info/wiki/PostScript/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> parses things in&amp;nbsp;&amp;#8220;C&amp;#8221; locale too&amp;nbsp;*/&lt;br />
oldloc = setlocale(LC_NUMERIC,"C");&lt;br />
...&lt;br />
код&amp;nbsp;сохранения (fprintf например)&lt;br />
...&lt;br />
setlocale(LC_NUMERIC,oldloc); &lt;br />
&lt;div class="indent"> &lt;/div>&lt;/div>&lt;/div>&lt;a name="h323-5">&lt;/a>&lt;h2> Порядок испытания программы на&amp;nbsp;корректную работу с&amp;nbsp;локалью &lt;/h2>
Проблема работы с&amp;nbsp;файлами, названными по-русски, может возникнуть в&amp;nbsp;любой программе. Вот&amp;nbsp;примерный план проверки:&lt;br />
&lt;ol type="1">&lt;li> Сохранение файла с&amp;nbsp;русским названием в&amp;nbsp;английский каталог
&lt;/li>&lt;li> Сохранение файла с&amp;nbsp;русским путём к&amp;nbsp;файлу
&lt;/li>&lt;li> Корректное название вновь создаваемого файла  (в диалоге Создать)
&lt;/li>&lt;li> Открытие файла по&amp;nbsp;русскому пути (во всех возможных диалогах вставки и&amp;nbsp;открытия файла)
&lt;/li>&lt;li> Проверка экспортируемых файлов (например EPS&amp;nbsp;на&amp;nbsp;предмет корректности оформления цифр (десятичный разделитель): файлы не&amp;nbsp;должны отличаться при&amp;nbsp;запуске программы просто и&amp;nbsp;через $ LANG=C программа
&lt;/li>&lt;li> Запуск программы с&amp;nbsp;указанием русского названия файла в&amp;nbsp;качестве параметра
&lt;/li>&lt;/ol>&lt;div class="indent">&lt;/div>
&lt;em>Дополнительное замечание: &lt;/em>&lt;br />
Файловые диалоги при&amp;nbsp;повторном обращении должны помнить предыдущий каталог.&lt;br />
Vitaly Lipatov &amp;lt;lav@altlinux.ru&amp;gt;, 20&lt;span class="nobr">04&amp;ndash;200&lt;/span>5&lt;br />
Vyacheslav Dikonov &amp;lt;slava@altlinux.ru&amp;gt;, 2005&lt;a name="h323-6">&lt;/a>&lt;h2> Ссылки &lt;/h2>
&lt;ul>&lt;li> &lt;a href="http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://developer.kde.org/documentation/library/kdeqt/kde3arch/kde-i18n-howto.html&lt;/a>&lt;/li>&lt;/ul>
&lt;!--notypo-->{{backlinks}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-08-06 15:51:45</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2006-08-06+15%3A51%3A45</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-08-06+15%3A51%3A45">2006-08-06 15:51:45&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2007-01-05+20%3A43%3A59">2007-01-05 20:43:59&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h323-1">&lt;/a>&lt;h3>  Проблемы (с glade) &lt;/h3>
&lt;table class="usertable" border="1">
&lt;tr class="userrow">&lt;td class="usercell"> Система &lt;/td>&lt;td class="usercell"> Программа &lt;/td>&lt;td class="usercell"> Интерфейс (GTK) &lt;/td>&lt;td  class="usercell"> Проблемы &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> программа должна внутри перекодировать всякое общение с&amp;nbsp;граф. интерфейсом &lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> koi8-r &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> программа должна перекодировать всякое общение с&amp;nbsp;внешним миром (консоль и&amp;nbsp;названия файлов)&lt;/td>&lt;/tr>
&lt;tr class="userrow">&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td class="usercell"> UTF-8 &lt;/td>&lt;td  class="usercell"> самый безпроблемный вариант &lt;/td>&lt;/tr>
&lt;/table>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-30 20:24:13</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2006-07-30+20%3A24%3A13</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-07-30+20%3A24%3A13">2006-07-30 20:24:13&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-08-06+15%3A51%3A45">2006-08-06 15:51:45&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h323-1">&lt;/a>&lt;h2> Ссылки &lt;/h2>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-06-11 20:36:49</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2006-06-11+20%3A36%3A49</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-06-11+20%3A36%3A49">2006-06-11 20:36:49&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-07-30+20%3A24%3A13">2006-07-30 20:24:13&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h323-1">&lt;/a>&lt;h3> Использование gettext &lt;/h3>
Примеры, идущие с&amp;nbsp;пакетом gettext, слишком сложны и&amp;nbsp;&amp;laquo;наворочены&amp;raquo;.&lt;a name="h323-2">&lt;/a>&lt;h4> Использование ngettext &lt;/h4>
Для&amp;nbsp;множественных чисел&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-03-14 19:22:09</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2006-03-14+19%3A22%3A09</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-03-14+19%3A22%3A09">2006-03-14 19:22:09&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-06-11+20%3A36%3A49">2006-06-11 20:36:49&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Обязательно должна быть указана кодировка сообщение в&amp;nbsp;программе через bind_textdomain_codeset! Симптомом нарушения этого правила являются проблемы с&amp;nbsp;сообщениями в&amp;nbsp;программе в&amp;nbsp;неюникодных локалях.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-03-21 16:19:29</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2005-03-21+16%3A19%3A29</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2005-03-21+16%3A19%3A29">2005-03-21 16:19:29&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2006-03-14+19%3A22%3A09">2006-03-14 19:22:09&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Но&amp;nbsp;в glib имеется функция g_print, которая осуществляетперекодирование в&amp;nbsp;кодировку консоли. Её и&amp;nbsp;надо использовать&lt;br />
&lt;ul>&lt;li> вместо конструкций fprintf(stderr...) следует использовать g_printerr&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Но&amp;nbsp;в gtk&amp;nbsp;имеется функция g_print, которая осуществляетперекодирование в&amp;nbsp;кодировку консоли. Её и&amp;nbsp;надо использовать&lt;br />
&lt;ul>&lt;li> вместо конструкций fprintf(stderr...) следует использовать g_error&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-03-21 15:25:02</title>
<link>http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm/show?time=2005-03-21+15%3A25%3A02</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm&amp;" class="">/Локализация&amp;nbsp;/&amp;nbsp;Локализация&amp;nbsp;Программ&lt;/a> за &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2005-03-21+15%3A25%3A02">2005-03-21 15:25:02&lt;/a> и &lt;a href="http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?time=2005-03-21+16%3A19%3A29">2005-03-21 16:19:29&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">При&amp;nbsp;записи в&amp;nbsp;файл в&amp;nbsp;качестве десятичного разделителя должна использоваться точка.&lt;br />
В&amp;nbsp;функциях, сохраняющих данные в&amp;nbsp;файл в&amp;nbsp;определённом формате, необходимо использовать&lt;br />
следующую конструкцию во&amp;nbsp;избежание записи чисел в&amp;nbsp;локализованном виде.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">В&amp;nbsp;функциях, сохраняющих данные в&amp;nbsp;файл в&amp;nbsp;определённом формате, рекомендуется использовать следующую конструкцию во&amp;nbsp;избежание записи чисел в&amp;nbsp;локализованном формате.&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
