Превод на датата и служебни думи при двуезичен сайт
-
Здравейте!
Имам Qtranslate с който си поствам на два езика, но не мога да разбера какви настройки трябва да задам, за да се появява датата на български. И в двете езикови версии месеца и деня си остават на английски. А също да попитам какво трябва да се направи за да се сменят и останалите служебни думи в сайта (като Arhive, Search, Read the rest of this entry и т.н.) според избрания език. Въпреки че забелязвам, че много хора тук сами си питат и сами си отговарят след време, се надявам някой да ми помогне. Благодаря предварително.
-
Само да уточня, че не искам случаен превод в момента на натискането на един бутон, както е при Global Translator, а искам да имам възможност аз да задавам превода
Здравей,
ще ти отделя малко време, за да ти дам насоки, защото темата е наистина широка (и дълбока).
* В wp-config.php можеш да си добавиш един ред, който да ти зададе основния език (ако е различен от английски). Ето това е реда за български:
define('WPLANG', 'bg_BG');
за да работи тази настройка обаче, трябва да създадеш папка languages в wp-content и в нея да сложиш файла с българския превод на WordPress.
* цялата система с преводите се върти общо взето около два типа файлове: PO и MO. Първият се редактира от човек, а вторият е компилирана версия на първия, предназначена за четене от машините.
* препоръчвам ти да си инсталираш ето това разширение:
http://wordpress.org/extend/plugins/codestyling-localization/С негова помощ много лесно можеш да си преведеш служебните текстове в темата и разширенията. Всичко става от админ-панела на WordPress. Има обаче един тънък момент…
* темите и разширенията трябва да са пригодени за превод. Тук вече става по-дълбоко и затова ти давам само няколко връзки да си почетеш:
http://codex.wordpress.org/Translating_WordPress
http://boren.nu/archives/2004/11/01/localizing-plugins-and-themes/
http://pressedwords.com/6-tips-for-localizing-your-wordpress-plugin/<?php _e('Успех!'); ?>
и… помисли докато е време дали qTranslate е най-добрия избор. Просто според мен подхода му към многоезичността е малко недъгав. Може би това е по-добро, а изглежда ще се развива:
http://wordpress.org/extend/plugins/sitepress-multilingual-cms/Но, на всеки според нуждите 😉
Много благодаря за отговора и насоките, започвам да чета, въпреки че на английски ми е малко трудно 🙁 . Междувременно си сложих ZdMultiLang, който ми дава възможност да имам страниците, постовете, категориите и таговете на няколко езика, но не ми превежда служебните думи и текстовете зададени в темата, което пак не ми върши работа.
define('WPLANG', 'bg_BG');
вече го сложих, папка languages с МО файл за български също имам.Само да попитам как се разбира дали темата е пригодена за превод или не?
погледни темата по подразбиране, например на 35 ред във файл index.php има такъв ред:
<?php _e('Not Found', 'kubrick'); ?>
_e
е функция, която указва, че текстът, който е в скобите(„Not found“) може да се преведе. Втората дума в скобите е т.нар. textdomain на темата („kubrick“), който е зададен във файл functions.php на ред 7:load_theme_textdomain( 'kubrick' );
Така че, за да е годна една тема за превод, трябва да съдържа подобен код.
мерси, продължавам да се боря. В комбинация със ZdMultiLang постигам превод на страниците, постовете и на половината джаджи, но за съжаление не на всички 🙁
Махнах ZdMultiLang, оставих си Qtranslate и CodeStyling Localization. Сложих 4 езика за проба: български, английски, руски и немски. Името на джаджата за смяна на езика в единия сайдбар не иска да се превежда на нито един език, джаджата за търсене се превежда на всички езици освен на български. Архиви, Страници и Скорошни публикации се превеждат на всички езици, но проблемът с българската дата остава. На всички други езици се сменя според езика, но не и на български, като превключа на български ми излиза английската дата. Същото е и положението със служебните думички: Author, edit, Posted in, Logged in as, says и т.н, на всички езици се превеждат без български.
Когато влезна в някой конкретен пост, там където се изписва датата на поста на всички езици излиза %A %B %e%q, %Y at %I:%M %p, а на немски излиза %A, 13System/LocaltimeMon, 13 Jul 2009 11:20:01 +0300 %e. %B %Y um %H:%M.Къде би могъл да е проблема?
Оказа се, че в самата тема има .mo файлове за 4 езика, но нямаше за български, добавих българския, някои неща се преведоха, други не, датата също все още е английската.
Като отворя Localization и влезна в темата имам възможност да редактирам .mo файла. Превеждам си израза, който ми е непреведен в момента (в случая posted in) и когато натисна бутона за генериране на mo файл, ми записва само това, което сега съм превела и всички други се губят. Има ли начин само да добавям преводи към вече готовия файл или трябва да превеждам всичко наново?Така… Съветвам те да пробваш с темата по подразбиране, защото тя е изцяло пригодена за превод. Ако там нещата работят, значи проблема е в другата тема, която използваш.
Някои джаджи може просто да не са пригодени за превод. А джаджите всъщност работят като разширения(plugins). От панела Localization можеш да си редактираш и тях по същия начин. Основните джаджи, които са си в WordPress от началото би трябвало да се превеждат без проблем.
Ако променяш нещо по темата, винаги трябва да правиш Rescan и да генерираш MO файл наново. Но не би трябвало всеки път да превеждаш едни и същи неща отново – те би трябвало да се пазят във PO файла. Виж дали и двата файла са с права за писане (оцветени са в зелено в менюто Localization). Съветвам те да направиш превода си, когато завършиш разработката на темата.
Като имаш проблем с превода на нещо, провери в самия код дали е правилно заложено:
<?php _e('text to translate', 'domain'); ?>
или
<?php __('text to translate', 'domain'); ?>
Ако срещнеш специални символи нейде при превода (като например %s, %1, %2 и т.н.) – не ги премахвай, те се използват за да укажат мястото на динамично генерирани стойности (например броя на коментарите)
Благодаря за помощта. Аз мисля, че вече пробвах с темата по подразбиране и не се получи по-различен резултат. Но се оправих с тази. Пробвах различни варианти, но мисля, че нацелих правилния начин. Проблемът беше, че първо добавях в локализацията на темата българския език и по този начин тя не хващаше преведения мо файл, а ми даваше възможност изцяло аз да си го преведа. После направих друго – Първо добавих през фтп в темата мо файла и в локализацията на темата българския се появи автоматично, след това като отворих в едит имаше много преведени текстове, но не тези, които ми трябваха. Като дадох рескан се намериха необходимите текстове. Тези, които бяха преведени се запазиха, и сега си добавям преводите на липсващите. За тези с процентчето вече ми е ясно, че не се пипат, само трябва да намеря правилната конфигурация за датата на български как трябва да се изпише.
Да, автоматично се откриват преводите, ако са качени предварително.
За датата какъв точно е проблема? Не се ли превеждат имената на дните и месеците? Или просто самото форматиране на датите?
Ами изписваха се както на английски July 30th, 2009, аз копирах от руското мо и написах в превода d.m.Y и сега са 30.07.2009, въпреки че предпочитам да е 30 юли, 2009, но това не видях как става
т.е. видях как става, с F, но не ги превежда. И в руското мо като сложа F не се превежда, а остава английското име на месеца
къде точно не става превода? в някое разширение, джаджа или в самата тема?
а може би вече трябва да викнем на помощ някой дето е по-навътре в нещата 🙂
ами аз още не съм наясно къде точно се извършва превода, в самия сайт като го отворя и в датата на постовете месецът е на английски. В локализацията на темата задавам формата на датата d F Y, но самите имена на месеците не знам откъде се теглят и кое отговаря за техния превод. В мо файла на WP фигурират преводите на месеците на български
- Темата ‘Превод на датата и служебни думи при двуезичен сайт’ е затворена за нови отговори.