Дан заједничког превођења WPTranslation Day #4

wptranslationday.org

Здраво свима,

Као и претходна 3 пута, Београд се придружује глобалној иницијативи о локализацији вордпреса.

Окупљање је 11. маја 2019. године, са почетком у 10 часова у просторијама GoDaddy у Београду на Тргу републике.

Дан заједничког превођења (WPTranslationDay) представља највеће дешавање како у свету тако и код нас. На глобалном нивоу током 24 часа, кроз различите временске зоне, тимови из свих делова света ће радити на томе да вордпрес наредног дана буде бољи и приступачнији корисницима који се не служе енглеским језиком.

У Београду, Дан заједничког превођења се организује по 4.пут.

Прва три пута смо заједничким снагама радили на превођењу различитих додатака, дискутовали на тему превода и како их унапредити.

И овај пут планирамо да урадимо исто.

Дан заједничког превођења у Београду се одржава 11. маја 2019. године у трајању од 10 до 18 часова.

GoDaddy нам је и овог пута изашао у сусрет, тако да простор, интернет, струју, воду и кафу добијамо од њих и још једном им се захваљујемо на томе.

Оно што је са ваше стране неопходно како бисте активно учествовали је лаптоп или неки други рачунар на коме можете да отворите интернет прегледач, како бисте могли да уносите преводе.

Превод се ради са енглеског језика, стога је познавање енглеског неопходно за активно учествовање у Дану заједничког превођења.

Врата ће бити отворена већ од 9:30 уколико неко дође раније, а свакако планирамо да покупимо кафу испред улаза у зграду.

Званична подела по тимовима ће бити од 10, када почињемо са радом на преводима.

Листа додатака које ћемо преводити ће бити договорена и евентуално најављена пар дана раније.

Око 14 часова, направићемо паузу за неку клопицу и да се сви мало опустимо уз неке лагане вежбице за врат, руке и леђа.

Од 15 часова настављамо са превођењем све до 18 часова.

Вордпрес окупљање у Вршцу #WPVŠ 04/19

Добродошли на вршачко Вордпрес окупљање!

Априлско дружење доводи нам двоје ерудита у својим областима: девелопера који подједнако успешно користи Друпал и Вордпрес, као и искусну дизајнерку, која је своје искуство прекалила у свим областима дизајна.

Младен Ђурић (@MacMladen) био је full stack пре него што је то постало ин, јер тада другачије није могло. Сада је само фронтендер који ради backend и одржава сервер. Сертификовани Друпал девелопер – frontend specialist, води школу Кодер, где између осталог, држи и Веб девелопмент и ЈаvaScript курсеве.

Озбиљан веб девелопмент подразумева рад у локалу пре свега, а то захтева намештање разних окружења под разним условима који треба да имитирају production сервер. Ту на сцену ступа Docker, али постоји доста начина како се Docker интегрише у локални девелопмент, поготову на „страним платформама“ {Мac, Windows}. Један од њих је Docksal. Младен ће вам показати како.

Лана Сандић је графички дизајнер (универзални војник 😊). Дипломирала је 2003. на Вишој школи ликовних и примењених уметности у Београду на одсеку за графички дизајн и комуникације. Радила је и као ин-хоусе десигнер и као freekancer, а прошла је и сито и решето маркетиншких агенција.

Последњих 7 година ради за компанију Горење. То јој је омогућило да научи методе корпоративног тржишног комуницирања, продаје и брандинга робне марке за преко 30 тржишта широм света на којима је Горење присутно. Део је креативног тима који је радио на Горење Brand Book-u и имплементацији трамполине бренда у визуелни идентитет те робне марке.

Говориће о брандингу – због чега је неизоставни део маркетинга (било да је реч о производу, фирми или нашем личном брандингу), зашто сваки бренд мора да има свој темељ, факторе диференциијације и кључну вредност и како се те вредности примењују кроз штампане и дигиталне материјале и различите канале комуникације. Верујемо да ће тема бити занимљива свима, без обзира на струку. Јер, сви се у бити бавимо истим послом – продајом, а свако од нас је са својим умећем, знањем и личним квалитетима – алат продаје.

Окупљање је заказано за петак, 12. април, у 19 часова у Стартит Центру Вршац, који се налази у Centru Millennium, Омладински трг 17. Присуство предавањима је бесплатно.

Нови Сад – 13 Радионица за израду Вордпрес тема, 30 март 2019

Тринаеста радионица за израду Вордпрес тема је одржана у суботу, 30 марта у новосадском Стартит Центру. Овог пута смо се посветили додатку који проширује могућности подразумеваног прилагођавача (Customizer), користећи при томе, исти API.

