Локалізація для української мови

Чи задавали ви собі запитання - чому на мій сайт заходять по ключових словах, але в мене взагалі немає подібного контенту, так, просто в тексті десь схоже слово зустрічається? Якщо не задавали і Вас не цікавить дана тема, а цікавить лише збільшення таких входів - далі читати немає змісту, бо моя методика лише зменшить кількість користувачів по "лівих" словах.

Якщо ж Вам цікаві користувачі, які після входу на сайт будуть зачитуватись ним, як це роблять практично всі, хто зайшов на мій блог - швидше за все дана стаття Вам мінімально, але допоможе, хоча панацея - більш комплексний підхід.

UA TOP Bloggers

Коротко про важливе


Вітання!
Після коментарів побачив, що проблема зарита набагато глибше - люди, що пишуть блоги - необов'язково розбираються в самій системі, з допомогою якої вони їх пишуть.

Отож, продовжуючи свої статті спробую на прикладі інсталяцій відомих ядер для блогів показати, яким чином просто і ефективно локалізувати свої двигунці.
Справа в тому, що локалізація всіх без виключення систем керування сайтом, при умові використання мов, відмінних від тих, що в своїй основі використовують латиницю - лягає на плечі автора, - хочете Ви цього чи ні.

У випадку української мови - ситуація погіршена тим, що, не зважаючи на те, що нас ~48 мільйонів - пишемо сайти ми криво. І розробники пошукових систем та роботів просто не зустрічають в своїх логах використання української мови в обсязі, достатньому для включення її в список підтримуваних.

Все було б добре, якщо б поряд з українською не було таких схожих мов як російська та білоруська. Ну і інших, слов'янських також. Крім того, у нас відсутній справді локальний пошуковий робот, морфологія якого чітко підтримувала б українську мову.

Можу навести приклад, спробуйте ввести в будь-який пошуковий сервер слово, яке має абсолютно українське походження і практично на першій сторінці ви побачите пошуковий спам росийською чи навіть англійською мовами. Я впевнений, що ситуація буде продовжуватись так і далі.

Локалізація - справа складна і головна причина проблеми - людська лінь.

Чому?

Бо ставлячи собі на хостінг якийсь двигунець, людина стикається із необхідністю відображати в себе на вебсторінках якісний контент, щоб привернути увагу людей саме чистотою згенерованого коду. Думаю ніхто не буде особливо зачитуватись творами мистецтва, що написані "руско-польсько-украйонською" мовою. В більшості випадків локалізація закінчується лише на стадії перекладу головних мовних слів, які найчастіше зустрічаються на вебсторінках. Це вже непогано! Але зло в тому, що для людей - це добре! І якщо у Вас немає проблем із відвідуваністю вебсайту, і Вас абсолютно не цікавить індексація в пошуковиках - на цьому справді можна зупинитись! Навіть якщо у Вас в коді вказано, що мова сайту китайська - головне, щоб у Ваших користувачів все коректно відображалось. Але якщо у Вас все зав'язано на пошукові сервіси та на відвідуваність по ключовим словам - дуже погано, що на Ваш сайт заходять не по тим запитам, по яким повинні заходити користувачі. Для Вас - ця стаття.

Чи задавали ви собі запитання - чому на мій сайт заходять по ключових словах, але в мене взагалі немає подібного контенту, так, просто в тексті десь схоже слово зустрічається? Якщо не задавали і Вас не цікавить дана тема, а цікавить лише збільшення таких входів - далі читати немає змісту, бо моя методика лише зменшить кількість користувачів по "лівих" словах.

Якщо ж Вам цікаві користувачі, які після входу на сайт будуть зачитуватись ним, як це роблять практично всі, хто зайшов на мій блог - швидше за все дана стаття Вам мінімально, але допоможе, хоча панацея - більш комплексний підхід.


