Zum Inhalt springen Zur Seitenleiste springen

Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.

Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.

Sun Mon Tue Wed Thu Fri Sat
- - 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00
- - - - - - -

Supporter-Zeitzone: America/Lima (GMT-05:00)

Schlagwörter: 

Dieses Thema enthält 14, hat 1 Stimme.

Zuletzt aktualisiert von Andreas W. Vor 3 Monaten.

Assistiert von: Andreas W..

Autor Beiträge
Januar 23, 2026 um 16:05 #17757832

katrinW-5

Wie kann ich den Slug "Category" vom Plugin "the Event Calendar" übersetzen?

Januar 23, 2026 um 16:43 #17757916

katrinW-5

wenn ich von "/en/calendar/category/meditations/" umschalte auf deutsch, erscheint zunächst "/calendar/category/meditationen/". Der Wechsel funktioniert dort auch nicht richtig.

Wenn ich von der deutschen Version auf die Kategorie filtere, kommt "/kalender/category/meditationen/"

Januar 23, 2026 um 17:43 #17757980

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Hallo,

Ich kann gerne anbieten, mir das einmal genauer anzusehen. Es ist allerdings wahrscheinlich, dass man den Slug /category/ nicht über WPML ändern kann. Er kommt direkt vom Events Calendar Plugin. Eventuell wäre es in dem Fall besser, die originalen Angaben im Plugin auf Englisch zu belassen und diese dann mit WPML String Translation auf Deutsch zu übersetzen.

Ich möchte einen temporären Zugriff (wp-admin und FTP) auf die Website anfordern, um das Problem genauer zu untersuchen.

Die dafür erforderlichen Felder findest du unterhalb des Kommentarbereichs, wenn Du dich anmeldest, um die nächste Antwort zu hinterlassen. Die Informationen, die du angibst, sind privat, was bedeutet, dass nur du und ich sie sehen und darauf zugreifen können.

WICHTIG
Lege bitte unbedingt eine Sicherungskopie der Website und der Datenbank an, bevor Du uns den Zugriff gewährst.
Wenn Du die Felder "wp-admin / FTP" nicht sehen kannst, werden Ihre Anmeldedaten für Post und Website als "PUBLIC" (Öffentlich) festgelegt. Veröffentliche die Daten NICHT, es sei denn, Du siehst die erforderlichen wp-admin / FTP-Felder.

Das private Antwortformular sieht folgendermaßen aus:
versteckter Link

Klicke beim nächsten Antworten auf "I still need assistance".

Video:
versteckter Link

Beachte bitte, dass wir verpflichtet sind, diese Informationen auf jedem Ticket individuell anzufordern. Wir dürfen nicht auf Zugangsinformationen zugreifen, die nicht speziell auf diesem Ticket im privaten Antwortformular übermittelt wurden.

Mit freundlichen Grüßen
Andreas

Januar 25, 2026 um 13:36 #17760161

katrinW-5

Hallo Andreas,

du hast schon an der Seite gearbeitet.

Abgesehen von "category" läuft der Wechsel innerhalb des Kalenders mit dem Sprachumschalter nicht rund. Teilweise wechselt die URL nicht in die andere Sprache aber der Inhalt schon.

Danke für deine erneute Hilfe!

Januar 25, 2026 um 20:33 #17760488

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Auf WPML > String-Übersetzung wird dieser Slug anscheinend als kalender/kategorie registriert und zu calendar/category übersetzt.

Rufe ich das Archiv vom Backend aus auf, funktioniert es wie erwartet:
versteckter Link
versteckter Link

Das Problem scheint im Sprachumschalter von WPML zu entstehen und ich kann es auf einer Sandbox replizieren.

Ich bitte dich dazu um etwas Geduld, weil ich die Ursache dazu genauer untersuchen muss, bevor ich dieses Problem intern weiterleiten werde.

Januar 27, 2026 um 12:36 #17766960

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Das Problem mit dem Slug auf den Archivseiten der Veranstaltungen scheint nur dann aufzutreten, wenn unter Verwendung von "The Events Calendar" eine andere Standardsprache als Englisch in WPML verwendet wird.

Auch die Ausgangssprache der Kategorien scheint eine Rolle zu spielen.

Ist die Standardsprache in WPML nicht "Englisch" und die Ausgangssprache der Kategorie ist "Englisch", dann wird bei Verwendung des Sprachumschalters nur der Teil /kategorie nicht in der URL übersetzt.

Ist die Ausgangssprache der Kategorie ebenfalls nicht "Englisch", wird der Slug /kalender nicht übersetzt.

Bei meinem Test kann ich das Problem ansatzweise lösen, wenn ich Änderungen in der folgenden Dateien vornehme:

\wp-content\plugins\the-events-calendar\src\Tribe\Integrations\WPML\Category_Translation.php

