Navigation überspringen

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
- - - - - - -

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

Dieses Thema enthält 10 Antworten, hat 2 Stimmen.

Zuletzt aktualisiert von Andreas W. Vor 1 Jahr, 9 Monaten.

Assistiert von: Andreas W..

Autor Beiträge
August 10, 2023 um 2:54 pm #14183673

kevinK-41

1) Create a page with Elementor
2) Use a button with a anchor Links like #test
3) Create a Heading with #test as CSS ID
4) Translate with ATE

You will receive the anchor link as a string on ATE but if you translate it, then the CSS ID will no longer match and the link will not work as expected.

Manually adjusting the CSS ID is not a solution, as once we translate the content again with ATE it will be overwritten.

Feature: Make Elementor CSS ID of all widgets available on ATE

August 10, 2023 um 10:27 pm #14185273

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

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

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

Hallo,

Ich konsultiere hierzu aktuell den WPML Produktmanager und werde mich wieder melden, sobald ich von dort eine Rückmeldung habe.

Mit freundlichen Grüßen
Andreas

August 11, 2023 um 8:27 am #14186663

kevinK-41

Hallo

Ich habe einen Thread von deinem Kollegen Marcel hierzu gefunden und bin seinem Vorschlag, den er einem anderen Kunden gegeben hatte, gefolgt.

D.h., ich bin diesen Anweisungen gefolgt:
https://wpml.org/documentation/support/language-configuration-files/how-to-register-page-builder-widgets-for-translation/

Anstatt eines "widgets" habe ich direkt das "container" Element registriert. Das hat auch super funktioniert und ich kann nun die CSS IDs im Translation Manager übersetzen.

<wpml-config>
<elementor-widgets>
<widget name="heading">
<conditions>
<condition key="elType">container</condition>
</conditions>
<fields>
<field type="_element_id" editor_type="LINE">_element_id</field>
</fields>
</widget>
</elementor-widgets>
</wpml-config>

ABER .... jetzt habe ich plötzlich ein neues Problem. Die auf Englisch übersetzten Seiten werden nun mit deutschen Inhalten populiert. Soweit ich es erkennen kann, betrifft es ausschließlich die Überschriften (h1, h2 usw.)

Habt ihr eine Idee, woran das liegen könnte?

Schaut's euch selbst an:
versteckter Link

August 11, 2023 um 8:56 am #14187095

kevinK-41

- Habe den WPML Cache gelöscht aber ohne Ergebnis.
- Im Translation Manager wird mir alles als übersetzt angezeigt
- Es scheint nur die Seiten Home und Service zu betreffen, die ich zuvor manuell versucht hatte zu bearbeiten.

August 11, 2023 um 9:10 am #14187141

kevinK-41

... betrifft doch alle Seiten. "Überschriften" bzw. "Headlines" sind im Translation Manager nicht mehr zu finden.

August 11, 2023 um 10:02 am #14187687

kevinK-41

Ich glaub, ich erkenne nun die Ursache für den Bug. Beim Ändern der wpml-config.xml habe ich versehtlich widget name = "heading" dringelassen ...

Hab mir die Datei gerade via FTP angesehen aber sehe nicht, wo ich das korrigieren kann

August 11, 2023 um 3:03 pm #14189477

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

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

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

Hallo,

Vielen Dank, ich kann bestätigen, dass Dein Workaround funktioniert und freue mich zu hören, dass Du eine Lösung finden konntest.

Ich habe das Team darüber informiert und warte auf Rückmeldung.

Mit freundlichen Grüßen
Andreas

August 15, 2023 um 10:46 pm #14205603

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

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

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

Hallo,

Frage:
Ist es aus Deiner Sicht zwingend notwendig, dass diese Anker-URLs übersetzt werden?

Uns ist aufgefallen, dass das Übersetzen von solchen Anker-URLs in der Tat zu Problemen führen kann, wenn man den Inhalt automatisch mit einem Translation Engine übersetzt und auch Übersetzer ohne HTML/CSS Kenntnisse könnten hier irrtümlicherweise diese IDs falsch übersetzen.

Aus unserer Sicht würde es deshalb mehr Sinn ergeben, wenn man Button URLs die mit einem "#" beginnen, nicht mehr im Advanced Translation Editor verfügbar machen würde.

Unser Compatilbity Team bietet deshalb folgenden Workaround an, welchen ich bereits erfolgreich getestet habe.

Der Workaround:

Open the wp-content\plugins\sitepress-multilingual-cms\addons\wpml-page-builders\classes\Shared\st\compatibility\class-wpml-page-builders-register-strings.php file
Replace the WPML_Page_Builders_Register_Strings::register_strings_for_node() method with:

protected function register_strings_for_node( $node_id, $element, array $package ) {
	$strings = $this->translatable_nodes->get( $node_id, $element );
	foreach ( $strings as $string ) {

		// WPML Workaround for compsupp-6915
		if ($string->get_editor_type() == 'LINK') {
			// Check if it's a ID. If so, skip it
			$string_value = $string->get_value();
			if ( filter_var($string_value, FILTER_VALIDATE_URL) === false && strpos($string_value, '#') === 0 ) {
				continue;
			}				
		}

		$this->string_registration->register_string(
			$package['post_id'],
			$string->get_value(),
			$string->get_editor_type(),
			$string->get_title(),
			$string->get_name(),
			$this->string_location,
			$string->get_wrap_tag()
		);

		$this->string_location++;
	}
}

