{"id":7372,"date":"2011-04-20T09:07:57","date_gmt":"2011-04-20T09:07:57","guid":{"rendered":"http:\/\/wpml.org\/?p=7372"},"modified":"2017-11-30T10:27:55","modified_gmt":"2017-11-30T10:27:55","slug":"shopp-multilingual-alpha-version","status":"publish","type":"post","link":"https:\/\/wpml.org\/zh-hans\/announcements\/2011\/04\/shopp-multilingual-alpha-version\/","title":{"rendered":"Shopp Multilingual Alpha Version"},"content":{"rendered":"<p><strong>After months of work, we&#8217;re finally ready with the first testing version of Shopp Multilingual. The plugin that allows running multilingual Shopp sites with WPML.<\/strong><\/p>\n<p>The plugin page includes usage instructions and the download link. In this post, I want to explain how it actually works.<\/p>\n<p>Running a multilingual e-commerce site is a bit of a challenge (as our colleagues who use other content management systems have long discovered). There are two contradicting requirements:<\/p>\n<ul>\n<li>Allow translation of everything, and keep different languages in different URLs<\/li>\n<li>Give customers a fully localized experience, from the public store pages until the private account pages<\/li>\n<li>Maintain a single DB of products and inventory<\/li>\n<\/ul>\n<p>To address these requirements, we use two different mechanisms in Shopp Multilingual.<\/p>\n<p>The WordPress pages are translated as individual pages, per language. This is how WPML normally works to allow maximum flexibility between different languages.<\/p>\n<p>The Shopp products and categories are translated with WPML&#8217;s String Translation mechanism. This means that a single product can be viewed in different languages. No matter in which language users order, it&#8217;s still the exact same product. There&#8217;s one inventory management and one tracking for products in any language.<\/p>\n<p>But, WPML&#8217;s String Translation is difficult to manage. It&#8217;s going to be painful to check which fields, for which products, are translated, missing or need update.<\/p>\n<p>The Shopp Multilingual plugin bridges this gap. It lists the products in WPML&#8217;s Translation Dashboard. You can choose which products to translate, to what languages and who will translate. This way, users don&#8217;t need to care what goes on behind the scenes.<\/p>\n<figure id=\"attachment_7369\" aria-describedby=\"caption-attachment-7369\" style=\"width: 300px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/wpml.org\/wp-content\/uploads\/2011\/02\/shopp_products.png\"><img decoding=\"async\" class=\"size-medium wp-image-7369\" title=\"shopp_products\" src=\"http:\/\/wpml.org\/wp-content\/uploads\/2011\/02\/shopp_products-300x170.png\" alt=\"\" width=\"300\" height=\"170\" srcset=\"https:\/\/wpml.org\/wp-content\/uploads\/2011\/02\/shopp_products-300x170.png 300w, https:\/\/wpml.org\/wp-content\/uploads\/2011\/02\/shopp_products-150x85.png 150w, https:\/\/wpml.org\/wp-content\/uploads\/2011\/02\/shopp_products.png 792w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-7369\" class=\"wp-caption-text\">Translating Shopp products<\/figcaption><\/figure>\n<h2>Localized Client Account Pages<\/h2>\n<p>For a fully multilingual e-commerce site, you need several building blocks:<\/p>\n<ul>\n<li>WordPress pages that include the special Shopp pages (<em>shop<\/em>, <em>cart<\/em>,\u00a0<em>checkout<\/em> and <em>account<\/em>)<\/li>\n<li>The Shopp products themselves<\/li>\n<li>The Shopp template files<\/li>\n<\/ul>\n<p>The template files display user&#8217;s accounts. WPML will set the client&#8217;s language according to the checkout language. However, in order to display in the right language, the PHP in the templates needs to be localization-ready.<\/p>\n<p>You need to wrap the texts in Shopp&#8217;s template files in GetText calls. First, copy the template files from Shopp to your theme (Shopp can do it for you). Then, tell Shopp that you&#8217;re using your local version of these templates. And finally, edit these templates and add GetText wrappings around all the texts.<\/p>\n<p>Now that these templates are part of your theme, use WPML&#8217;s <a href=\"\/?page_id=2717\">String Translation<\/a> mechanism to translate them.<\/p>\n<h2>Want to Get Started?<\/h2>\n<p>You&#8217;ll need to have the recent version of <strong>WPML<\/strong>, including the <strong>Translation Management<\/strong> and <strong>String Translation<\/strong> modules.<\/p>\n<p>Support for Shopp Multilingual went into the development version of Shopp. We recommend that you contact Shopp authors directly to obtain the most up-to-date version of <a href=\"http:\/\/shopplugin.net\">Shopp<\/a>.<\/p>\n<p>Once you have these, hop over to the <a title=\"Shopp Multilingual\" href=\"\/?page_id=6885\">Shopp Multilingual<\/a> page, grab the recent version, review any known issues and you can get started.<\/p>\n<p><strong>Let us know how it&#8217;s going!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>After months of work, we&#8217;re finally ready with th [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"ep_exclude_from_search":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-7372","post","type-post","status-publish","format-standard","hentry","category-announcements"],"_links":{"self":[{"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/posts\/7372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/comments?post=7372"}],"version-history":[{"count":8,"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/posts\/7372\/revisions"}],"predecessor-version":[{"id":1445621,"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/posts\/7372\/revisions\/1445621"}],"wp:attachment":[{"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/media?parent=7372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/categories?post=7372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpml.org\/zh-hans\/wp-json\/wp\/v2\/tags?post=7372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}