Support » Allgemeine Fragen » Japanische Schriftzeichen in Shortcodes

  • Hallo,

    ich arbeite zur Zeit an einer Seit mit Lernmaterial für die japanische Sprache. Da ein Tool integriert ist, dass bei japanischen Schriftzeichen/Silben eine deutsche Übersetzung einblendet benötige ich für die einzelnen japanischen Zeichen (Katakana und Hiragana hauptsächlich) Shortcodes (insgesamt sind es 430). Leider funktioniert das nicht ganz so wie ich will bzw. nur mit einem kleinen Workaround.

    Der Code für den Shortcode für die Silbe き (bedeutet „ki“) sieht folgendermaßen aus:

    function kihi_function() {
    return '<span class="letter hi-letter" data-letter="kihi">き</span>';}
    add_shortcode('き', 'kihi_function');

    und er funktioniert, wie er soll.

    Der Code für den Shortcode für die Silbe きゃ (bedeutet „kya“) sieht folgendermaßen aus:

    function kyahi_function() {
    return '<span class="letter hi-letter" data-letter="kyahi">きゃ</span>';}
    add_shortcode('きゃ', 'kyahi_function');

    Für sich genommen (Der Code für den Shortcode für き auskommentiert) funktioniert er ebenfalls. Wenn jedoch der Code für き nicht auskommentiert ist, gibt [きゃ] nicht

    <span class="letter hi-letter" data-letter="kyahi">きゃ</span>

    aus sondern das gleiche wie [き]

    <span class="letter hi-letter" data-letter="kihi">き</span>

    Gleiches gilt für alle anderen Silben, die mit gleichen Zeichen beginnen.

    Ein Workaround, der mir nach einiger Zeit frustrierenden rumprobierens eingefallen ist, ist es, die Reihenfolge der Definitionen in der functions.php so zu ändern, so dass der shortcode für き erst irgendwo nach dem shortcodes für きゃ usw. definiert wird. Ganz verstehen, warum das so ist tue ich aber nicht und ganz glücklich bin ich auch nicht damit, weil es der Übersicht schadet, da ich nun nicht die Reihenfolge des japanischen Alphabets einhalten kann.

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Wie wäre es, wenn Du einen Shortcode „JPN“ mit Attribut Silbe verwendest?

    [JPN Silbe="きゃ"]

    … und dann dazugehörend die Definition des Shortcode

    // Add Shortcode
    function custom_shortcode( $atts ) {
    
    	// Attributes
    	$a = shortcode_atts(
    		array(
    			'Silbe' => 'き'
    		), $atts) ;
          switch ($a['Silbe']) {
             case "き":
               return 'ki';
               break;
            case "きゃ":
               return 'kya';
               break;
         }
    }
    
    }
    add_shortcode( 'JPN', 'custom_shortcode' );

    Das klingt gut, werde ich bei nächster Gelegenheit probieren (hällt die functions.php auch ein bisschen kleiner). 🙂

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Das Thema „Japanische Schriftzeichen in Shortcodes“ ist für neue Antworten geschlossen.