Go to the original page, do a small modification and save.

Ich berate mich mit dem Compatilbity Team aktuell noch dazu, ob dieser Workaround als Änderung in der kommenden Version von WPML integriert werden sollte oder nicht.

Solltest Du dem noch etwas hinzufügen wollen oder Hilfe bei der Anwendung des Workarounds benötigen, dann lass es mich bitte wissen.

Mit freundlichen Grüßen
Andreas

August 16, 2023 um 1:34 pm #14236243

kevinK-41

Hallo Andreas

Anker-URLs spielen bekanntlich eine sehr wichtige Rolle bei SEO. Deshalb achte ich auch penibel darauf, wie ich Anker-Links benenne.

Des Weiteren spielen die Anker-Links in jener Website eine wichtige Rolle in Sachen Usability. Deutschsprachige User sollen über einen Button ABC auf eine bestimmte Stelle innerhalb derselben Seite oder auf eine bestimmte Stelle auf einer anderen internen Seite springen können. Bleibt diese Funktion erhalten, wenn ein englischsprachiger User auf die EN-Version der Website kommt und die Anker-URLs + IDs nicht übersetzt sind? Es sieht nicht so aus. Stattdessen werden User beim Klick auf den Button mit dem deutschen Anker auf den Container mit der deutschen ID verwiesen.

Das mag beim Sprung innerhalb einer Seite ok sein. Nicht aber wenn ich von einer Seite auf eine andere Seite springen möchte.

Beispiel:

Seite A (DE) enthält einen Button mit der relativen URL "/dummy-seite/#abschnitt-xyz".
Seite B (DE) ist jene /dummy-seite/ und sie einen Container, in dem "abschnitt-xyz" als CSS ID vergeben ist.

Übersetzt man nun die Inhalte und lässt alles wie es ist, so würde der Link eben nicht mehr funktionieren. Was für SEO und Usability absoluter Mist ist.

Denn der Button auf Seite A (EN) müsste ja nun auf die relative URL "/en/dummy-page/#section-xyz verlinken und jener Abschnitt befindet sich nun auf /en/dummy-page/.

Das o.g. Code-Snippet finde ich nicht wirklich sexy.

August 16, 2023 um 11:37 pm #14241653

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

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

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

Hallo,

Zum Snippet:

Dieses Snippet entfernt den Anker Link von Advanced Translation Editor, damit keine Übersetzung stattfinden kann. Das ist wie gesagt ein Workaround, um das Problem aktuell zu umgehen.

Angenommen wir haben einen Anker #contact dann würde dieser dank diesem Snippet normalerweise auf allen Sprachen 1 zu 1 kopiert.

Das wäre demnach zu erwarte, da die CSS ID ebenso kopiert wird und es möglicherweise auch sehr kompliziert wäre, diese Einstellung für alle Widgets übersetzbar zu gestalten - das wäre im Grunde eher eine Aufgabe bei der wir die Unterstützung des Elementor Teams benötigen würden, da wir von unserer Seite aus keinen Einfluss auf diese Felder nehmen können.

WPML hängt nun vor dem kopierten Ancker Link die Site URL und das Sprachverzeichnis oder eine unterschiedliche Domain pro Sprache an und das funktioniert auf diese Weise eigentlich auch wie erwartet.

Es würde so aussehen:

versteckter Link
versteckter Link

oder

versteckter Link
versteckter Link

Es geht hierbei ja nur darum, dass Sektionen auf einer Seite verlinkt werden und diese Sektionen landen eigentlich auch nicht auf dem Google Index.

In Sache Usability ist das aus unserer Sicht ein Problem, denn die Benutzer der Website verwenden eigentlich sehr selten die Address-Leiste des Browser.

Das das nicht-übersetzen dieser Anker allerdings einen Nachteilen in Sachen SEO führe kann ist uns nicht bewusst gewesen.

Ich habe versucht dazu Informationen zu finden, aber bislang keine gefunden:
versteckter Link
versteckter Link

Hast Du dazu eventuelle eine Google Dokumentation bereit, die ich intern als Referenz verwenden kann?

Mit freundlichen Grüßen
Andreas

August 17, 2023 um 11:35 pm #14249141

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

Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch )

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

Hello,

We have found a new workaround for this topic:

1) Remove the previous workaround
2) Instead of using the CSS ID option, drag the "menu anchor" widget to the top of each section, and set the ID there
3) On ATE, translate this ID in both places (link field and menu anchor field)

This worked on my test site.

Could you please test this yourself and let me know if you have any questions?

Best regards
Andreas

Das Thema „[Feature Request] [Feature Request] Elementor – CSS ID is copied and not translatable with ATE“ ist für neue Antworten geschlossen.