Ce este un Textdomain pentru Temă?

11 dec. 2012, 18:43:09
Vizualizări: 41.8K
Voturi: 24

Am observat că orice temă WordPress folosește aceste funcții, dar nu înțeleg care este scopul și ce reprezintă în acest caz 'themify'? Iată câteva exemple din fișierul functions.php al temei Themify:

1).

load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );

2).

if (function_exists('register_nav_menus')) {
        register_nav_menus( array(
            'main-nav' => __( 'Navigare Principală', 'themify' ),
            'footer-nav' => __( 'Navigare Footer', 'themify' ),
        ) );
    }

Și în fișierul template:

3). <?php _e( 'Ne pare rău, nu s-a găsit nimic.', 'themify' ); ?>

Și multe altele! Nedumerirea mea este ce reprezintă 'themify'? Care este scopul lui? Îl pot schimba sau șterge? Care este rolul pentru 'themify'?

0
Toate răspunsurile la întrebare 1
7
26

În acest caz, 'themify' este domeniul de text definit pentru Temă, folosit pentru a face Tema traductibilă. (Referință Codex: load_theme_textdomain()).

Pregătirea unei teme pentru traducere necesită câțiva pași.

  1. Definirea domeniului de text al temei:

    load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );
    
  2. Definirea șirurilor de caractere traductibile în șablon.

    Aceasta se face folosind una dintre funcțiile de traducere: __() (pentru șiruri returnate), _e() (pentru șiruri afișate) și _x()/_ex() (pentru șiruri cu context gettext). Există și altele, dar înțelegeți ideea...

    Un șir de text static, cum ar fi <p>Hello world!</p>, este încapsulat într-o funcție de traducere adecvată, precum <p><?php _e( 'Hello World!', 'themify' ); ?></p>, pentru a fi disponibil pentru traducere.

  3. Generarea fișierelor .mo/.po
    referință despre cum se editează fișierele de limbă

11 dec. 2012 18:56:35
Comentarii

@SokVanrithy, consultă acest Q&A pentru modul de gestionare a fișierelor .mo/.po. (Chip, nu am adăugat linkul în Răspunsul tău în caz că ai o altă recomandare:)

brasofilo brasofilo
11 dec. 2012 21:51:43

@brasofilo poți să-l adaugi dacă dorești. Cred că depășește sfera întrebării așa cum a fost formulată, dar totuși este o informație utilă.

Chip Bennett Chip Bennett
11 dec. 2012 21:55:27

De ce ai schimba-o? Intenționezi să faci un fork la Temă?

Chip Bennett Chip Bennett
12 dec. 2012 05:11:17

Da, vreau să scap de ele. Am descărcat o temă de pe Webdesigndepot și se numește base theme. Am întrebat autorul dacă voi putea modifica codurile originale? Mi s-a permis, deoarece este tema de bază goală pentru cei care doresc să aibă structura pentru tema personalizată. În plus, este un cadou de la autor pentru cititori. Îndoiala mea este ca mai sus!

Sok Vanrithy Sok Vanrithy
12 dec. 2012 09:45:22

Sigur, poți să scapi de ele; dar nici nu strică să le lași. Poți chiar să schimbi textdomain cu un alt șir de caractere, pentru a referi tema ta modificată. Cele mai bune practici de dezvoltare includ realizarea temelor traductibile, așa că aș recomanda împotriva eliminării lor complet. Cu toate acestea, sigur că poți, dacă alegi să o faci.

Chip Bennett Chip Bennett
12 dec. 2012 15:20:35

Hei Chip, unde este un loc comun pentru o temă să aibă apelul load_theme_textdomain? Trebuie să găsesc domeniul de text pentru tema la care lucrez.

parker.sikand parker.sikand
27 iun. 2013 23:02:32

"...unde este un loc obișnuit pentru un tema să aibă apelul load_theme_textdomain?" - în functions.php, ideal în interiorul unui callback atașat la after_setup_theme.

Chip Bennett Chip Bennett
28 iun. 2013 01:58:32
Arată celelalte 2 comentarii