und

\wp-content\plugins\the-events-calendar\src\Tribe\Integrations\WPML\Utils.php

Demnach muss das Problem im Code von The Events Calendar behoben werden.

Da ich bislang aber keinen zu 100% funktionierenden Workaround anbieten kann, möchte ich dich um etwas mehr Geduld bitten.

---

Ich werde das Problem zudem an unser Compatibility-Team weiterleiten.

Solltest du wünschen, dass ich dir dabei helfe, die erwähnte Anpassung auf deiner Website vorzunehmen, dann lass es mich bitte wissen.

Januar 28, 2026 um 16:46 #17771455

katrinW-5

Hallo Andreas,

ja das wäre toll, wenn du die Anpassung für mich machen würdest!

Vielen Dank!

Januar 28, 2026 um 18:14 #17771589

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Very well, but I would need FPT/SFT access for this purpose. Would this be possible?

If you are unsure about how to find those credentials, please consult your hosting support team.

The private reply form is enabled again.

I currently have a workaround available that needs to be integrated into "The Events Calender". It will make sure that the event category archive slus are translated.

Downside: Month and Day filters will work as expected, but in this case, the URL will fall back to the default slug in all languages. I am waiting for aproposal from our community team on this matter.

Further, this issue is clearly something that needs to be solved inside the code base of "The Events Calendar".

You are welcome to report my findings to their team.

This is the current workaround:

Issue:
The Events Calendar currently assumes English is the default language in get_active_locales() and also relies on the deprecated ICL_LANGUAGE_CODE constant. This leads to incorrect active locale lists and incorrect slug selection when the site's default language is not English.

Workaround:
1. To fix the CPT slug if site default language is non-English:
Inside \wp-content\plugins\the-events-calendar\src\Tribe\Integrations\WPML\Utils.php

Change the function get_active_locales() into:

public static function get_active_locales() {
		/** @var SitePress $sitepress */
		global $sitepress;

		if ( empty( $sitepress ) || ! method_exists( $sitepress, 'get_active_languages' ) ) {
			return [];
		}

		$locales       = [];
		$languages     = $sitepress->get_active_languages();
		$default_lang  = method_exists( $sitepress, 'get_default_language' )
			? $sitepress->get_default_language()
			: apply_filters( 'wpml_default_language', null );

		if ( empty( $languages ) || ! is_array( $languages ) ) {
			return [];
		}

		// Remove the *real* default language, not just 'en'
		if ( $default_lang && isset( $languages[ $default_lang ] ) ) {
			unset( $languages[ $default_lang ] );
		}

		foreach ( $languages as $language_definition ) {
			if ( ! empty( $language_definition['default_locale'] ) ) {
				$locales[] = $language_definition['default_locale'];
			}
		}

		return $locales;
	}

2. Fix the "category" slug translation
In \wp-content\plugins\the-events-calendar\src\Tribe\Integrations\WPML\Category_Translation.php

Change the function filter_tribe_events_category_slug() into:

public function filter_tribe_events_category_slug( $slug ) {
	/** @var SitePress $sitepress */
	global $sitepress;

	$tax_sync_options     = $sitepress->get_setting( 'taxonomies_sync_option' );
	$translate_event_cat  = ! empty( $tax_sync_options[ Tribe__Events__Main::TAXONOMY ] );
	$using_lang_query_var = (int) $sitepress->get_setting( 'language_negotiation_type' ) === 3;

	// If TEC shouldn't translate the base or WPML uses ?lang=, don't touch the slug.
	if ( ! $translate_event_cat || $using_lang_query_var ) {
		return $slug;
	}

	// WPML language codes.
	$current_lang = apply_filters( 'wpml_current_language', null );
	$default_lang = apply_filters( 'wpml_default_language', null );

	if ( ! $current_lang ) {
		$current_lang = $default_lang;
	}

	// In the default language, trust TEC's own slug ("category" or its localized form).
	if ( $current_lang === $default_lang ) {
		$remove_accents = apply_filters( 'tribe_events_remove_accents_in_category_slug', true );

		if ( $remove_accents ) {
			$slug = remove_accents( $slug );
		}

		return $slug;
	}

	// For non-default languages, use TEC's i18n bridge to look up the translated "category" slug.
	$locale  = $sitepress->get_locale( $current_lang );
	$slugs   = Tribe__Events__Integrations__WPML__Utils::get_wpml_i18n_strings( [ 'category' ], $locale );

	if ( ! empty( $slugs[0] ) ) {
		// Following TEC's own pattern, use the last translation if multiple exist.
		$slug = end( $slugs[0] );
	}

	$remove_accents = apply_filters( 'tribe_events_remove_accents_in_category_slug', true );

	if ( $remove_accents ) {
		$slug = remove_accents( $slug );
	}

	return $slug;
}

