Cos'è un textdomain dei Temi WordPress?

11 dic 2012, 18:43:09
Visualizzazioni: 41.8K
Voti: 24

Ho notato che ogni tema WordPress usa queste funzioni, ma non capisco qual è il loro scopo e cosa rappresenta in questo caso 'themify'? Ecco alcuni esempi nel file functions.php di Themify:

1).

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

2).

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

E nel file template:

3). <?php _e( 'Spiacenti, nessun risultato trovato.', 'themify' ); ?>

E molti altri! Il mio dubbio è: cosa rappresenta 'themify'? Qual è il suo scopo? Posso modificarlo o eliminarlo? A cosa serve il parametro 'themify'?

0
Tutte le risposte alla domanda 1
7
26

In questo caso, 'themify' è il textdomain definito per il Tema, utilizzato per rendere il Tema traducibile. (Riferimento Codex: load_theme_textdomain()).

Preparare un Tema per la traduzione richiede alcuni passaggi.

  1. Definire il textdomain del Tema:

    load_theme_textdomain( 'themify', TEMPLATEPATH.'/languages' );
    
  2. Definire le stringhe traducibili nel template.

    Questo viene fatto utilizzando una delle funzioni di traduzione: __() (per stringhe restituite), _e() (per stringhe visualizzate), e _x()/_ex() (per stringhe con contesto gettext). Ce ne sono altre, ma l'idea è chiara...

    Una stringa di testo statica, come <p>Hello world!</p>, viene racchiusa in un'appropriata funzione di traduzione, come <p><?php _e( 'Hello World!', 'themify' ); ?></p>, per renderla disponibile alla traduzione.

  3. Generare i file .mo/.po
    riferimento su come modificare i file di lingua

11 dic 2012 18:56:35
Commenti

@SokVanrithy, consulta questa domanda e risposta per come gestire i file .mo/.po. (Chip, non ho aggiunto il link nella tua Risposta poiché potresti avere un'altra raccomandazione:)

brasofilo brasofilo
11 dic 2012 21:51:43

@brasofilo sentiti libero di aggiungerlo se vuoi. Penso che sia fuori dall'ambito della domanda così com'è posta, ma comunque un'informazione utile.

Chip Bennett Chip Bennett
11 dic 2012 21:55:27

Perché vorresti cambiarlo? Stai facendo un fork del Tema?

Chip Bennett Chip Bennett
12 dic 2012 05:11:17

Sì, voglio sbarazzarmene. Ho scaricato un tema da Webdesigndepot, e si riferisce a base theme. Ho chiesto all'autore se sarei in grado di modificare i codici originali? Hanno dato il permesso perché è il tema base vuoto per chi vuole avere la struttura per un tema personalizzato. Inoltre, è un regalo dell'autore ai lettori. Il mio dubbio è come sopra!

Sok Vanrithy Sok Vanrithy
12 dic 2012 09:45:22

Certo, puoi sbarazzartene; ma non fa male nemmeno lasciarli. Puoi persino cambiare il textdomain con una stringa diversa, per riferirti al tuo tema forkato. Le migliori pratiche di sviluppo includono la creazione di temi traducibili, quindi ti consiglierei di non rimuoverli completamente. Detto questo, puoi certamente farlo, se lo desideri.

Chip Bennett Chip Bennett
12 dic 2012 15:20:35

Ehi Chip, dove si trova solitamente la chiamata load_theme_textdomain in un tema? Devo trovare il text domain per un tema su cui sto lavorando.

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

"...dove è un posto comune per un tema per avere la chiamata load_theme_textdomain?" - in functions.php, idealmente all'interno di una callback agganciata a after_setup_theme.

Chip Bennett Chip Bennett
28 giu 2013 01:58:32
Mostra i restanti 2 commenti