Кирки

Обзиром да је додатак, Кирки се кроз тему може препоручити крајњим корисницима на неколико начина. Ми смо се одлучили за додавање тзв. инсталер скрипте која ће препоручити додатак оног тренутка када се отвори прилагођавач и врло једноставно, притиском на једно дугме, поставити додатак у инсталацију Вордпреса.

Пошто користи подразумевани API, додавање панела и секција је исто као и без додатка. Међутим, оно што овај додатак чини толико популарним и корсиним је велики број доступних контрола, као и сам начин на који се контроле додају у тему.

Наиме, без Кирки додатка, свака контрола иде у пару са подешавањем што доводи до непотробно велике количине кôда као и повремених понављања. Кирки је цео овај процес упростио тиме што све неопходне податке из подешавања и контроле ставља у један низ.

Сваку од ових контрола веома једноставно додајемо у прилагођавач помоћу kirki/fields филтера, који филтрира низ контрола и додаје нове.

Типографија

Контрола за типографију нуди читав низ подешавања који крајњем кориснику могу дати огромну контролу над сваким аспектом типографије веб места. Све фамилије са Google Fonts су доступне а могуће је филтрирати према разним стандардима (serif, sans-serif и monospace) и варијантама (regular, italic, bold итд). Оно што нисмо успели да пронађемо је како дефинисати subset.

Прекидач (Switch)

Прекидач нам пружа једноставну функционалност укључивања и искључивања било чега: неке друге контроле или неког дела веб места. Овде треба обратити пажњу на вредности дефинишемо (string) и које прекидач враћа (bool).

Уз помоћ active_callback аргумента додатог било којој другој контроли а који проверава вредност прекидача, врло лако можемо ту контролу да прикажемо одн. сакријемо једноставном применом прекидача. Ми смо искористили ову функционалност за приказивање и сакривање контроле типографије.

Група радио дугмића (Radio Buttonset)

Слично прекидачу, група радио дугмића се може користити за укључивање и искључивање али и у многе друге сврхе. Овде можемо имати неограничен број опција и већу контролу над вредностима које се враћају.

Палета боја

Палета боја је изузетно корисна када желите крајњим корисницима да пружите могућност промене боја на веб месту. Како бисмо применили ове боје као прилагођене стилове, користили смо Heredoc и wp_add_inline_style().

Сортирање (Sortable)

Помоћу Киркија можемо врло лако да мењамо редослед различитим елементима. Контрола за сортирање чак нуди и могућност укључивања и искључивања елемената притиском на иконицу која приказује око.

Поље са вишеструким потврдама (Multicheck)

Пре него што смо сазнали да се елементи за сортирање могу укључити и искључити у склопу контроле за сортирање, ову функционалност видљивости смо добили употребом поља са вишеструким потврдама. Употребом ове контроле се веома једноставно може постићи велика флексибилност и прилагодљивост теме.

Понављач (Repeater)

Понављач је изузетно корисна контрола сваки пут када је потребно непознати број пута поновити одређену контролу, или групу контрола при чему је могуће ограничити максимални број понављања. Ми смо употребили понављач за ираду клизача чланака (slider). Овом приликом смо се користили једном од неколико доступних метода Киркијеве помоћне класе, Kirki_Helper::get_posts().


Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.

Следећи термин посвећујемо прилагођеним пољима и додатку за проширивање ове функционалности – Advanced Custom Fields.

Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.

Нови Сад – 12 Радионица за израду Вордпрес тема, 16 март 2019

Дванаеста радионица за израду Вордпрес тема је одржана у суботу, 16 марта у новосадском Стартит Центру. Овај термин смо посветили прилагођавачу (Customizer).

Објекти прилагођавача

Прилагођавач је сачињен од четири типа објекта: панел, секција, подешавање и контрола. Сваки од њих има три метода, add_, get_ и remove_, који нам омогућавају да прилагодимо прилагођавач различитим потребама. За било какво прилагођавање користимо customize_register копчу акције.

Панел

Подразумевани прилагођавач нема регистрованих панела али их је лако додати помоћу add_panel метода. Панел може садржавати једну или више секција. Уколико ће имати само једну секцију, онда је за корисничко искуство много корисније да та секција буде самостална.

Важно је имати у виду да панел мора да има бар једну секцију да би био видљив у прилагођавачу. Исто тако, да би секција била видљива у прилагођавачу, мора да садржи бај деан пар подешавања и контроле.

Доступне методе: add_panel, get_panel и remove_panel.

Секција