This will translate the event category archive slugs correctly in all languages.

get_active_locales() now:

- doesn’t assume 'en' is the default

- uses WPML’s get_default_language() / wpml_default_language

filter_tribe_events_category_slug():

- stops hardcoding 'category'

- uses wpml_current_language instead of ICL_LANGUAGE_CODE

- doesn’t touch the slug when TEC shouldn’t translate or ?lang= is used

Result
The archive URLs are now correct in all languages.

The month/day calendar filter:

- still works functionally (events are filtered correctly)

- but the visible “category” base slug is wrong.

Examples:
versteckter Link
versteckter Link
versteckter Link
versteckter Link

Januar 29, 2026 um 17:01 #17774860

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Hallo,

Die Änderungen müssen in The Events Calendar vorgenommen werden. Werden diese von deren Seite aus nicht integriert, würde ein Update des Plugins diesen Workaround überschreiben.

Bislang habe ich noch keine Rückmeldung von unserem Compatibility-Team dazu. Es ist möglich, dass unsere Entwickler das Team von "The Events Calendar" zu diesem Thema kontaktieren werden.

Ich habe den Workaround nun auf deiner Website integriert. Bitte testen ihn und lass mich wissen, ob es funktioniert.

Mit freundlichen Grüßen
Andreas

Januar 29, 2026 um 18:47 #17774993

katrinW-5

Hallo Andreas,

danke für deine Mühe. Es funktioniert leider nicht. Es läuft leider noch schlechter.

Wenn ich jetzt vom deutschen Kalender "/kalender/" in die Monatsansicht wechseln möchte, lande ich im englischen Kalender "/en/calendar/month/?is_single_instructor=1&page_id=18"

Der Wechsel zwischen den Sprachen funktioniert nicht mehr.

Kannst du den Code bitte wieder löschen!
Dann sind die englischen Namen im Pfad auf jeden Fall besser!

Dankeschön!

Januar 29, 2026 um 19:05 #17775000

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Bevor ich den Code entferne, möchte ich Folgendes erklären:

Der Workaround bezieht sich allein auf die Veranstaltungs-Kategorie-Archive:

Beispiele:
versteckter Link
versteckter Link

Wie man nun sehen kann, sind die URLs korrekt übersetzt.

Mit dem Monatsfilter funktioniert die Suche aktuell ebenfalls:
versteckter Link

Hier ein Beispiel im Englischen:
versteckter Link

Das ist nicht der deutsche Kalender. Es wird nur alleine der Teil "Kategorie" in der URL nicht übersetzt. Die Veranstaltung im Kalender ist allerdings die englische Version.

Auf den deutschen Kalendern sehe ich bei meinem Test die entsprechenden deutschen Veranstaltungen in der Monatsansicht.

Sollte ich die unerwartete Funktionsweise nicht korrekt erkannt haben, so sende mir bitte eine URL, auf der ich das Problem sehen kann.

Zusatz:
Ich warte hierzu noch auf Antwort unseres Compatilbity Teams, aber wie bereits gesagt, muss das Problem vom "The Events Calendar" Team behoben werden.

Januar 29, 2026 um 21:41 #17775261

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich habe nochmals getestet und stelle nun folgendes Problem fest:

Beispiel:
Man befindet sich auf /kalender/kategorie/schweigeretreats/ und wechselt zu Englisch. Dann landet man auf /en/calendar/category/silent-retreats/ was soweit korrekt ist.

Wechselt man nun zurück zu Deutsch, gelangt man zu versteckter Link was hier unerwartet ist.

Seltsamerweise funktionieren beide deutschen URLs und bilden die korrekten Veranstaltungen ab.

Ich bitte dich hierzu um etwas Geduld, bis ich eine Rückmeldung von unserem Compatilbity Team habe.

Januar 30, 2026 um 12:49 #17778208

katrinW-5

Ok, dann warte ich deine Rückmeldung noch ab und dokumentiere in der Zwischenzeit auf welche Probleme ich beim Sprachwechsel innerhalb des Kalenders stoße.

Vielen Dank!

Januar 30, 2026 um 17:52 #17779229

katrinW-5

Wenn ich beisielsweise vom englischsprachigen Kalender
/en/calendar/category/silent-retreats/ auf den Sprachumwechsler klicke, lande ich hier:
/calendar/category/schweigeretreats/
Der Inhalt ist aber auf deutsch.

Mein Problem von gestern kann ich nicht mehr nachvollziehen. Vielleicht ist das gelöst.

Ich warte also erst mal eure Rückmeldung ab.

Januar 30, 2026 um 18:41 #17779278

Andreas W.
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: America/Lima (GMT-05:00)

Ich finde aktuell leider keine komplette Lösung und warte auf Rückmeldung des Compatibility-Teams.

Vielen Dank für dein Verständnis und deine Geduld.