Changes between Initial Version and Version 1 of HowToUpdateWebkit


Ignore:
Timestamp:
Aug 20, 2011, 3:55:17 PM (10 years ago)
Author:
ivalkov
Comment:

Описание на метода за обновяване на превода на WebKitGTK+

Legend:

Unmodified
Added
Removed
Modified
  • HowToUpdateWebkit

    v1 v1  
     1= Обновяване на превода на WebKitGTK+ =
     2
     3[[PageOutline]]
     4
     5== Защо преводите на WebKitGTK+ не могат да се обновят по стандартният начин? ==
     6=== Проблемът ===
     7Кодът на !WebKit(GTK+) е структуриран различно от повечето проекти
     8разработвани и разпространявани като свободен софтуер. Това не позволява обновяване на низовете на преводите по
     9[http://fsa-bg.org/project/gtp/wiki/HowToTranslate#%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D1%8F%D0%B2%D0%B0%D0%BD%D0%B5%D0%BD%D0%B0%D1%84%D0%B0%D0%B9%D0%BB%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4 стандартният начин] чрез intltool-update.
     10
     11В README файла (Source/WebKit/gtk/po/README) от изходния код е посочено как би трябвало да се обновят
     12преводите, но информацията не е напълно вярна:
     13
     14{{{
     15$ make webkit.pot-update
     16$ make update-po
     17}}}
     18
     19Посоченото правило „webkit.pot-update“ не съществува.
     20
     21=== Допълнителни затруднения ===
     22Генерирането на Makefile и използването на make изисква наличието на
     23всички зависимости нужни за компилиране. Това е почти невъзможно при
     24повечето дистрибуции, където версиите на зависимостите са по-стари от
     25необходимите. Преглед на генерирания Makefile води до извода, че
     26обновяването на ръка ще е трудно и има вероятност да доведе то недобри
     27резултати.
     28
     29== Обновяване ==
     30=== Генериране на Makefile и обновяване на шаблона ===
     31Сравнително лесен начин за удовлетворяване на зависимостите е
     32използването на [HowToTest средата за тестване JHBuild], която е много
     33вероятно вече да използвате, за да тествате преводите си. Разбира се,
     34ако версията в разработка на WebKitGTK+ изисква по-нови версии на
     35програмите и библиотеките от тези достъпни през JHBuild, този метод
     36няма да проработи.
     37
     38Ако не използвате JHBuild, прочетете как да настроите и използвате
     39средата в статията [HowToTest „Как да тестваме“].
     40
     41Отидете в папката, където е изходният код на !WebKit. Например:
     42
     43{{{
     44 $ cd ~/src/webkit-svn/
     45}}}
     46
     47Въведете следната команда, за да използвате обвивката на
     48средата JHBuild:
     49
     50{{{
     51 $ jhbuild shell
     52}}}
     53
     54За да генерирате Makefile изпълнете autogen.sh със следните параметри:
     55
     56{{{
     57 $ ./autogen.sh --prefix $JHBUILD_PREFIX --libdir $JHBUILD_PREFIX/lib --with-gtk=3.0 \
     58  --enable-introspection --disable-static --disable-gtk-doc \
     59   --includedir $JHBUILD_PREFIX/include/
     60}}}
     61
     62По този начин зависимостите ще се търсят в папката, където JHBuild
     63инсталира компилираните програми. Приблизително същите параметри се
     64използват от JHBuild при компилирането на модули и дори !WebKitGTK+ от
     65архив с изходния код. За съжаление версията, която стандартно се
     66компилира от JHBuild е по-стара от последната, където може да има
     67промени по низовете. Променливата $JHBUILD_PREFIX се задава от средата
     68JHBuild и е настроена в конфигурационния ви файл чрез променливата
     69prefix.
     70
     71{{{
     72$ echo $JHBUILD_PREFIX
     73$ /home/user/gnome-master
     74}}}
     75
     76Ако по някаква причина променливата няма стойност, задайте й.
     77
     78{{{
     79$ JHBUILD_PREFIX=$HOME/jhbuild_install_dir
     80}}}
     81
     82Изпълнението на скрипта трябва да приключи с изход подобен на този:
     83
     84{{{
     85WebKit was configured with the following options:
     86
     87...
     88 Introspection support                                    : yes
     89 WebKit2 support                                          : no
     90 WebKit2 plugin process                                   : no
     91}}}
     92
     93Ако липсва някаква зависимост, опитайте да я компилирате чрез JHBuild
     94в друг терминал и изпълнете autogen.sh отново.
     95
     96Когато бъде генериран Makefile може да преминете към самото
     97обновяване.
     98
     99{{{
     100 $ ls Makefile -l
     101-rw-r--r-- 1 user group 735 2011-08-17 16:32 Makefile
     102}}}
     103
     104=== Обновяване на файла с превода ===
     105Вярното правило (към 20 авг 2011) за обновяване на файла с шаблона е
     106„webkit-3.0.pot-update“. За да обновите файла с превода е необходимо
     107да изпълните:
     108
     109{{{
     110$ make webkit-3.0.pot-update
     111$ make update-po-files
     112}}}
     113
     114Всъщност правилото „update-po“ посочено в README файла извиква вярното
     115такова за генериране на шаблона webkit-3.0.pot и допълнително
     116„update-po-files“ за обновяване на файловете с преводите. Вероятно би
     117било по-добре просто да изпълните:
     118
     119{{{
     120$ make update-po
     121}}}
     122
     123В папката Source/WebKit/gtk/po/ ще намерите обновеният файл с превод.
     124
     125{{{
     126$ ls -l  Source/WebKit/gtk/po/bg.po
     127-rw-r--r-- 1 user group 51391 2011-08-20 11:33 Source/WebKit/gtk/po/bg.po
     128$ msgfmt -cvv  Source/WebKit/gtk/po/bg.po
     129Source/WebKit/gtk/po/bg.po: 270 преведени съобщения, 18 мъгляви преводи, 16 непреведени съобщения.
     130}}}
     131
     132Сега вече може да работите по обновяването на превода.  Успех!