Секција може бити самостална а може и да, поред других секција, припада панелу. Све подразумеване секције су самосталне. За додавање нове секције користимо add_section метод WP_Customize_Manager објекта док за уклањање користимо remove_section. За промену било ког аргумента подразумеване секције користимо get_section.

Подразумеване секције су:

Назив ID Приоритет (Редослед)
Site Title & Tagline title_tagline 20
Colors colors 40
Header Image header_image 60
Background Image background_image 80
Menus (Panel) nav_menus 100
Widgets (Panel) widgets 110
Static Front Page static_front_page 120
default 160
Additional CSS custom_css 200

Доступне методе: add_section, get_section и remove_section.

Подешавање

Подешавање увек иде у пару са контролом. Овде се дефинише да ли ће вредност контроле бити сачувана као option или theme_mod, подразумевана вредност контроле, начин приказивања промене у самом прилагођавачу итд.

Препоручује се да јединствени назив подешавања, ID, буде исти као и контролин јер ово омогућава лакше динамичко приказивање вредности код неких контрола, као што су select и radio.

Доступне методе: add_setting, get_setting и remove_setting.

Контрола

Котрола је заправо поље обрасца помоћу кога добијамо жељену вредност од корисника.

Подразумевана подешавања и контроле:

Назив ID Секција
Site Title blogname title_tagline
Tagline blogdescription title_tagline
Display Site Title and Tagline header_text title_tagline
Site Icon site_icon title_tagline
Logo custom_logo title_tagline
Header Text Color header_textcolor colors
Background Color background_color colors
Header Image header_image header_image
Header Image Data header_image_data header_image
Header Video header_video header_image
External Header Video external_header_video header_image
Background Image background_image background_image
Preset background_preset background_image
Image Position background_position background_image
Image Size background_size background_image
Repeat Background Image background_repeat background_image
Scroll with Page background_attachment background_image
Your homepage displays show_on_front static_front_page
Homepage page_on_front static_front_page
Posts page page_for_posts static_front_page
CSS code custom_css custom_css

Доступне контроле:

  • text,
  • textarea,
  • email,
  • url,
  • radio,
  • select,
  • number,
  • checkbox,
  • dropdown-pages,
  • password,
  • hidden и
  • date.

Доступне напредне контроле:

  • WP_Customize_Image_Control,
  • WP_Customize_Color_Control,
  • WP_Customize_Media_Control,
  • WP_Customize_Upload_Control,
  • WP_Customize_Background_Image_Control,
  • WP_Customize_Background_Position_Control,
  • WP_Customize_Cropped_Image_Control,
  • WP_Customize_Site_Icon_Control,
  • WP_Customize_Theme_Control,
  • WP_Customize_Code_Editor_Control,
  • WP_Customize_Date_Time_Control

Доступне методе: add_control, get_control и remove_control.

Селективно освежавање

Како би корисничко искуство живог прегледа промена у прилагођавачу било што ефикасније, уместо освежавања целе странице, могуће је освежавање само елемента који се мења на страници. Ово се постиже transport параметром у подешавању и додавањем подешавања у selective_refresh објект.

Санитизација

Сваку вредност коју добијамо као унос корисника је неопходно припремити за похрањивање у базу података. Тај процес се назива санитизација.

У Вордпресу постоје готове функције које врше санитизацију за одређене типове вредности. Називи већине ових функција започињу са sanitize_.

За вредности које можемо очекивати из прилагођавача а за које не постоје припремљене функције, санитизацију вршимо помоћу прилагођених функција. Вордпресов тим за преглед тема, WPTRT, је припремио низ примера доступних на Github-u.


Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.

Следећи термин ћемо посветити напреднијом употребом прилагођавача помоћу Кирки додатка.

Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.

Вордпрес окупљање у Вршцу #WPVŠ 03/19

Добродошли на вршачко Вордпрес окупљање!

Мартовско дружење је (сасвим нетенденциозно) у знаку жена. Упознаћете две успешне пословне жене које ће са вама поделити неке од прича са својих путовања беспућима ИТ-ја, фриленса и предузетнишва.

Мирјана Илић по струци је професор српске књижевности и језика, по опредељењу content kreator& SEO specialist. Последње 4 године креира и оптимизује садржај за веб, бави се едукацијом других као и дигиталним маркетингом.

Очекујте да од ње сазнате одговор на питање зашто је Yоаst SЕО накомфорнији Вордпресов додатак за креирање садржаја? Оптимизација садржаја за претраживаче се одвија на два поља: једно је невидљиво за конзумента (кодови сајта), а друго је видљиво и за алгоритам и за конзумента (kонтент). Оригиналног назива WоrdPress SЕО by Yоаst, овај додатак је „пуштен“ у саобраћај 2008. године и од тад је најефектнији и истовремено најлагоднији Вордпресов плугин за креирање садржаја на српском језику. Биће говора о томе и да ли плугинoви и писање оптимизованог садржаја убијају креативност, као и колико су додаци, заправо, помоћ уколико их не схватите као непријатеље.

