web-dev-qa-db-fra.com

Lien vers un fichier .po dans un thème enfant

je travaille dans un thème de vingt-dix enfants, je veux changer le

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

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

localiser dans les vingt fonctions de celui de mon thème enfant:

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

Avec ce changement de stylesheetpath, la fonction vingt-dix prend toujours ma propre fonction. Comment puis-je résoudre ce problème?

1
user2621

Vous devrez utiliser la fonction load_child_theme_textdomain() .

En outre, il existe une discussion intéressante ici .

2
MirlitonMedia

Il y a plusieurs approches à cela: Premièrement, vous pouvez simplement retirer la fonction du crochet auquel le callback est accroché.

// Wrapper callback: twentyten_setup()
add_action( 'after_setup_theme', 'twentyten_setup' );
// Inside a child themes functions.php file - wrapped up in a callback, hooked to the same hook:
remove_action( 'after_setup_theme', 'twentyten_setup' );

Mais alors, vous seriez obligé de remplacer le processus complet de configuration du thème.

Plus facile, comme noté dans la réponse de @Piero, vous pouvez également simplement charger le domaine de texte à partir du thème enfant. La différence par rapport à l'autre réponse est que cet exemple utilise l'emplacement racine approprié et peut être placé dans un fichier functions.php de thèmes enfants ou parents.

Remarque: S'il était placé dans le fichier de thèmes parent, le thème enfant serait forcé à disposer d'un dossier languages contenant les fichiers de traduction.

load_child_theme_textdomain(
    'perfect-theme',
    get_stylesheet_directory().'/languages'
);
0
kaiser

Si vous devez charger des fichiers de langue à partir d'un sous-répertoire d'un répertoire enfant de thème, vous pouvez utiliser:

load_child_theme_textdomain(
    'PARENT THEME DIRECTORY NAME', 
    dirname(__FILE__) . '/LANGUAGE FILES SUBDIRECTORY NAME'
);

Par exemple, si le nom de votre thème parent est "perfect-theme" et que le nom de votre thème enfant est "perfect-theme-child" et que les fichiers de langue se trouvent dans le sous-répertoire "languages" du thème enfant, le code serait le suivant:

load_child_theme_textdomain('perfect-theme', dirname(__FILE__) . '/languages');

Le code ne fonctionnera que si le fichier de langue porte le nom approprié, ce qui signifie qu'il devrait porter le nom LOCALE.mo, où LOCALE correspond aux paramètres de langue actuels dans wordpress admin.

Par exemple, si votre langue actuelle est l'espagnol, wordpress recherchera le fichier nommé es_ES.mo.

0
Piero