Changes between Version 2 and Version 3 of LocaliseGGBuildTools


Ignore:
Timestamp:
Jun 26, 2008 1:55:54 PM (16 years ago)
Author:
Sagrer
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LocaliseGGBuildTools

    v2 v3  
    55В lcl есть средства для работы с !GetText. Кроме этого есть средства для перекодировки строк в gettext-файлах в нужную. К сожалению, в Lazarus 0.9.24 все еще используется ANSI по умолчанию в GUI - переход на юникод уже совершен в 0.9.25, но тот все ещё в разработке. К счастью, в 0.9.24 (точнее в rtl компиллятора fpc 2.2.0, который там используется) в модуле wstringh уже пробиты базовые преобразования для различных вариантов представления юникода, в т.ч. для utf-8 который и требуется. Также имеется достаточно уродливый и сделанный наспех модуль lconv в котором есть перекодировки между utf-8, cp1251 и koi8-r. Кодировки cp866 нет. К сожалению, там все сделано кое-как. В lcl из svn текущей версии лазаруса обнаружились обновленные версии исходников модуля Translate (больше не использует lconv), и модуль lconvencoding - фактически представляющий из себя переписанный по-человечьи lconv - там в нормальной форме прописана работа с огромным множеством кодировок, но cp866 также отсутствует. К счастью, в этом модуле все сделано так, что добавить новую кодировку особого труда не составит.
    66
    7 Таким образом, планируется взять в дерево исходников GGBuildTools модули Translate и lconvencoding из trunk-а svn-а Lazarus-а, ибо ждать выхода версии 0.9.26 бессмысленно. Либо модифицировать модуль lconvencoding для того чтобы он поддерживал cp866, либо добавить нужный функционал в свои модули, но связанно с lconvencoding. После чего выполнить локализацию консольных утилит с помощью GetText в кодировке utf-8, извлекаемые из которого строки преобразуются в cp866 штатными средствами lcl с вручную настроенным перекодированием в cp866 (через widestringmanager).
     7Таким образом, планируется взять в дерево исходников GGBuildTools модули Translate и lconvencoding из trunk-а svn-а Lazarus-а, ибо ждать выхода версии 0.9.26 бессмысленно. Либо модифицировать модуль lconvencoding для того чтобы он поддерживал cp866, либо добавить нужный функционал в свои модули, но связанно с lconvencoding. После чего выполнить локализацию консольных утилит с помощью !GetText в кодировке utf-8, извлекаемые из которого строки преобразуются в cp866 штатными средствами lcl с вручную настроенным перекодированием в cp866 (через widestringmanager).