Невена Јовановић је почела каријеру као CEO е-commerce портала, уређивала с једне стране girlygirl, а с друге tech и спортске (дакле дечачке) медије, организовала конференције из области нових технологија и друштвених мрежа. Тренутно (али не и коначно) је PR & маркетинг менаџер FitPass-а. Кроз односе са јавношћу и онлине маркетинг обрадила је пројекте из филмске, фешн, политичке и бизнис нише. Холистички приступ маркетингу заокружила је иницијацијом у адвертајзинг, као и медија планирање и медија бајинг. Будући да је радила на (скоро) свим позицијама које данашни васколики маркетинг обухвата, има јединствени угао гледања на тај делокруг посла. Интегрисане комуникације су нешто најближе што је описује. Она је примарно продавац који филозофију sales-а примењује уздуж и попреко, а само се назив паковања тог продајног разговора мења. Мимо тога, Невена је истински љубитељ живота као таквог (без коске), chaser искустава, филозоф и шерет.

Самозвана такозвана „Госпођетина са сопственим хештегом“ долази у Вршац да приближи свој развојни пут Боре Ненси Шнајдера Хамера. Из њеног обраћања постаће вам кристално јасно зашто је маркетинг врло сличан рату и зашто је маркетинг врло сличан игри. Невена ће вам презентовати нове погледе на маркетиншке канале и ефикасније процесе које можете одмах применити и смањити урошак енергије, времена и на крају пара, уз експоненцијални раст продаје.

Окупљање је заказано за петак, 22. март, у 19 часова у Стартит Центру Вршац, који се налази у Centru Millennium, Омладински трг 17.
Присуство предавањима је бесплатно.

Вордпрес окупљање у Београду #WPBGD 6. мартa

У новом издању #WPBGD своја искуства са Вама ће поделити Alexander Gilmanov и Игор Хрчек.

Као и до сада, дружимо се у StartIT центру у Савској улици, преко пута поште са 6.марта 2019 године, са почетком у 18 часова.

Настави са читањем „Вордпрес окупљање у Београду #WPBGD 6. мартa“

Нови Сад – 11 Радионица за израду Вордпрес тема, 02 март 2019

Једанаеста радионица за израду Вордпрес тема је одржана у суботу, 02 марта у новосадском Стартит Центру. Наставили смо са могућностима новог уређивача у теми: правили шаблоне блокова, варијације стилова, мале измене подразумеваних блокова помоћу доступних Javascript филтера. Срели смо се и са wp.i18n и WP CLI.

Шаблон блокова

У документацији новог уређивача тренутно стоји да се шаблони блокова могу додавати преко register_post_type функције за прилагођену врсту чланка или путем get_post_type_object за предефинисане врсте чланка (чланак, страница). Оба ова начина подразумевају качење на init копчу акције.

Ми смо погледали шта нам нуди WP_Post_Type класа и пронашли register_post_type_args филтер који нам омогућава да додамо шаблон директно у аргументе вресте чланка, при чему је провера врсте значајно олакшана.

Сам шаблон представља низ назива блокова и њихових параметара и доста је једноставан за израду. Међутим, пронаћи називе блокова и доступних параметара захтева мало претраге. Све ово још увек није документовано и морамо погледати кôд како бисмо дошли до информација које нам требају.

Тренутно постоје два места где можемо пронаћи назив и параметре блокова. Важно је имати у виду да су се ова места већ мењала и да се то може опет догодити. Ово не мења кôд који ћемо користити (мада се и то до сада већ мењало) али мења место на коме тражимо информације док не буде постојала детаљнија документација за развој.

У самој инсталацији Вордпреса постоји датотека у којој су помоћу Webpack-а генериасани сви блокови. То је тренутно /wp-includes/js/dist/block-library.js. Међутим, како је ово генерисана датотека, доста је напорно читати цео кôд како би се пронашле потребне информације.

Због тога смо ми погледали место где је кôд уређивача у фази пре генерисања, тзв фази развоја, и где је значајно лакше пронаћи информације које нам требају. Тренутно је то https://github.com/WordPress/gutenberg -> packages -> block-library -> src. Овде сваки блок има своју фасциклу и све што нам треба можемо пронаћи у index.js датотеци за сваки блок.

Конкретно за блок параграф можемо пронаћи име у константи name:

export const name = 'core/paragraph';

А доступне параметре у константи schema:

