tłumaczenie comments.php – add action co dokładnie wpisać?
-
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.
Pojawia się błąd:
Fatal error: Call to undefined function load_theme_textdomain() in …/wordpress/wp-includes/functions.php on line 4485Kiedy 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?
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.
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 WordPressaU Ciebie w motywie była dodatkowo ta niedogodność, że napisy typu _e
nie miały podanego drugiego parametru i trzeba go wszędzie dopisywać.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 🙂
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ł.
- Temat ‘tłumaczenie comments.php – add action co dokładnie wpisać?’ jest zamknięty na nowe odpowiedzi.
(@awakeclothingcom)
13 years, 6 months temu
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.