| | 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 се задава от средата |
| | 68 | JHBuild и е настроена в конфигурационния ви файл чрез променливата |
| | 69 | prefix. |
| | 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 | {{{ |
| | 85 | WebKit 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 |
| | 129 | Source/WebKit/gtk/po/bg.po: 270 преведени съобщения, 18 мъгляви преводи, 16 непреведени съобщения. |
| | 130 | }}} |
| | 131 | |
| | 132 | Сега вече може да работите по обновяването на превода. Успех! |