const schema = {
	content: {
		type: 'string',
		source: 'html',
		selector: 'p',
		default: '',
	},
	align: {
		type: 'string',
	},
	dropCap: {
		type: 'boolean',
		default: false,
	},
	placeholder: {
		type: 'string',
	},
	textColor: {
		type: 'string',
	},
	customTextColor: {
		type: 'string',
	},
	backgroundColor: {
		type: 'string',
	},
	customBackgroundColor: {
		type: 'string',
	},
	fontSize: {
		type: 'string',
	},
	customFontSize: {
		type: 'number',
	},
	direction: {
		type: 'string',
		enum: [ 'ltr', 'rtl' ],
	},
};

Дозвољене вредности за сваки параметар нису документоване па је могуће стећи погрешан утисак из назива параметра. На пример, textColor не прихвата кôд за боју већ slug предефинисане или прилагођене боје. У нашој теми би то биле: whitish, redish, grayish и blckish (functions.php – ‘editor-color-palette’). Исто важи и за fontSize, величина фонта није дозвољена вредност већ slug предефинисане или прилагођене величине.

Провера врсте чланка нам омогућава да веома лако раздвојимо шаблоне према врсти чланка што је прилично честа потреба. Тако можемо имати посебан шаблон за странице и посебан за чланке.

Закључавање шаблона

Постоје два нивоа закључавања шаблона:

  • ‘insert’ – Не дозвољава додавање нових блокова али дозвољава промену места постојећим блоковима.
  • ‘all’ – Не дозвољава ни додавање нових блокова ни промену места постојећим блоковима. Ово може бити веома корисно када је неопходно придржавати се дефинисаног распореда али треба имати у виду да је могућ губитак садржаја уколико постоје већ објављени чланци или странице пре него што им је шаблон додељен. Уколико дође до ове могућности, корисник ће бити упозорен обавештењем.

Важно је напоменути да се сви параметри могу мењати у току уноса садржаја без обзира да ли је шаблон закључан или не.

Варијације стилова блока

Неки од подразумеваних блокова долазе са неколико варијација стилова. Један овакав блок је pullquote. Помоћу registerBlockStyle можемо врло лако додати варијације стилова за сваки подразумевани блок.

Назив (вредност параметра name) нашег стила ће бити употребљен за генерисање нове CSS класе помоћу које можемо стилизовати варијацију и у уређивачу и на фронтенду. Модел за класу је:

.is-style-{НАЗИВ-СТИЛА}

Филтери

Javascript филтери у Вордпресу се понашају веома слично PHP филтерима. Имају три параметра: назив филтера, namespace и callback функцију у којој смо дефинисали шта и како желимо да променимо.

Филтер blocks.registerBlockType

Овај филтер нам даје приступ подешавањима блока што смо ми искористили да омогућимо системске класе за блокове листе, параграфа и заглавља, који су једини подразумевани блокови без ове класе: .wp-block-{ИМЕ-БЛОКА}.

Филтер blocks.getBlockDefaultClassName

Овај филтер нам даје директан приступ класама подразумеваних блокова где можемо додати наше прилагођене.

wp.i18n

Заједно са новим уређивачем, Вордпрес је добио и i18n подршку за Javascript. Ово нам омогућава да у Javascript датотекама користимо исте функције за интернационализацију које користимо и у PHP датотекама. Примена је врло једноставна, на почетку Javascript датотеке треба дефинисати функције које ће i18n да претражује.

const { __, _x, _n, _nx } = wp.i18n;

Након овога, помоћу једне команде Вордпресовог алата за командну линију, WP CLI, се једноставно генерише .pot датотека за дати директоријум.

wp i18n make-pot <ПУТАЊА-ДО-ДИРЕКТОРИЈУМА>

Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.

У следећем термину прелазимо на могућности прилагођавача (Customizer) које можемо користити у теми.

Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.

Нови Сад – 10 Радионица за израду Вордпрес тема, 16 фебруар 2019

Десета радионица за израду Вордпрес тема је одржана у суботу, 16 фебруара у новосадском Стартит Центру. Бавили смо се подршком теме за нови уређивач, познат под називом Гутенберг.

Учитавање стилова и скрипти

За учитавање скрипти и стилова за блокове и њихов уређивач користимо исте функције као и до сада, wp_enqueue_scripts и wp_enqueue_styles. Разликују се једино имена копчи за које везујемо позиве.

еnqueue_block_assets – Примењује се и на уређивач блокова и на фронтенд. Корисно је када желимо да нам блокови изгледју и понашају се исто и у уређивачу и на фронтенду.  

enqueue_block_editor_assets – Примењује се само на уређивач те се најчешће користи у додацима.

