it-swarm.com.de

Benutzerdefiniertes Metafeld funktioniert nicht mit qTranslate

Ich verwende das neueste WordPress und qTranslate. Ich habe eine Seite erstellt, die einige benutzerdefinierte Felder aktiviert, die ordnungsgemäß funktionieren.

qTranslate aktiviert beim Bearbeiten einer Seite Sprachen wie Registerkarten. Dies geschieht jedoch nicht in meinen benutzerdefinierten Metafeldern. Gibt es eine Möglichkeit, die Sprache in diesen Feldern zu steuern?

Es wäre großartig, wenn es einen JavaScript-Ereignis-Listener gäbe, der mir mitteilen würde, dass der Benutzer die Sprachregisterkarte oder etwas anderes geändert hat.

Ich las über das Putten wie

<!--:ca-->CA<!--:--><!--:es-->ES<!--:--><!--:en-->EN<!--:-->

innerhalb des Metafeldes, aber da dies von einem Endbenutzer verwendet wird, und ich bin sicher, sie würden nicht verstehen, was das bedeutet und wie man es verwendet. Ich benötige ein anderes Metafeld für verschiedene Sprachen. Irgendwelche Ideen?

Zweitens versuche ich das:

<?php _e('Published ', 'iris'); ?>

Aber wenn ich die Seitensprache ändere (qTranslate? Lang = dk /? Lang = en), wird das Wort nie übersetzt. Es bleibt immer irgendwie auf Englisch. Ich habe es versucht und das funktioniert:

<?php echo _e("<!--:dk-->Udgivet<!--:en-->Published"); ?>

Aber es nutzt die Sprachbibliothek nicht wirklich und ich hatte gehofft, dass es einen Weg gibt :)

2

Es ist weniger kompliziert, das Quicktags des Plugins zu verwenden und die Gettext-Funktionen zu verwenden, um den Inhalt der Site zu drucken.
[:en]English[:pt]Português Quicktags docs


Eine andere Möglichkeit ist, genau wie die qTranslate-Oberfläche mit den Post-Titeln umzugehen:
qtrans titles


Erstellen Sie ein benutzerdefiniertes Feld für jede Sprache in Ihrer Meta-Box:
custom meta box with custom fields


die qTrans-Dokumentation ist nicht konsolidiert, daher kann es nützlich sein, den Code zu analysieren:
http://plugins.svn.wordpress.org/qtranslate/trunk/qtranslate_utils.php
Die Funktion qtrans_getSortedLanguages gibt ein Array mit den Sprachen der Site zurück:

array(
  [0] => 'es'
  [1] => 'en'
  [2] => 'nl'
  [3] => 'fr'
  [4] => 'de'
)

Hiermit können Sie jQuery-Elemente einfügen , mit denen die Sichtbarkeit vorhandener Elemente gesteuert wird. Das Folgende ist nur ein prof des Konzepts und muss wie gewünscht angepasst werden.

Das Ergebnis ist ein Kontrollkästchen im Feld Page Attributes, mit dem die Schaltfläche Preview in der Metabox Publish ein-/ausgeblendet wird.
jquery wp manipulation

Code für den vorherigen Schnappschuss:

/**
 * 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
}

* Mit Hilfe von StackOverflow Optionsfeld in jquery dynamisch erstellen

2
brasofilo