Поддержка Переводы Что нужно дописать в плигине чтоб его можна было перев

  • Решено blyskawka

    (@blyskawka)


    Поставил плагин для вывода информации об авторе http://colorlightstudio.com/2010/06/01/wordpress-plugin-author-exposed-v-1-1/ язык английский, нужно перевести на русский, чтоб не парится с по едитором, установил плагин http://www.code-styling.de/english/development/wordpress-plugin-codestyling-localization-en для добавления локализации плагинов, но в нём не отображался первый плагин, тогда я дописал в него

    function init_textdomain() {
    	if (function_exists('load_plugin_textdomain')) {
    	load_plugin_textdomain('author-exposed', 'wp-content/plugins/author-exposed');
    	}
    }

    Он стал отображатся в списке плагина для локализации, я создал po файл, но но пустой, нету тех слов которые нужно переводить, предполагаю что нужно чтото ещё прописать в плагин чтоб он подгружал нужный для перевода текст. Если ктото поможет буду благодарен.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Плагин не поддерживает локализацию средствами gettext. Самый простой в данном случае вариант — отредактировать текст прямо в плагине (не забыв про UTF-8 без BOM), тем более что там всего несколько слов.

    В идеале можно предусмотреть сохранение перевода при обновлении (сделав его в виде отдельной функции) или предложить автору добавить поддержку локализации, но вряд ли этот плагин будет часто обновляться.

    Sergey Biryukov
    Спасибо, просто не первый раз уже нужно перевести плагин, и уже хочется както по культурному чтоли сделать, не в коде менять а через файл локализации. Если пойти трудным путем, то куда копать?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Вызывать строки через функции локализации. Например, строка

    '<b>Author: ' . get_the_author() . '</b>'

    будет представлена так:

    '<b>' . __('Author: ', 'author-exposed') . get_the_author() . '</b>

    http://codex.wordpress.org/I18n_for_WordPress_Developers

    Sergey Biryukov
    Спасибо! Вот ещё один вопрос, пару дней уже мучаюсь

    Как в переводе вот єто понимать?
    Plural Index Calculation:
    n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1

    http://clip2net.com/s/135Op
    Не правильно отображает множественное число коментариев. Мне нужно чтоб при 0 было — 0 коментарів, при 1 коментар, 2-4 коментарі, 5-10 коментарів.

    Модератор Юрий

    (@yube)

    Не правильно отображает множественное число коментариев.

    То він, мабуть, мови не розуміє 🙂 Для русского был плагин… дай бог памяти… не помню 🙂

    Вот, нашел в своей помойке код в functions.php

    function om_number($number, $titles){
    $cases = array (2, 0, 1, 1, 1, 2);
    return $number." ".$titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ];
    }
    
    function comments_number_rus($o) {
    	if (preg_match('/(\d+)/',$o, $matches)) {
            	return om_number($matches[1], Array('комментарий', 'комментария', 'комментариев')) . "\n";
    	}
    	else return $o;
    }
    
    if (!is_admin()) add_filter('comments_number', 'comments_number_rus');

    Юрий
    Да плагин на комменты у меня стоит)називается «правильне відмінювання коментарів» вроде так. Я просто себе поставил плагин вопрос\ответ, там тоже прописывается количество ответов на вопрос и тд, потому и ищу как перевести.Чую что всё кроется в этих загадочных символах Plural Index Calculation:
    n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1

    Помогите плиз кто знает)

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Plural Index Calculation

    Это выражение (формула), описывающее схему употребления форм множественного числа в языке.

    В языковом файле формы выглядят так:

    msgid "%s comment approved"
    msgid_plural "%s comments approved"
    msgstr[0] "%s комментарий одобрен"
    msgstr[1] "%s комментария одобрены"
    msgstr[2] "%s комментариев одобрены"

    Чтобы строка переводилась согласно выражению, она должна быть оформлена по такому принципу (пример из wp-admin/edit-comments.php):

    sprintf( _n( '%s comment approved', '%s comments approved', $approved ), $approved );

    Т.е. в функцию передаются обе англоязычные формы и число, для которого нужно получить переведённую строку. Число подставляется в выражение, которое возвращает подходящую форму из языкового файла (0, 1 или 2). Затем число подставляется уже в эту форму, и получается итоговая строка.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Что нужно дописать в плигине чтоб его можна было перев» закрыта для новых ответов.