Подршка теме

Нови уређивач је донео низ нових могућности које тема може да подржава.

add_theme_support( ‘align-wide’ );

Широко поравнање подразумева две нове могућности, широко поравнање и пуну ширину. У самом уређивачу се примењује одмах након додавања подршке док је за фронтенд потребан додатни CSS како би се нове ширине примениле.

add_theme_support( ‘wp-block-styles’ );

Сви блокови долазе са предефинисаним стиловима у уређивачу. Уколико желимо да применимо ове стилове и на фронтенд, то можемо урадити укључивањем подршке за стилове блокова. У зависности од теме и њених већ постојећих стилова, неопходно је додати мање или више CSS-а у стилове теме како би се сви стилови из уређивача применили и на фронтенд.

add_theme_support( ‘editor-font-sizes’ );

Уређивач дозвољава корисницима да мењају величину фонта. Осим неколико предефинисаних величина, корисници могу дефинисати било коју величину за текст који уносе. Ове предефинисане величине је могуће променити помоћу подршке за величину фонта.

За савку нову величину ће се генерисати нова класа по следећем моделу:

.has-{ВЕЛИЧИНА}-font-size  

При чему је ВЕЛИЧИНА заправо slug који смо доделили прилагођеној величини. Подразумеване величине за које класе већ постоје су: small, regular, medium, large, huge и larger.

add_theme_support( ‘disable-custom-font-sizes’ );

Уколико желимо да онемогућимо коришћење било које величине осим дефинисаних, можемо да укључимо подршку за онемогућавање прилагођених величина.

add_theme_support( ‘responsive-embeds’ );

Подршка за пуну ширину угњежђивања на свим уређајима, при чему су очуване пропорције на свакој величини екрана.

add_theme_support( ‘editor-color-palette’ );

Као и величине фонта, уређивач има предефинисане палете боја које се могу применити као боја текста и боја позадине за поједине елементе. Такође, CSS класе се генеришу по истом принципу као и за величину фонта.  

.has-{БОЈА}-color

.has-{БОЈА}-background-color

Предефинисане боје су: pale-pink, vivid-red, luminous-vivid-orange, luminous-vivid-amber, light-green-cyan, vivid-green-cyan, pale-cyan-blue, vivid-cyan-blue, very-light-gray, cyan-bluish-gray и very-dark-gray, а осим ових боја такође је могуће користити било коју боју.

Подразумеване боје је могуће заменити прилагођеном палетом путем подршке теме.

add_theme_support( ‘disable-custom-colors’ );

Такође, уколико желимо да онемогућимо коришћење боја које нису предефинисане, можемо то да урадимо укључивањем подршке теме.


Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.

У следећем термину настављамо са уређивачем: правимо шаблоне блокова и мењамо појединости предефинисаних блокова уз помоћ доступних филтера.

Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.

Вордпрес окупљање у Вршцу #WPVŠ 02/19

Добро дошли нa вршачко Вордпрес окупљање!

Фебруарско дружење угостиће двојицу креатора. Један је аутор Вордпрес тема и увешће вас у тајне не само прављења тема, већ и њихове дистрибуције, а други је творац Webiz конференције. Од њега ћете сазнати зашто је заједница толико битна за напредак сваког од нас.

Драган Тодоровић је веб девелопер са вишегодишњим искуством у развијању премиjум Вордпрес и Џумла тема. Поред тога што је основао Themezly.com и YоuJооmlа.com, Драган је lead designer и девелопер за ове premium themes клубове који данас броје преко 110.000 чланова. Његово искуство у свету веб девелопмента ће вам сигурно помоћи у развоју сопствених сајтова.

Драган ће причати о развоју Creatus Вордпрес теме и како вам она може помоћи у развоју Вордпрес веб страница. Такође, сазнаћете шта су multipourpose теме и како их можете искористити да што пре завршите ваше Вордпрес пројекте.

Владимир Ковач је по струци економиста и специјалиста пројектног менаџмента. У пракси, ентузијаста, дигитални еванђелиста, локал патриота, и на крају, али свакако не најмање важно, вршачки зет. Као маркетар је 2010. упловио у свет дигитала, док на пројекту Webiz ради од 2013. године. Само две године касније, Webiz од пројекта прераста у животну пасију, и постаје посао 24/7. Током последњих пет година Webiz је постао најпрепознатљивији бренд када су у питању конференције и пословне едукације на тему IT-а, дигиталног маркетинга и пословне примене интернета.