Отже - поставили Ви двигунець, підібрали для нього тему і почали формувати цікаві статті. Нехай мова буде українською. Просто для прикладу і просто по причині того, що цю статтю будуть читати саме україномовні сайто-активісти 8). Після інсталяції та підбору теми у Вас на сайті вже кілька проблем. З ними можна жити, але важко, бо вони будуть відтягувати успішність Вашого проекту.

Чому?

Приклад поряд. Цей блог - працює на друпалі, використовує тему з відкритих шаблонів. Друпал - написаний англомовними авторами (головна його частина), тема "намальована" взагалі арабом, якщо не помиляюсь. Візуально все ок, але заглянувши глибше - вияснив, що володіючи мистецтвом дизайну та здатністю написати толкове ядро, не будеш профі в локалізації цього всього для невідомої мови.

І дійсно! Для чого їм щось формувати з глибиною розуміння, що їхнє творіння буде використовуватись в країнах, мови яких практично не підтримуються пошуковиками? Підтверджую - не варто!

Більше того, проблема справді не в них! Чи сильно Ви задумувались, щоб Ваш україномовний блог гарно індексувався в англомовних пошукових сегментах інтернету? Гадаю ні.
Отже - про проблеми, з якими стикнувся я!

  • Перша - відсутність повноцінного перекладу автоматичних інтерфейсних елементів, що можна іноді зустріти і зараз(лінь мені);
  • друга - HTML сформовано саме автором теми і його не хвилювала багатомовність. Можливо саме через ці проблеми я забрав копірайти - це моє "фе" авторам.

Все, що Ви бачите - це повноцінно перероблена система, на базі друпалу і теми Internet Services, знайденої мною давно на просторах інтернету.
Після повної локалізації в мене конкретно впала відвідуваність.

Людина я заінтересована в цьому, тому поліз в лічильники і статистики. Як виявилось - дуже різко впала відвідуваність випадкових запитів з пошукових систем. Це тривало досить недовго - тижня три. Аналогічна ситуація була і з іншим проектом, щоправда - російською мовою! Але там ситуація інша - там відвідуваність не падала спочатку - вона вдвічі збільшилась.Причина цьому - краща підтримка російської мови різноманітними онлайн сервісами та пошуковиками.

Отже - згідно статистики - пропали одиночні входи по певним ключовим словам, результатом якого було - зайшла людина, побачила - "не те" і закрила вікно. Зате почали рости входи, результатом яких є глибина проникнення більше 2-3 кліка - тобто це і є аудиторія, якій цікаво про що я тут понаписував.
Одночасно з цим почав дуже серйозно рости рейтинг по Alexa. Та й Яндекс почав обробляти сторінки, хоча закономірністю останнє я не можу назвати(В цей же час і MSN зробив повний індекс сайту за одну ніч, залишивши всі сторінки з максимальним рейтингом в себе в кеші - хоча це також не показник).
Це щодо побічних факторів локалізації, якою я на сьогоднішній день задоволений, хоча і не рахую її завершеною.

Сподіваюсь, Ви зроузуміли трошки суть, тепер технічна сторона.

Система друпал базується на шаблонах, якими виступає виключно тема!
Тобто розробники самого ядра зробили все можливе, щоб зробити локалізацію максимально простою, але люди, що формують ці шаблони не особливо читають документацію, тому багато нюансів не враховують.
Перший нюанс - стандарт багатомовності сторінок, про який я писав в попередніх статтях. Другий - відсутність підтримки пошуковиками багатомовності, що є загальною проблемою для нас і про що я розповім пізніше.
Отже, власникам друпалу дуже сильно раджу прочитати гіди по створенню тем для друпала. Це складно! І мова там "неукраїнська", але важливо, щоб мозок бачив технічну сторону процесу.
Після прочитання Theme API Ви мали зрозуміти структуру "теми", як об'єкту системи друпал. Головним елементом в цьому виступає шаблон page.tpl.php
Відкривши його Ви зустрінетесь одразу з мовою php. Я навантажив Вас прочитанням Theme API , тому не буду навантажувати вивчення мови php, в принципі воно Вам не потрібно в даному випадку.
Глянувши на код

