• Witam,

    Chciałbym przetłumaczyć plik comments.php

    Plik jest przygotowany do poedit, dodane „_e”

    W poedit zrobiłem tak:
    nazwa i wersja projektu: uznaj

    ścieżka”.

    słowa kluczowe „_e

    kliknąłem ok i przetłumaczyłem pliki

    nazwę plików zmieniłem z default na comments-pl_PL

    i teraz pytania:
    Gdzie mają znajdować się pliki .po i .mo na serwerze? (w jakim kataogu?)
    Gdzie w pliku function.php umieścić

    add_action( 'init’, 'your-unique-function’ );
    function your-unique-function() {
    load_plugin_textdomain( 'your-unique-name’, false, 'your-unique-name/languages’ );
    }

    i jak edytwać ten wpis aby funkcja działała? (co i gdzie mam wpisać w tą funkcję)

    Z góry dziękuję za jakąkolwiek pomoc, jestem świeży w wordpressie.

Viewing 10 replies - 1 through 10 (of 10 total)
  • Jeśli po Twoich modyfikacjach teksty w comments.php mają postać analogiczną do tej:

    <?php _e( 'Comments are closed.', 'uznaj' ); ?>

    Do pliku functions.php wstawiasz:

    load_theme_textdomain( 'uznaj', TEMPLATEPATH . '/languages' );
    	$locale = get_locale();
    	$locale_file = TEMPLATEPATH . "/languages/$locale.php";
    	if ( is_readable( $locale_file ) )
    		require_once( $locale_file );

    Jeśli masz juz przygotowane pliki po i mo, to wrzucasz je na serwer do katalogu languages (w katalogu z Twoim motywem).

    Pliki po i mo musisz nazwać pl_PL.po i pl_PL.mo.

    Thread Starter AwakeClothing.com

    (@awakeclothingcom)

    Pojawia się błąd:
    Fatal error: Call to undefined function load_theme_textdomain() in …/wordpress/wp-includes/functions.php on line 4485

    Kiedy Ci się pojawił ten błąd? Po tym jak wstawiłeś do functions.php kod podany wyżej? Kod jest na pewno prawidłowy. Jakiej wersji WP używasz? Jakiego motywu używasz? Któregoś z darmowych, ogólnodostępnych?

    Thread Starter AwakeClothing.com

    (@awakeclothingcom)

    Motyw: Vikiworks Infinity 1.0.1
    WP 3.1.2.

    pojawiło się jak dodałem kod do functions.php

    Pobrałam motyw (ze strony Smashing Magazine). Motyw nie miał pliku functions.php, więc go założyłam. Zastanawia mnie, skąd u Ciebie błąd w linii 4485 w tym pliku? Skąd ten plik ma aż tyle linii? Skąd Ty pobierałeś ten motyw?

    Dodałam do pliku functions.php kod, który podałam wcześniej, założyłam katalog languages, w nim pliku pl_PL.po i pl_PL.mo, w pliku comments.php dopisałam 'uznaj’ do jednego z komunikatów, czyli było:

    <?php _e('want to say something?')?>

    zamieniłam na

    <?php _e('want to say something?','uznaj')?>

    komunikat ten przetłumaczyłam w pliku pl_PL.po i zapisałam zmiany. Po uploadzie tych zmian i plików pl_PL.po i pl_PL.mo na serwer komunikat ten został wyświetlony poprawnie już po polsku.

    Thread Starter AwakeClothing.com

    (@awakeclothingcom)

    a więc tak, z góry dziękuję za pomoc i czas jaki poświęciłaś aby rozwiązać mój problem.

    plik functions.php mam w (…\wordpress\wp-includes)

    rozumiem że powinienem mieć jeszcze dodatkowy w motywie czy jak?
    jeżeli tak to w (…\wordpress\wp-content\themes\Infinity-theme\theme)?

    i jak powinien wygladać kod w tym pliku tylko to polecenie do tłumaczenia czy jak?

    czy katalog languages założyłaś w tym samym katalogu (…\wordpress\wp-content\themes\Infinity-theme\theme)?

    czy pliki pl_PL.po i pl_PL.mo powinny znajdować się też w tym katalogu?

    ..jeszcze raz dziękuję za pomoc.

    Oj, zupełnie nie zauważyłam, że Ty zrobiłeś zmiany nie w tym pliku functions.php.

    A więc tak:
    1. usuń te zmiany z pliku wp-includes\function.php a zrób je w wp-content\themes\Infinity-theme\theme\functions.php
    2. Cały kod w Twoim pliku functions.php powinien wyglądać tak:

    <?php
    load_theme_textdomain( 'uznaj', TEMPLATEPA<?TH . '/languages' );
      $locale = get_locale();
      $locale_file = TEMPLATEPATH . "/languages/$locale.php";
      if ( is_readable( $locale_file ) )
        require_once( $locale_file );
    ?>

    3. Wszystkie wyświetlenia napisów z comments.php, które chcesz przetłumaczyć muszą mieć dopisany drugi parametr 'uznaj’ (jak w przykładzie w poprzednim moim wpisie).
    4. Jak już przetłumaczysz wszystkie potrzebne frazy i zapiszesz plik .po (oraz odpowiadający mu plik .mo), to przerzucasz pliki pl_PL.po i pl_PL.mo do katalogu languages utworzonym w wp-content\themes\Infinity-theme\theme\

    Cały proces lokalizacji za pomocą plików po i mo opisałam krok po kroku w tutorialu:
    Jak przetłumaczyć motyw WordPressa

    U Ciebie w motywie była dodatkowo ta niedogodność, że napisy typu _e
    nie miały podanego drugiego parametru i trzeba go wszędzie dopisywać.

    Thread Starter AwakeClothing.com

    (@awakeclothingcom)

    Parse error: syntax error, unexpected ’?’ in ……../wordpress/wp-content/themes/Infinity-theme/theme/functions.php on line 2

    ale już znalazłem błąd – wyboldowany:
    chyba źle wkleiłaś kod 🙂

    <?php
    load_theme_textdomain( 'uznaj’, TEMPLATEPA<?TH . '/languages’ );
    $locale = get_locale();
    $locale_file = TEMPLATEPATH . „/languages/$locale.php”;
    if ( is_readable( $locale_file ) )
    require_once( $locale_file );
    ?>

    …a tak poza tym wszystko działa i jestem bardzo wdzięczny za pomoc.
    Jesteś mistrzem.

    dziękuję i pozdrawiam 🙂

    Thread Starter AwakeClothing.com

    (@awakeclothingcom)

    Mam jeszcze jedną prośbę.
    Powiedz mi proszę jak dopisać 'uznaj’ do tego:

    <?php if ($req) echo „(required)”; ?>

    <button value=”submit” class=”submitBtn”><span>Okay.I’am done.</span></button>

    Super, że się udało.

    <?php if ($req) _e('required','uznaj'); ?>

    <button value="submit" class="submitBtn"><span><?php if ($req) _e("Okay.I'm done",'uznaj'); ?></span></button>

    W drugim przypadku trzeba było użyć cudzysłowiu (a nie apostrofu, dlatego, że apostrof jest w I’m).

    Pamiętaj, żeby po tych zmianach uaktualnić pliki po i mo. W programie poedit robi się to Katalog->Aktualizuj ze źródeł.

Viewing 10 replies - 1 through 10 (of 10 total)
  • Temat ‘tłumaczenie comments.php – add action co dokładnie wpisać?’ jest zamknięty na nowe odpowiedzi.