Како би додатно утицао на развој ИT-а у родном граду Зрењанину, са пријатељима оснива невладину организацију Wеbit, са циљем промовисања интернет културе и унапређивања ИЦТ сектора. Крајем 2016. године изабран је за Председника Извршног одбора новооснованог Зрењанинског ИЦТ кластера. И данас као члан Извршног одбора зрењанинског ИЦТ кластера активно учествује у развоју Зрењанина као ИT-фирендy средине. Добитник престижне награде Капетан Миша Анастасијевић за афирмацију ИКТ индустрије у Зрењанину.

У свом предавању, кроз причу о Wеbiz-у, пренеће вам искуства из Зрењанина о значају грађења ИT заједнице, мотивацији и анимирању младих у једној инертној равничарској средини, и резултатима који су уследили непуних седам година након прве Wебиз конференције

Окупљање је заказано за петак, 22. фебруар, у 19 часова у Стартит Центру Вршац, који се налази у Centru Millennium, Омладински трг 17.
Присуство предавањима је бесплатно.

Нови Сад – 9 Радионица за израду Вордпрес тема, 02 фебруар 2019

Девета радионица за израду Вордпрес тема је одржана у суботу, 02 фебруара у новосадском Стартит Центру. Упознали смо се са функцијама за интернационализацију и алатима за локализацију теме.

Једноставни текст

Када у кôду имамо једноставан текст без динамичких вредности или елемената специфичних за одређени језик (као што су бројеви, датум и време), можемо користити неколико функција за интернационализацију, у зависности од места на коме се текст налази и коју улогу игра.

__(), _e() – најједноставнија функција која враћа, одн. принта текст и замењује га локализованим преводом, уколико постоји.  

esc_html__(), esc_html_e() – преводи исто као и горе неведене функције, и врши escaping за HTML.

esc_attr__(), esc_attr_e() – преводи исто као и горе неведене функције, и врши escaping за атрибуте.

Контекст

Функције за додавање контекста не праве никакву разлику у самом процесу и функционалности локализације али су од великог значаја за преводиоца.

Конкретно у енглеском језику постоје речи које се исто пишу као глагол и као именица али имају потпуно другачије значење: post (именица: чланак; глагол: послати), book (именица: књига; глагол: резервисати) итд.

У оваквим случајевима контекст представља огромну помоћ да се, без потребе гледања у кôд, израз прецизно преведе.

_x(), _ex() – функција са контекстом која враћа, одн. принта текст и замењује га локализованим преводом, уколико постоји.

esc_html_x(), esc_attr_x() – преводе исто као и горе неведене функције, и врше escaping за HTML, одн атрибуте.

Једнина и множина

Функције за разликовање једнине и множине у зависности од прослеђеног броја такође могу бити са или без контекста.

Помоћу ових функција алати за локализацију препознају да треба да примењују адекватан формат множине за дати локал.

_n(), _nx() – у зависности од прослеђеног броја враћа стринг за једнину или за множину.

Формат броја

Функција за форматирање броја користи глобалну варијаблу $wp_locale, како би број био правилно форматиран за дати локал (сепаратор за хиљаде и децимална тачка).

Нпр.

САД – 1,024.00

РС – 1.024,00

number_format_i18n() – не ставља се у функцију за интернационализацију али се враћена врдност може користити за приказ броја у склопу локализованог стринга.

Најчешћи пример у Вордпресу се може наћи у шаблону за коментаре (приказ броја коментара) где имамо примену функције за форматирање броја као и за препознавање једнине и множине:

printf(
	/* translators: 1: number of comments, 2: post title */
	_nx(
		'%1$s Reply to %2$s',
		'%1$s Replies to %2$s',
		get_comments_number(),
		'comments title',
		'radionica'
	),
	number_format_i18n( get_comments_number() ),
	get_the_title()
);

Формат датума и времена

Као и код форматирања броја, функција за локализовање датума и времена користи глобалну варијаблу $wp_locale у којој су, између осталог, сачувани називи месеци и дана у недељи за сваки локал.

date_i18n() – такође се користи ван функције за интернационализацију али може да проследи своју вредност једној таквој функцији.

Језичка целина

Приликом писања кôда и припреме за интернационализацију, веома је важно имати у виду да различити локали имају различиту језичку синтаксу и користи различит редослед речи у реченици за исказивање исте садржине.

Због овога је важно задржати логичну језичку целину у истом стрингу. Ово није проблем уколико не постоји динамичка вредност унутар целине, међутим, у ситуацијама када се динамичке вредности нађу унутар целине девелопери понекад прибегавају “лакшем” решењу и исцепкају целину на мање делове. Ово треба по сваку цену избегавати.

Како би се сачувала целина најчешће се користе следеће PHP функције: sprintf() и printf().

