TL; DR: se si utilizzano stringhe che si trovano nel tema principale, esattamente come vengono utilizzate nel tema principale, non è necessario disporre di un dominio di testo per il tema figlio.
Ma se usi stringhe non utilizzate nel tema principale, per renderle traducibili, avrai bisogno di un altro dominio di testo con .mo
file di traduzione ( ) correlati .
Flusso di lavoro della traduzione
Quando WordPress incontra una stringa in una funzione di traduzione, essa:
- Verifica se è stata caricata una traduzione per il dominio di testo richiesto (tramite
load_plugin_textdomain
o load_theme_textdomain
o load_textdomain
), in tal caso vai al punto 3.
- Verifica se la cartella delle traduzioni (per impostazione predefinita
wp-content/languages
) contiene un file di dominio di testo corrispondente. Il file textdomain corrispondente è "{$domain}-{$locale}.mo"
dove si $domain
trova il dominio di testo della stringa da tradurre ed $locale
è la locale corrente per il sito Web. Se quel file non viene trovato, viene restituita la stringa originale, altrimenti viene caricata e WP passa al punto successivo.
- Quando viene caricato il textdomain, WP verifica se la stringa richiesta è contenuta in quel file, se non viene restituita la stringa originale, altrimenti WP passa al punto successivo.
- Se la stringa tradotta trovata necessita di una risoluzione singolare / plurale (ad es. Quando si usa
_n()
), questi sono fatti. In caso contrario, WP passa al punto successivo.
- Gli hook di filtro vengono applicati sulla stringa tradotta (vedere https://developer.wordpress.org/?s=gettext&post_type%5B%5D=wp-parser-hook ) e infine viene restituito il risultato.
Così?
Quando usi il dominio di testo del tema principale nella funzione di traduzione dal tema secondario (supponendo che il tema principale venga spedito e carichi il file textdomain o che abbia un file di traduzione nella cartella delle traduzioni), WordPress arriverà al punto 3. nell'elenco sopra, e quindi se la stringa è disponibile nel file (perché utilizzata nel tema principale) verrà tradotta, altrimenti non è così.
Significa che le stringhe personalizzate nel tema principale richiedono il proprio file di traduzione.
In teoria, è possibile utilizzare il textdomain principale in un altro file di traduzione, perché WordPress è in grado di caricare più volte lo stesso dominio di testo, "unendoli", ma ciò ha dei problemi perché nel formato può esistere un solo file "{$domain}-{$locale}.mo"
nelle cartelle di traduzione ( vedere il punto 2. nell'elenco sopra).
Quindi, in conclusione, l'unico modo possibile per rendere traducibile un tema figlio, se contiene stringhe non utilizzate nel tema principale, è utilizzare il proprio dominio di testo e il proprio file di traduzione.