можна володіючи HTML і не володіючи PHP побачити структуру документа, описану на сайті вебконсорціуму.

В принципі для пересічного блогера, який не володіє технічними аспектами достатньо буде вказати коректно в усіх тегах, що вписані тут параметр lang="uk" і все буде коректно. Інша справа, якщо вебсайт у Вас кількамовний - тоді варто використовувати елемент ThemeAPI

lang="<?php print $language ?>"

який автоматом буде підставляти мову, вказану Вами в самому ядрі. Важливо дописати такі параметри до всіх блоків, що використовуються у Вас в друпалі на сайті (теги html, title, meta, h1-h6, div, blockquote, span, p тощо - всі вони підтримують параметр мови) - тоді можна бути впевненим, що проблеми пошуковиків можна буде підкріпити фактом із коду з Вашого вебсайту. Повна версія переробленого шаблону з мого вебсайту

Після вказування всім блокам параметру мови - можете приступати до індексації вебсайту в пошукових системах.

В принципі на цьому можна закінчити - але є ще один елемент - всі ваші стрічки RSS ( XML ) також потребують вказування мови. Тут Вам допоможе модуль teaser, будь-який текст в ньому заключайте в блок div із вказуванням параметру lang. Цей заголовок - коротка аннотація до кожної статті, в повному html буде включено в стрічку RSS, що в майбутньому додасть рейтингу в пошукових системах в контексті мови Ваших документів. Приклад

<div lang="uk">Стаття про локалізацію для двигунців drupal, wordpress, typo3, reloadcms</div>

В принципі локалізація коду Вашого сайту для системи друпал завершена. Все інше - справа за Вами, можете також використовувати ці знання при генерації статей, посиланнях на зовнішні вебсайти ( параметр hreflang="uk" ) тощо. Все це заставить пошукові системи поважати коректність стандарту та зменьшить пошуковий спам.


Наступний двигунець - Wordpess.

Ця програма дуже популярна серед блогерів всього світу, але це нічого не значить - проблеми в ній також присутні.

Ситуація з ним аналогічна до друпалу. В стандартній темі в файлі /wp-content/themes/default/header.php

Згідно документації по темам для Вордпресу - розробники зробили все можливе для багатомовності http://codex.wordpress.org/Blog_Design_and_Layout і особливих питань після прочитаного в Вас не повинно виникнути.

Отже - перероблений варіант стандартної теми вордпреса

Завжди перевіряйте згенерований HTML після внесення Ваших правок - відсутність коду php та правильність відображення сформованих параметрів lang="uk" - обов'язкова!

Наступним файлом, який відіграє важливу роль в вордпресі - файл, що відображає архіви

/wp-content/themes/default/archive.php

Показувати як він виглядає до - не буду. Просто підкажу що робити з цим і всіма наступними файлами з теми default.

Згідно документації по створенню тем для вордпреса розробник може змінити структуру файлів в самій темі, тому у Вашому конкретному випадку можливі інші файли, але суть локалізації - незмінна.

Можна звичайно не вставляти в кожен тег параметр мови, але враховуйте, що пошукові сервіси зберігають вебсторінки в своєму кеші і не завжди зберігають Ваші мета теги, або параметри типу документа і в подальшому опираються на вміст саме в кеші при формуванні своїх індексних сторінок та рейтингів по ключовим словам. Отже ваші вказівки щодо мови блоку або об'єкту не завадять, особливо, якщо Ви підете дальше і будете вказувати кілька мов в своєму документі.

XML в WordPress українською мовою

Маленький додаток до вордпреса - експорт в рсс. Мабуть розробники не рахують його важливим, тому по замовчуванню внесли значення для всього xml - en

Я впевнений, що жодних проблем із визначенням мови для англійських сторінок не присутньо в випадку Вордпреса. В нашому ж випадку, та й у випадку будь-якої не en мови варто вказати більш коректніше

/wp-admin/includes/schema.php

В даному файлі знаходим стрічку із текстом (в моєму випадку 209 )

add_option('rss_language', 'en');