Алати за локализацију

Од бројних алата за локализацију који су данас доступни, у радионици смо се упознали са два: Poedit и Loco додатак.

Poedit је самостални алат и захтева добру припрему пре самог генерисања стрингова за превод. Уколико не знате које све функције и у ком формату треба да буду кориштене као кључне речи за претагу кôда, јако тешко ћете постићи потпуну локализацију.

У подешавањима кључне речи изгледају овако (све функције за интернационализацију које смо користили):

"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c\n"

Loco је додатак за Вордпрес који служи искључиво за локализацију. За разлику од осталих додатака, он посетиоцима веб места не даје могућност пребацивања садржаја на све доступне локале. Он приказује само онај локал који је изабран у контролној табли.

Међутим, оно што овај додатака издваја од осталих је могућност генерисања свих стрингова за превод и превођења директно из контролне табле. За овај додатак је довољно да само изаберете локал и он ће сам прегледати све функције.

Осим ових, постоје и напредни алати помоћу којих се могу генерисати датотеке за локализацију. Поменућемо два:

WP-CLI

wp i18n make-pot path/to/your-theme-directory

grunt-wp-i18n

Транслитерација

Српски језик је један од ретких који користи два писма, ћирилицу и латиницу. Како се транслитерација врши само из ћирилице у латиницу (обрнути смер даје грешке у многим ситуацијама), иницијални превод се врши на ћирилици.

Затим је транслитерацију могуће остварити путем додатака, ми смо користили SrbTransLatin али он није једини додатак који обавња ову функцију.

Датотеке

Постоје три врсте датотека које учествују у процесу локализације Вордпреса.

POT (Portable Object Template)

.pot – Генерише се из gettext функција у кôду. Ова датотека која садржи све стрингове за превођење, пронађене у теми, додатку или било којој претходно изабраној фасцикли. Стрингови су најчешће на енглеском језику.

Стринг из .pot датотеке:

#. 1: number of comments, 2: post title
#: template-localisation.php:182
#, php-format
msgctxt "comments title"
msgid "%1$s Reply to %2$s"
msgid_plural "%1$s Replies to %2$s"
msgstr[0] ""
msgstr[1] ""

PO (Portable Object)

.po – Генерише се из .pot датотеке и ова датотека која је њена скоро идентична копија. Разлика је у дефинисању специфичности локала: назив језика, форма множине и сл. У ову датотеку се, ручно или путем неког алата, уписује превод на жељени локал.

Горе наведени стринг али из .po датотеке за српски локал:

#. 1: number of comments, 2: post title
#: template-localisation.php:182
#, php-format
msgctxt "comments title"
msgid "%1$s Reply to %2$s"
msgid_plural "%1$s Replies to %2$s"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

MO (Machine Object)

.mo – Генерише се из .po датотеке, потпуно је нечитљива људима и ово је заправо датотека коју Ворпрес чита и користи за локализацију. За ову датотеку је јако важно како је названа и њено име ће да зависи од фасцикле у којој се налази.

Локација и име .mo датотеке

Када се у контролној табли Вордпреса промени језик, истог тренутка се у фасцикли wp-content генерише languages фасцикла. Ту су све датотеке за локализацију свих тема и додатака пронађених у инсталацији Вордпреса а које је Вордпрес преузео са translate.wordpress.org. Теме и додаци овде имају своје засебне фасцикле а именовање датотека се врши према шеми:

ИМЕ-ТЕМЕ-ЛОКАЛ.mo (radionica-sr_RS.mo, radionica-sr_RS.po)

Уколико датотеке за локализацију одређене теме или додатка не постоје на translate.wordpress.org, Вордпрес ће покушати да их пронађе у корену теме, одн. додатка. У ово случају се изоставља назив теме/додатка из назива датотеке и остаје само ознака за локал (sr_RS.mo, sr_RS.po). Да бисмо могли на овај начин да користимо датотеке за локализацију, неопходно је омогућити локализацију у кôду.

load_theme_textdomain( 'radionica' );

Ради веће прегледности и боље организације, могуће је померити датотеке за локализацију у засебну фасциклу, најчешће languages. Да би ово функционисало неопходно је додати нову локацију у претходну функцију. Датотеке и овде задржавају само ознаку за локал у свом називу.

load_theme_textdomain( 'radionica', get_theme_file_path( '/languages' ) );

Комплетан код са радионице се може преузети са званичног налога Вордпрес Србија заједнице на Github-u.

У следећем термину се бавимо подршком теме за нови уређивач, познат под називом Гутенберг.

Радионице су бесплатне али је потребно пријавити се на Meetup групи Вордпрес Србија заједнице.