Liquid, JavaScript, Themes
ich möchte den Produkttitle übersetzen. Aber nicht alles.
Generelle Struktur ist
"Produkthersteller - Produktname - Produktdetail - Produkttyp"
Ich möchte nur den Produkttyp übersetzen und zwar automatisch. Produktyp wäre z.B Socks. In Deutsch Socken, in spanisch Calcetines usw. Es darf also nur das letzte Segment im Namen, getrennt mit "-" übersetzt sein.
Mein Ansatz ist folgender:
- Shop Metafield mit den Übersetzungen als JSON
- im Liquid den Namen aufteilen und nur das letzte Element (Socks) in abhängigkeit der shop.locale ersetzen
--> das funktioniert auch schon!
Ich denke aber, das geht besser. Das JSON hätte dann mind. 100 Einträge mit jeweils 16 Sprachen. Ich denke, dass ist bezüglich der Performance kritisch. oder?
Und das wäre nur der Produkttitle. Es wird sicher noch weitere Stellen geben, wo diese Logik benötigt wird.
Wie macht ihr das? Translate & Adapt hilft da leider nicht weiter.
Hey @dlandmann
Das scheint ein Limit der T&A App zu sein und du hast einen interessanten Ansatz ausprobiert, um das Problem zu lösen. Das Speichern der Übersetzungen als Metafeld im Shop ist eine Methode, um die Daten zentral zu halten. Allerdings hast du recht mit deinen Bedenken bezüglich der Performance bei einer großen Anzahl von Einträgen und Sprachen.
Anstatt ein großes JSON-Objekt für alle Übersetzungen zu haben, könntest du separate Metafelder für jeden Produkttyp erstellen. Das würde die Datenmenge reduzieren, die bei jeder Abfrage geladen wird. Allerdings könnte das die Verwaltung der Metafelder komplexer machen.
Oder anstatt die Übersetzung auf der Ebene des Produkttyps zu speichern, könntest du sie direkt auf der Produktniveau speichern. Das würde bedeuten, dass jedes Produkt sein eigenes Übersetzungsfeld hätte. Das könnte die Performance verbessern, da nur die benötigten Daten geladen werden, aber es könnte auch die Verwaltung komplizierter machen.
Vielleicht könnte man hier auch einen kleinen Übersetzungsdienst auf einem Server hosten, der API-Aufrufe akzeptiert. Dieser Dienst könnte ein Dictionary mit den benötigten Übersetzungen speichern und bei Bedarf darauf zugreifen. Das würde die Last von Shopify nehmen und dir mehr Kontrolle über die Daten und die Performance geben. Wenn du befürchtest, dass die Performance durch das Laden des JSON-Objekts beeinträchtigt wird, könntest du auch ein Caching-System implementieren. Das bedeutet, dass die Übersetzungen nur geladen werden, wenn sie benötigt werden, und danach für eine bestimmte Zeit im Cache gespeichert werden. Das würde die Anzahl der Abfragen reduzieren.
Es gibt auch mehrere Shopify-Apps, die Übersetzungsfunktionalitäten bieten, wie Translation Labs, Transcy, und Weglot. Es könnte eine App geben, die speziell für deinen Anwendungsfall entwickelt wurde. Es wäre eine Überlegung wert, den Shopify App Store zu durchsuchen und einige Apps zu testen.
Zusammenfassend gibt es mehrere Ansätze, wie du das Problem der Übersetzung in Shopify lösen könntest. Es hängt alles von deinen technischen Ressourcen und deinen spezifischen Anforderungen ab.
---
Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hi Gabe,
danke für deine Hinweise.
Ein extra Caching dafür würde ich gern verwerfen.
Das JSON Shop-Metafeld wird ca. 400 Einträge pro Sprache haben. In der Regel für zwei Sprachen - also 800 Einträge. Wenn es 10 Sprachen sind bedeutet das 4000 Einträge. Keine Ahnung, ob das zu viel ist?
Ich hab mal im Liquid (Dawn) die Anpassungen für den Produkt-Titel umgesetzt. Das betrifft:
- Produktdetailseite (main-product.liquid)
- Kategorieseite (card-product.liquid)
- Suche (predictive-search.liquid)
- Warenkorb (main-cat-items.liquid)
Das funktioniert prima!
Aber zum Beispiel im Checkout komme ich auf diese Art nicht dran. Wahrscheinlich wird es noch weitere Stellen geben, wo man es anpassen müsste. Ich bin mir echt unsicher, ob diese Lösung eine gute Lösung ist.
Gabe, kannst du sagen, wie die Liquid Abfrage die Performace des Gesamtshops belasten würde? Wie wird das ausgeliefert? Serverseitig oder Clientseitig?
Ein schneller Lighthouse Test zeigt bei der Performance einen Abfall von 100 auf 84. Mit meinem Dev-Shop mit nur 20 Einträgen im JSON-Metafeld, einmal mit Standard Dawn (100) und meiner Anpassung (84). Hier scheint aber schon was gecached zu werden. Bei zweiten Testlauf ist der Performance-Wert 90 und bei dritten Durchlauf dann sogar 96 und dann wieder 89 usw. Gibt es tiefere Details zu Liquid, Caching, Ausleiferung etc.?
Danke für deine weiteren Kommentare zum Thema. Ich denke, ich muss das anders lösen ...
Hey @dlandmann
Danke nochmal für die wichtigen Punkte aber zunächst ist es wichtig zu betonen, dass Shopify ein best-of-breed SaaS System ist, sprich, ziemlich robust, und während 4000 Einträge in einem JSON-Objekt wie viel erscheinen, ist dies für die meisten modernen Datenbanksysteme und Webtechnologien nicht übermäßig groß. Trotzdem können einige Anfragen insbesondere bei sehr hohem Traffic zu Verzögerungen führen. Meine erste Frage dazu; was für einen Traffic bekommt ihr derzeit oder erwartet ihr in der Zukunft?
Hier einige weitere Überlegungen und Antworten auf deine Fragen - so nach dem Spruch: why fix something if it ain't broken...
Performanz & Liquid:
Shopify Caching:
Lighthouse Scores:
Alternative Lösungen:
Checkout:
Insgesamt, obwohl 4000 Einträge in einem JSON-Objekt nicht unbedingt ein großes Problem darstellen, könnte die ständige Abfrage und Verarbeitung dieser Daten in Liquid die Performance beeinflussen. Das Auslagern dieser Daten in eine externe Datenbank oder das Speichern auf Produktebene könnten effektivere Lösungen sein. Es wäre auch ratsam, weitere Tests durchzuführen, insbesondere mit einer höheren Anzahl von Produkten und Einträgen, um ein besseres Bild von der tatsächlichen Performance zu erhalten.
Ein weiterer genereller Kommentar zu deinem derzeitigen Vorhaben und Zielsetzen als Shopify Partner, und ob du nicht deine wertvolle Zeit lieber in andere Dinge investieren solltest, wie die Sales und die Vermarktung des Geschäfts deiner Klienten:
Ich habe aber jetzt eine Frage an dich, denn du baust ja als Shopify Partner Shops für deine Klienten, wenn ich das richtig sehe? Kann es sein, dass ihr versucht an sehr vielen technischen Lücken im Shopify System zu basteln, oder scheinbar an was ihr als System-Lücken betrachtet? Was ist denn derzeit eure CSAT (satisfaction rate) mit dem derzeitigen Shopify System und was sind für euch die größten Probleme oder fehlende Features des Systems?
Musst du das wirklich? Eigentlich sind die Benchmarks die du oben bereits beschrieben hast kerngesund und best-of-breed. Gibt es hier wirklich so viel Nachholbedarf?
Roll with the punches - Versuchen das SaaS System an eure Bedürfnisse anzupassen - VERSUS - einfach mit den out-of-the-box Features des Systems zu arbeiten so wie sie sind und sich auf das Core Business konzentrieren:
Ist der Ansatz, sehr viel Zeit, Geld und harte Arbeit in solche technische Dinge zu investieren, wie du oben beschreibst, um das System an eure Grundbedürfnisse anzupassen, ein guter Ansatz? Oder wäre es nicht besser mit dem System zu arbeiten, so wie es out-of-the-box ist, und sich mehr auf die Kern-Geschäftsaktivitäten der Shops und Klienten zu konzentrieren - sprich, die Sales zu optimieren?
Ist es nicht wichtiger dass ein Shop anstatt 30 Bestellungen pro Monat, 30-130 Bestellung pro Tag anpeilt? Und wenn ja, erzielt man das mit technischen Know-How oder eher mit unternehmerischen Scharfsinn? Die Gefahr besteht immer, dass man sich sehr schnell mit den technischen Aspekte eines Shops und der Plattform verzetteln kann, und das führt dann meistens in eine Sackgasse, meiner Erfahrung nach.
Man kann sich sehr schnell in eine gewisse Psychologie des Frusts hineinsteigern
Ich sage das nur weil ich in den letzten Jahren mit sehr viele Partner und Händler hier in der Community gearbeitet habe, die sich immer mehr in eine Spirale des Frusts hineingesteigert haben weil Shopify eben nicht "dies oder nicht das hat" oder kann, je nach den eigenen Wertvorstellungen.
Die meisten dieser Stakeholders sind dann letztendlich (meiner Erfahrung nach) aus Shopify ausgestiegen und zu andere mehr lokalisierte Plattformen migriert, die weniger Features haben und wesentlich mehr Arbeitsintensiv sind, wie z. B. Shopware oder Woocommerce (die ständige Updates am laufenden Band verlangen). Das Problem hier war meistens dass man mit gewisse fixierten Erwartungen (fixed mindsets) zu Shopify kommt. Und das (gemischt mit einer Kultur der ständigen Unzufriedenheit mit solchen Dingen und Systeme) stellt keine guten Grundvoraussetzungen dar, um auf Shopify erfolgreich zu werden leider.
Das sind nur meine 2-Cent zu diesem Thema. Das heisst aber noch lange nicht, dass dies bei euch der Fall ist. Ich möchte nur, dass ihr super erfolgreich mit Shopify werdet. Dafür wird aber eine gewisses Growth Mindset vorausgesetzt, und nicht ein Fixed Mindset. Aber das weisst du ja bestimmt selber als erfahrener Experte! 😉
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Hi Gabe,
vielen Dank für deine ausführlichen Worte zum Thema.
Ja, du hast Recht. Wir migrieren gerade kleinere Shops nach Shopify, welche zuvor auf Magento liefen und eine Menge an Customisation hatten. Man tritt nun immer wieder in dieselbe Falle, diese "1000 Magento-Killer-Features" mit Gewalt nachzubauen. Sicher sollte und muss man da etwas aufräumen und Sachen neu bewerten und neu denken.
Das oben beschriebene Problem ist eher ein Internationalisierung-Problem. Wenn im Spanischen Markt das Wort "Socks" steht, bemängelt Google sofort "falsche Sprache" im Merchant-Center / Ads und sperrt die Anzeigen. Da wir für alle Länder Kampagnen fahren, sind die lokalisierten Produktnamen in der Tat sehr wichtig.
Es ist eigentlich eine normale (manuelle) initiale Übersetzung der Bestandsprodukte (>30k) und dann regelmäßig (täglich) die Neuprodukte. Eigentlich macht da meine Lösung gar keinen Sinn - bei jedem Aufruf die lokalisierung raussuchen und ersetzen. ...
Das einfachste ist wahrscheinlich, das letzte Segment des Produktnamens beim Import aus dem ERP abzutrennen und in ein Produkt-Metafeld zu schreiben. Und das dann einfach automatisch zu übersetzen oder direkt beim Import (via API Client) zu übersetzen.
Danke dir nochmals und Grüße, Dierk
Hallo Gabe,
ich hatte noch was vergessen. Als mögliche Lösung erwähnst du auch "Verwendung einer externen API".
Wie ist das genau gemeint? Meinst du die Verwendung der Google oder Deepl API?
Danke und Grüße
Hey @dlandmann
Ich habe jetzt "Verwendung einer externen API" nicht finden können. Meinst du folgendes?
Anstatt ein großes JSON-Objekt im Shop Metafield zu speichern, könntest du eine externe Datenbank in Betracht ziehen. Diese Datenbank könnte speziell für diese Übersetzungsaufgabe optimiert werden. Mit einer entsprechenden API könnten die notwendigen Daten schnell und effizient abgerufen werden.
Wenn ja, ich kann gerne Experten empfehlen die das mit dir ausbauen können! 😉
Gabe | Social Care @ Shopify
- War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen!
- Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung
- Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024