J'utilise les derniers WordPress et qTranslate. J'ai créé une page qui active certains champs personnalisés qui fonctionnent correctement.
qTranslate active les langues telles que les onglets lors de l'édition d'une page. Mais cela ne se produit pas dans mes champs de méta personnalisés. Un moyen de faire le contrôle de la langue sur ces champs?
Ce serait génial s'il y avait un auditeur d'événement Javascript qui me dirait que l'utilisateur a changé l'onglet de langue ou quelque chose du genre.
Je lis à propos de mettre comme
<!--:ca-->CA<!--:--><!--:es-->ES<!--:--><!--:en-->EN<!--:-->
à l’intérieur du champ méta, mais comme cela va être utilisé par un utilisateur final, et je suis sûr qu’ils ne comprendront pas ce que cela signifie et comment l’utiliser. J'ai besoin de différents méta-champs pour différentes langues. Des idées?
Deuxièmement, j'essaie ceci:
<?php _e('Published ', 'iris'); ?>
Mais lorsque je change la langue de la page (qTranslate? Lang = dk /? Lang = en), il ne traduit jamais le mot. Il reste toujours en anglais quelque part. J'ai essayé ceci et cela fonctionne:
<?php echo _e("<!--:dk-->Udgivet<!--:en-->Published"); ?>
Mais il n’utilise pas vraiment la bibliothèque de langues et j’espérais y trouver un moyen :)
Le moins compliqué consiste à utiliser le Quicktags du plugin et à utiliser les fonctions Gettext pour imprimer le contenu du site.[:en]English[:pt]Português
Documents Quicktags
Une autre option est de faire comme l'interface qTranslate avec les titres de publication:
Créez un champ personnalisé pour chaque langue dans votre méta-boîte:
la documentation qTrans n'est pas consolidée, il est donc utile d'analyser le code:
http://plugins.svn.wordpress.org/qtranslate/trunk/qtranslate_utils.php
La fonction qtrans_getSortedLanguages
renvoie un tableau avec les langues du site:
array(
[0] => 'es'
[1] => 'en'
[2] => 'nl'
[3] => 'fr'
[4] => 'de'
)
Ceci peut être utilisé pour insérer des éléments jQuery qui contrôleront la visibilité des éléments existants. Ce qui suit est juste un prof de concept et doit être adapté comme vous le souhaitez.
Le résultat est une case à cocher à l'intérieur de la boîte méta Page Attributes
qui affichera/cachera le bouton Preview
à l'intérieur de la métaboxe Publish
.
Code pour l'instantané précédent:
/**
* Inject jQuery Button to Control Some Element(s) Visibility
*/
add_action( 'admin_footer-post.php', 'wpse_59056_inject_visibility_checkbox' );
function wpse_59056_inject_visibility_checkbox()
{
global $current_screen;
// If not a Page, do nothing
if (
'page' != $current_screen->id
)
return;
?>
<script type="text/javascript">
jQuery(document).ready( function($)
{
// Define the Checkbox
var radioBtn = $('<input type="checkbox" name="rbtnCount" id="rbtnCount" /><label for="rbtnCount"> My Box Visibility</label>');
// Append to the Page Attributes meta box
radioBtn.appendTo('#pageparentdiv .inside');
// Mark it as checked
$('#rbtnCount').attr('checked', true);
// Watch its behavior
$('#rbtnCount').change( function ()
{
// Show/Hide the "Preview" button inside the Publish meta box
if( $(this).is(':checked') )
{
$('#preview-action').show();
}
else
{
$('#preview-action').hide();
}
});
});
</script>
<?php
}
* Avec l’aide de StackOverflow Créer un bouton radio de manière dynamique dans jQuery