Çok Dilde Shopify'dan WordPress'e Geçiş Nasıl Yapılır?

Aylardır çok dilde bir Shopify mağazası kurmakla uğraşıyorsunuz. Ürün açıklamalarınız Fransızca, Almanca ve İspanyolca'ya çevrildi. Ödeme akışınız üç dilde de çalışıyor. Sonra daha fazla kontrol, daha iyi marjlar veya eklenti esnekliği için WordPress ve WooCommerce'e geçmeye karar veriyorsunuz.
Ürün verileri güzel bir şekilde aktarılıyor. Resimler de geliyor. Ama çevirileriniz? Onlar kayboluyor.
Bu, kimsenin sizi uyarmadığı çok dilde WordPress'e geçişin gizli maliyetidir. Shopify, çevirilerinizi kendi özel sistemine kilitler ve WordPress tamamen farklı bir mimari kullanır. Açık bir plan olmadan, zaten sahip olduğunuz şeyi yeniden inşa etmek için haftalar harcayacaksınız. Bu kılavuz size o planı veriyor.
Çok Dilde Geçişler Neden Bozulur (Ve Shopify Bunu Nasıl Kötüleştirir)
Platform geçişleri, tek dilli mağazalarda bile yeterince acı vericidir. Birden fazla dil eklerseniz, karmaşıklık katlanır. Temel neden mimaridir: Shopify ve WordPress, çevirileri temelde farklı şekillerde ele alır.
Shopify'ın Çeviri Modeli Duvarlarla Çevrili Bir Bahçedir
Shopify, çevirileri Translate and Adapt API aracılığıyla kaynaklara eklenmiş meta veriler olarak depolar. Her ürün, koleksiyon ve sayfanın Shopify'ın dahili kaynak kimliklerine bağlı çeviri girdileri vardır.
Cart2Cart, LitExtension gibi bir geçiş aracı veya bir CSV dışa aktarımı kullanarak mağazanızı dışa aktardığınızda, varsayılan dil içeriğini alırsınız. Çeviriler? Çoğu geçiş aracının tamamen göz ardı ettiği ayrı bir katmanda yaşarlar.
Gerçekte Dışa Aktarılanlar (Ve Kaybolanlar)
Tipik bir Shopify'dan WordPress'e geçiş aracının aktardıkları şunlardır:
| İçerik Türü | Aktarılır mı? | Çeviriler Aktarılır mı? |
|---|---|---|
| Ürün başlıkları ve açıklamaları | Evet | Hayır |
| Koleksiyon/kategori adları | Evet | Hayır |
| Blog gönderileri | Evet | Hayır |
| Sayfalar (Hakkında, İletişim) | Evet | Hayır |
| Tema dizeleri (düğmeler, etiketler) | Hayır | Hayır |
| Ödeme/e-posta dizeleri | Hayır | Hayır |
| Gezinme menüleri | Kısmi | Hayır |
Desen açık. Varsayılan dil içeriğiniz geçirilir. Çevirileriniz geçirilmez. Ve bunları manuel olarak çıkarsanız bile, Shopify çevirilerini doğrudan WordPress'e yapıştıramazsınız. Sistemler kelimenin tam anlamıyla farklı diller konuşuyor.
Shopify Dillerini WordPress Çeviri Dosyalarına Eşleme
Yeniden inşa etmeye başlamadan önce, WordPress'in çok dilli içeriği nasıl ele aldığını anlamanız gerekir. Çoğu geçiş kılavuzunun yetersiz kaldığı nokta burasıdır.
Gettext Sistemini Anlamak
WordPress, Gettext yerelleştirme sistemini kullanır. Çevirileri bir veritabanı katmanında depolamak yerine, insan tarafından okunabilir .po dosyalarından derlenmiş statik ikili dosyaları (.mo dosyaları) okur.
Bir .po dosyası şöyle görünür:
msgid "Add to Cart"
msgstr "Ajouter au panier"
msgid "Search results for %s"
msgstr "Résultats de recherche pour %s"
Her WordPress teması ve eklentisi, çevrilebilir tüm dizeleri içeren bir .pot şablon dosyasıyla birlikte gelir. Her dil için bir .po dosyası oluşturur, çevirileri doldurur, .mo olarak derler ve doğru dizine bırakırsınız.
Shopify çevirilerinizin eşlenmesi gereken sistem budur.
Dil Kodu Uyuşmazlığı Sorunu
Shopify, IETF dil etiketlerini (en, fr, de) kullanır. WordPress, bölge varyantlarına sahip yerel kodları (fr_FR, de_DE, es_ES) kullanır. Geçiş sırasında, her Shopify dilini doğru WordPress yerel ayarına eşlemeniz gerekir. Bunu yanlış yapmak, WordPress'in çeviri dosyalarınızı bulamaması anlamına gelir.
İnsanları tökezleten yaygın eşlemeler:
- Shopify
pt, WordPresspt_PT(Portekiz) veyapt_BR(Brezilya) ile eşlenir - birbirinin yerine kullanılamaz - Shopify
zh-CN, WordPresszh_CNile eşlenir, ancak Shopifyzh-TW,zh_TWile eşlenir - Shopify
nb(Norveç Bokmal), WordPressnb_NOile eşlenir
.po ve .mo dosyalarınıza WordPress yerel ayar koduyla ad verin: themename-fr_FR.po, woocommerce-de_DE.mo. Yanlış bir kod, WordPress'in dosyayı sessizce yok sayması anlamına gelir.
Adım Adım Çok Dilde WordPress Geçiş İş Akışı
Shopify'dan WordPress'e geçiş sırasında çevirilerinizi korumak için somut iş akışı şöyledir.
Adım 1: Shopify Çevirilerinizi Dışa Aktarın ve Denetleyin
WordPress'e dokunmadan önce, Shopify'dan her şeyi çıkarın. Çevirilerinizi yapılandırılmış dosyalara çekmek için Shopify Admin API'sini veya Shopify Translate CSV Export gibi bir aracı kullanın.
# Using Shopify CLI to export translations
shopify app translate export --locale fr
shopify app translate export --locale de
shopify app translate export --locale es
Dışa aktarmaları denetleyin. Dil başına kaç dizeniz olduğunu sayın. WordPress'te CMS'niz veya çok dilli eklentiniz tarafından işlenen ürün içeriği çevirileri ile .po dosyaları tarafından işlenen tema/UI dizesi çevirilerinin hangileri olduğunu belirleyin.
Adım 2: WordPress ve WooCommerce Dil Yapınızı Kurun
Yeni WordPress kurulumunuzda, herhangi bir içerik içe aktarmadan önce dil altyapınızı yapılandırın.
- Ayarlar > Genel'e gidin ve site dilinizi ayarlayın
- Ayarlar > Genel > Site Dili aracılığıyla her hedef dil için dil paketleri yükleyin
- Çeviri dizini yapısını oluşturun:
/wp-content/languages/
/wp-content/languages/plugins/
/wp-content/languages/themes/
Ürün içeriği çevirileri (başlıklar, açıklamalar) için WPML veya Polylang gibi çok dilli bir içerik eklentisine ihtiyacınız olacak. Ancak tema ve eklenti UI dizeleri (düğmeler, etiketler, hata mesajları ve ödeme akışı) için statik .po/.mo dosyaları istersiniz. Bu, eklenti şişkinliğinden kaçınan bulut tabanlı yaklaşımdır.
Adım 3: Çevirilerinizi PO Formatına Dönüştürün
Shopify tema dizesi çevirilerinizin Gettext .po formatına dönüştürülmesi gerekir. Geçişin teknik hale geldiği yer burasıdır.
Shopify çevirileriniz JSON veya CSV formatındaysa, bunları bir komut dosyası veya araç kullanarak .po'ya dönüştürebilirsiniz. Anahtar, her kaynak dizesini bir msgid/msgstr çiftiyle eşlemektir:
import csv
with open('shopify_translations_fr.csv', 'r') as infile, \
open('theme-fr_FR.po', 'w') as outfile:
outfile.write('msgid ""\nmsgstr ""\n')
outfile.write('"Language: fr_FR\\n"\n\n')
reader = csv.DictReader(infile)
for row in reader:
outfile.write(f'msgid "{row["key"]}"\n')
outfile.write(f'msgstr "{row["translation"]}"\n\n')
Bu size bir başlangıç noktası verir, ancak yeni WordPress temanız ve WooCommerce kurulumunuzda Shopify'da bulunmayan yüzlerce dize olacaktır. Çevreleyen kod bağlamı farklı olduğundan, WooCommerce için bir Shopify "Sepete Ekle" çevirisini yeniden kullanamazsınız. WooCommerce dizesi Add to cart ("c" küçük harf) olabilir veya ürün adı için bir %s değişkeni içerebilir.
İşte çoğu insanın takıldığı yer burası. Shopify'dan kısmi çevirileriniz ve çevrilmemiş WordPress'e özgü dizelerin büyük bir boşluğu var.
Yeniden Başlamadan Boşlukları Nasıl Çevirirsiniz?
İyi haber: 5.000 WooCommerce dizesini elle çevirmeniz gerekmiyor. Kötü haber: Bunları da atlayamazsınız, aksi takdirde mağazanız Fransızca başlıklar ve İngilizce hata mesajlarının rahatsız edici bir karışımını gösterecektir.
Tema ve Eklenti Dizeleri Hala Çeviriye İhtiyaç Duyuyor
WordPress temanızın kendi .pot dosyası vardır. WooCommerce'in kendi dosyası var. Yüklediğiniz her eklentinin (ödeme ağ geçitleri, gönderim hesaplayıcıları, form oluşturucular) çevrilebilir dizeleri vardır. Bunlar Shopify mağazanızda yoktu.
En hızlı yaklaşım, bu büyük .po dosyalarını dize dize yerine toplu olarak çevirmektir. Temanızın .pot dosyasını yükleyin, hedef dili seçin ve yapay zekanın zor işi yapmasına izin verin.
Büyük WooCommerce Dosyalarını Toplu Olarak Çevirme
WooCommerce'in dil dosyası çok büyük. Sepet mesajlarından vergi hata kodlarına kadar her şeyi kapsayan binlerce dizeyle, herhangi bir geçişteki en büyük çeviri görevidir. SimplePoTranslate, bunu Akıllı Toplu İşleme yoluyla ele alır - aşırı büyük dosyaları güvenli parçalara ayırır, bunları paralel olarak işler ve sonuçları tek bir temiz dosyada birleştirir.
Kritik ayrıntı: çevrilmiş dosyalarınız, her kod değişkenini kaynakta göründüğü gibi tam olarak korumalıdır. Bir WooCommerce e-posta şablonundaki bir %s yer tutucusu, çeviri sırasında bir boşluk eklenemez veya bir konum değiştirilemez. Sözdizimi kilitlemenin bozuk değişkenlerin üretim mağazanıza ulaşmasını engellediği yer burasıdır.
SimplePoTranslate'in Çoklu Format Çıktısı ile tek bir ZIP indirmesinde .po, .mo, .json, .php ve .xliff dosyaları elde edersiniz. Bu, özellikle geçiş sırasında kullanışlıdır, çünkü WordPress yığınınızın farklı bölümleri çevirileri farklı formatlarda tüketebilir. Temanız .mo dosyalarını okur. Başsız bir ön uç .json'a ihtiyaç duyabilir. Özel bir entegrasyon .xliff bekleyebilir. Tek bir çeviri çalıştırması hepsini kapsar.
En Yaygın Üç Geçiş Çeviri Hatasından Kaçınma
Doğru iş akışı olsa bile, deneyimli geliştiricileri hazırlıksız yakalayan platform geçişlerine özgü tuzaklar vardır.
İşlem E-postalarındaki Bozuk Değişkenler
WooCommerce işlem e-postaları yer tutucularla yoğundur: {order_number}, {customer_name}, %1$s, %2$s. Çeviri işleminiz bunlardan birini bile bozarsa, müşteriler tam anlamıyla "Merhaba {customer_name}" gibi e-postalar alır veya daha kötüsü, verileri değiştirilmiş e-postalar alır.
Dağıtmadan önce çevrilmiş dosyalarınızı her zaman kaynak .pot'a göre doğrulayın. Poedit gibi araçlar yer tutucu uyuşmazlıklarını işaretleyecek ve sözdizimi kilitlemeye sahip bulut tabanlı çevirmenler bu türden bir hatayı tamamen ortadan kaldıracaktır.
Eksik Çoğul Kuraları
Shopify, çoğulları basitçe ele alır. WordPress Gettext, dile göre değişen karmaşık çoğul biçimlerini destekler. Rusça'da üç çoğul biçimi vardır. Arapça'da altı tane var. Çevrilmiş .po dosyanız doğru Plural-Forms başlığını ve eşleşen msgstr[0], msgstr[1], msgstr[2] girdilerini içermiyorsa, WordPress çevrilmemiş dizeye geri döner.
# Correct Russian plural forms header
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : "
"n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
msgid "%s item"
msgid_plural "%s items"
msgstr[0] "%s товар"
msgstr[1] "%s товара"
msgstr[2] "%s товаров"
Bu, Shopify'ın düşünmenizi asla gerektirmediği bir şeydir. WordPress'te önemlidir.
Eklenti Değişikliklerinden Sonra Sahipsiz Dizeler
Shopify'dan geçiş yaptığınızda, sadece platformları değiştirmiyorsunuz. Tüm bir eklenti ekosistemini değiştiriyorsunuz. Shopify ödeme ağ geçidiniz WooCommerce Payments veya Stripe for WooCommerce oluyor. İnceleme sisteminiz bir WordPress eklentisi oluyor. Her değişiklik, yeni çevrilebilir dizeler sunar ve eski çevirileri geçersiz kılar.
Geçiş sonrası yüklediğiniz her eklentinin bir kontrol listesini oluşturun ve her birinin /wp-content/languages/plugins/ içinde karşılık gelen çevrilmiş bir .mo dosyasına sahip olduğunu doğrulayın. Tek bir eklentinin bile eksik olması, müşterilerinizin aksi takdirde çevrilmiş bir arayüzün ortasında İngilizce dizeler görmesi anlamına gelir.
WordPress'te Çok Dilde Mağazanızı Başlatın
Çok dilde bir WordPress geçişi sadece bir veri aktarımı değildir. Mağazanızın uluslararası müşterilerle nasıl iletişim kurduğunun yeniden mimarisidir. Bunu doğru yapan mağazalar, İngilizce olmayan pazarlarda daha yüksek dönüşüm oranları görürler, çünkü deneyim yamalı olmaktan ziyade yerel gibi hissettirir.
İş akışı basittir: Shopify çevirilerinizi dışa aktarın, bunları WordPress yerel ayar kodlarıyla eşleyin, .po formatına dönüştürün, boşlukları toplu AI çevirisiyle doldurun, değişkenlerinizi doğrulayın ve statik .mo dosyalarını dağıtın. Veritabanı şişkinliği yok. Çalışma zamanı çeviri yükü yok. Sadece hızlı, güvenilir, çok dilde ticaret.
Çevrilmemiş binlerce WooCommerce dizesiyle bir geçişle karşı karşıyaysanız, SimplePoTranslate'in büyük dosya yerelleştirmesine yaklaşımı size haftalarca süren manuel çalışmadan kurtarabilir.
Geçişten sonra WooCommerce mağazanızı çevirmeye hazır mısınız? SimplePoTranslate'i ücretsiz deneyin - kredi kartı gerekmez. .pot dosyanızı yükleyin ve dakikalar içinde üretime hazır çeviriler alın.