it-swarm.com.de

Designelemente werden nicht übersetzt

Ich habe ein Thema, das für das Übersetzen vorbereitet ist, aber keine Übersetzungen enthält. Ich habe poedit verwendet, um die Zeichenfolgen automatisch zu erkennen und sie anschließend vollständig zu übersetzen. Bestimmte Elemente werden jedoch nicht in admin oder auf der Website übersetzt.

Ich kann in poedit sehen, dass ich alle Zeichenfolgen übersetzt habe, einschließlich derer, die nicht auf der Live-Site übersetzt wurden. Einige der nicht übersetzten Zeichenfolgen werden im Frontend angezeigt, der Großteil befindet sich jedoch im Verwaltungsmodus.

Mir ist aufgefallen, dass es den Anschein hat, als ob die Zeichenfolgen, die nicht übersetzt werden, über 'add_action' geladen wurden. So enthält das Thema beispielsweise einige benutzerdefinierte Beitragstypen, wobei 1 für Ereignisse steht. In admin wird alles übersetzt, was diesen benutzerdefinierten Beitragstyp betrifft, mit Ausnahme der Zeichenfolgen, die mit den Metaboxen verknüpft sind.

So wird beispielsweise der mit dem folgenden Code erstellte Administratorinhalt nicht in admin übersetzt.

$meta_box_events = array(
'id' => 'core-meta-box-events',
'title' => __('Events Options', CORE_THEME_NAME),
'post_type' => 'event',
'context' => 'normal',
'priority' => 'high',
'fields' => array(
     array(
        'name' => __('Event Month', CORE_THEME_NAME),
        'desc' => __('Choose the event month ', CORE_THEME_NAME),
        'id' => 'core_event_month',
        'type' => 'select',
        'options' => array(__('January', CORE_THEME_NAME), 
                            __('February', CORE_THEME_NAME),
                            __('March', CORE_THEME_NAME),
                            __('April', CORE_THEME_NAME),
                            __('May', CORE_THEME_NAME),
                            __('June', CORE_THEME_NAME),
                            __('July', CORE_THEME_NAME),
                            __('August', CORE_THEME_NAME),
                            __('September', CORE_THEME_NAME),
                            __('October', CORE_THEME_NAME),
                            __('November', CORE_THEME_NAME), 
                            __('December', CORE_THEME_NAME)
                            )
    ),
    array(
        'name' => __('Event Day', CORE_THEME_NAME),
        'desc' => __('Choose the event day. ', CORE_THEME_NAME),
        'id' => 'core_event_day',
        'type' => 'select',
        'options' => array( '1', 
                            '2', 
                            '3',
                            '4',
                            '5',
                            '6',
                            '7',
                            '8',
                            '9',
                            '10',
                            '11',
                            '12',
                            '13',
                            '14',
                            '15',
                            '16',
                            '17',
                            '18',
                            '19',
                            '20',
                            '21',
                            '22',
                            '23',
                            '24',
                            '25',
                            '26',
                            '27',
                            '28',
                            '29',
                            '30',
                            '31'
                            )
    ),

    array(
       'name' => __('Event Year', CORE_THEME_NAME),
       'desc' => __('Enter the event year using this format <em>0000.</em>', CORE_THEME_NAME),
       'id' => 'core_event_year',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event Time', CORE_THEME_NAME),
       'desc' => __('Enter the event time using this format <em>00:00AM/PM to 00:00AM/PM.</em>', CORE_THEME_NAME),
       'id' => 'core_event_time',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event Location', CORE_THEME_NAME),
       'desc' => __('Enter the event location, example: <em>Cramton Auditorium.</em>', CORE_THEME_NAME),
       'id' => 'core_event_location',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event City', CORE_THEME_NAME),
       'desc' => __('Enter the city of the event, example: <em>London.</em>', CORE_THEME_NAME),
       'id' => 'core_event_city',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event Zip Code', CORE_THEME_NAME),
       'desc' => __('Enter the address Zip code, example: <em>10308 89.</em>', CORE_THEME_NAME),
       'id' => 'core_event_Zip',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event Country', CORE_THEME_NAME),
       'desc' => __('Enter the event country, example: <em>United Kingdom.</em>', CORE_THEME_NAME),
       'id' => 'core_event_country',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event Phone', CORE_THEME_NAME),
       'desc' => __('Enter the phone info, example: <em>+44 (0)20 7040 8037.</em>', CORE_THEME_NAME),
       'id' => 'core_event_phone',
       'type' => 'text',
       'std' => ''
    ),

    array(
       'name' => __('Event Map Latitude', CORE_THEME_NAME),
       'desc' => __('Enter the google map longitude information, example: <em>-12.8809532.</em>', CORE_THEME_NAME),
       'id' => 'core_event_lat',
       'type' => 'text',
       'std' => ''
    ),
    array(
       'name' => __('Event Map Longitude', CORE_THEME_NAME),
       'desc' => __('Enter the google map longitude information, example: <em>-38.4174871.</em>', CORE_THEME_NAME),
       'id' => 'core_event_lon',
       'type' => 'text',
       'std' => ''
    )

)
);

add_action('add_meta_boxes', 'core_add_metabox_events');

Der "CORE_THEME_NAME" wird abgeholt, ich habe es mit Sicherheit wiederholt.

Meine etwas eingeschränkten Kenntnisse von WordPress ließen mich vermuten, dass die Übersetzungen ausgelöst wurden, bevor dieser Code geladen wurde. Die Übersetzung wird jedoch in der Datei functions.php wie folgt aufgerufen:

add_action('after_setup_theme', 'lang_setup');
function lang_setup(){
   load_theme_textdomain(CORE_THEME_NAME, CORE_DIRECTORY . '/languages');
}

Nach dem, was ich gesehen habe, sollte dies sicherstellen, dass die Textdomäne geladen wird, sobald alle Themenkomponenten geladen sind. Warum werden die Zeichenfolgen in der Site-Verwaltung für die Veranstaltungsbeiträge nicht übersetzt?

Alle Ideen/Vorschläge/etc. werden sehr geschätzt.

Vielen Dank.

3
Phill Healey

Sie sollten keine Konstante (in Ihrem Fall CORE_THEME_NAME) für die Textdomäne verwenden. Dies liegt daran, dass der Aufruf von __ Ihren Code analysiert und nicht ausführt. Einfach gesagt: Es geht nicht darum, den Wert der Konstanten nachzuschlagen. Es wird also nicht übersetzt. Zitat des berühmten Otto :

In allen Übersetzungsfunktionen sind keine PHP -Variablen in den Zeichenfolgen zulässig, aus irgendeinem Grund. Nur einfache Zeichenfolgen in Anführungszeichen.

2
cjbj