І міняємо її на коректний варіант, а саме у випадку української мови

add_option('rss_language', 'uk);

Якщо постаратись - можна пов'язати між собою виведення $language та rss_language - це я залишу за Вами

 


Наступна оболонка для керування сайтом - typo3

Даний продукт важко назвати простим, хоча НМД - це справа звички.

Офіцийний документ про локалізацію досить глибоко описує питання багатомовності - не бачу змісту його дублювати

Про цей продукт я напишу найменше - в саму систему вбудовано дуже потужний механізм ведення багатомовних вебсайтів, головне не забувати користувачам даного продукту вносити параметри мови та локалі і перевіряти наявність цих внесень в генерованому коді.

Ключовим механізмом локалізації - є подубова одразу коректного шаблону.

Крім того гляньте в /typo3_src+dummy-4.1.5/typo3/sysext/lang/lang.php

в цьому файлі наведено приклад формування локалі під іменем default

Зустрічав вебсайти українською мовою, XML код яких також прописував <language>en<language>, що свідчить, що автори сайту не дуже піклуються про коректність вказування мови. А може їм і не потрібно?


Іншим, доволі різко відмінним від попередніх продуктів, але насправді потужним двигунцем для ведення блогів і не тільки, є reloadcms. Він базується на текстовому варіанті збереження інформації без допомоги баз даних.

Програма написана Українцями, тому питання локалізації стоїть не так гостро. Тобто воно стоїть, але одразу вирішено коректно у всіх аспектах.

При виборі користувачем української мови - в заголовки одразу прописуються параметри мови lang="uk"

Аналогічна ситуація і з XML - тег <language>uk</language> присутній в стрічках, згенерованих релоадом.

Для остаточного поблочного вказування мови - при генерації сторінок можете весь текст тіла та скорочені аннотації до статей вносити в оболонку блока div

<div lang="uk">Коротка аннотація до статті, сформованої з допомогою reloadcms</div>

Думаю зрозуміло, що у випадку використання російської мови паралельно з українською даний блочок трошки видозміниться

<div lang="ru-UA">Пример использования русского языка совместно с украинской локализацией</div>

Таке позначення мов стосується всіх варіантів багатомовних документів. Корисно вказувати мову цитат ( blockquote ), скорочень та синонімів ( acronym, span, abbr  ) тощо. Така коректність буде серйозно допомагати парсеру пошукового сервісу або іншого, контент залежного програмного забезпечення, за умови, якщо воно підтримує багатомовність.


Дякую HIP-у за підказаний новий продукт українського виробництва http://www.litediary.com/

Проаналізував його сорці і побачив, що локалізація зроблена не зовсім коректно.

Першим елементом, що характеризує даний продукт - вебсайт розробника, що імовірно написаний на цьому самому продукті. В сорцях його дуже коректно вказані всі стандарти, але НМД - лише як дань моді.

Людина, зайшовши на сторінку, прочитає все коректно, бо Наш, вбудований аналізатор розпізнає українську мову. Робот - точно ні.

Чому? Ось сорці

А також наведу частину сорців стрічки XML , що генерується даним програмним ядром

В HTML не вказано мови, якою сформовано документ, а в XML вказано! Але чітко - англійська. Будь-який робот буде абсолютно правий, якщо співставить даному домену англійську мову, а в кращому варіанті - російську.

 

Для коректування цього всім, хто використовує даний двигунець раджу внести певні зміни до коду.

Першочергово коректуємо стиль (в сорцях був лише стиль Serenity, тому буду коректувати його) /B107/sources/styles/serenity/tmpl/header.lph.php

Всі внесені правки виділено жирним текстом. Крім цього в стилі присутні також елементи, що відповідають за генерацію інших частин двигунця - додавання локалі до них залишаю Вам як домашнє завдання 8))).

Наступний крок - зміна локалі в XML - як виявилось, продукт ще дійсно в форматі альфи, бо саму мову не винесено в винляді змінної ядра, вона залишилась як банальний текст в самому генераторі rss та atom стрічок.

Отже правимо /B107/sources/lib/feed/rss2.php

Знаходим en та змінюємо на потрібне Вам значення.

 

Локалізацію Atom1.0 документа залишу на плечі самих розробників - там по суті також нескладно.

 

 


Задумався над написанням висновка.

 

По суті - писати нічого. Раджу дотримуватись стандартів.

Чому?

Все просто! Під час індексування робот буде обробляти такі сторінки коректно. У разі ж помилок - буде хоча-б доказ того, що помилка в парсері робота, а не на Вашому вебсайті, яка допоможе розв'язати проблему та заставить розробників роботів та інших програм поправити помилку.

Успіху!

Далі буде...

Trackback URL для цього допису

http://my.ukrweb.info/trackback/88
Ваш голос: Немає Оцінено (2 голосів)

Зображення користувача Lordie.

У останній публічно доступній

У останній публічно доступній версії мови динамічно вказуються згідно мовного файлу, тож проблем вже бути з цим не має = )

Зображення користувача podarok_incognito.

Треба буде спробувати...

Треба буде спробувати...

Зображення користувача jarofed.

Дякую за

Дякую за надзвичайно змістовну і детальну статтю! Будемо працювати!

Зображення користувача jarofed.

На своєму сайті

На своєму сайті дещо поправив. Ще раз дякую за статтю. ;)

Дедукцію, до речі, вже вмикати не потрібно - ти мене вже й так відшукав. ;)

Як матимеш час і буде не важко - глянь будь-ласка, чи все там "ок"... Заздалегідь вдячний!

І виходь на аськоконтакт - так зручніше і швидше.

Зображення користувача romand.

Просто

Просто переклад Українською мовою деякої частини інтерфейсу друпал

Файли української локалізації основних модулів ядра Drupal 5.x

Зображення користувача podarok.

Ти би хоч сайт

Ти би хоч сайт вписував, а то приходиться дедукцію вмикати, що знайти звідки ти прийшов 8))))

Andriy Podanenko

Зображення користувача podarok.

Ага, бачу...

Ага, бачу... 8)
Успіху тобі!

Andriy Podanenko

Зображення користувача jarofed.

І що, допомагає

І що, допомагає дедукція? ;)

Просто сайту, як такого, поки-що немає. Тому й намагаюся розібратися у всіх цих технічних особливостях. Але як тільки з"явиться - відразу вкажу. ;)

Зображення користувача podarok.

може

може http://jarofed.livejournal-.com/
?

Andriy Podanenko

Зображення користувача jarofed.

Ось так

Ось так інтернет-минуле невпинно полює за тобою!!! ;) Так, дійсно був такий журнал... Але навряд чи я цікавився б аспектами локалізації та українізації, якби прагнув надалі продовжувати своє перебування у ЖЖ...

Зараз налаштовую Wordpress. За кілька днів думаю написати першу статтю.

Додати новий коментар

Вміст цього поля є приватним і не буде показаний.
  • Кожен елемент тагу-заголовка буде модифіковано враховуючи id тег.
  • Mark language-dependent sections with == lc == where lc (or lc-xx) is a valid language code. Use qq for all languages.
  • Кожне вкладення тегу "<!--tableofcontents-->" в тексті буде замінено списком в стилі mediawiki змісту статті. Приймаються параметри для заголовку, стилю списка, мінімального та максимального рівня вкладень: <!--tableofcontents list: ol; title: Table of Contents; minlevel: 1; maxlevel: 3;-->. Всі аргументи - опціональні і в прикладі показано значення за замовчуванням.
  • Рядки та параграфи відокремлюються автоматично.

Детальніше про опції форматування

CAPTCHA
Дайте відповідь на це запитання, щоб ми знали що ви людина, а не тупий робот )
4 + 4 =
Розв'яжіть цю просту задачку і введіть відповідь. Наприклад, для 1+3 введіть 4.

RSS-матеріал

експерименти

Rambler's Top100
Все новости, Крым - Проишествия
дорожно-строительная техника по лизингу