{"_id":"560b63c53616ac17004f1ca8","category":{"_id":"560b5cd0c341310d00de2a02","project":"55a6e72e8cc73e0d00096635","version":"55a6e72f8cc73e0d00096638","__v":9,"pages":["560b629c3616ac17004f1ca3","560b63343bcbd80d0077d10a","560b637e5148ba0d009bd0d0","560b63c53616ac17004f1ca8","560b63dd5148ba0d009bd0d3","560b63f42d00ca0d00a1fdbf","560b64ee5148ba0d009bd0d5","5617054c7f74330d00dfd73c","561705cbbd70650d00977851"],"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-09-30T03:53:52.522Z","from_sync":false,"order":15,"slug":"internationalizationlocalization","title":"Internationalization/Localization"},"parentDoc":null,"project":"55a6e72e8cc73e0d00096635","version":{"_id":"55a6e72f8cc73e0d00096638","project":"55a6e72e8cc73e0d00096635","hasReference":false,"__v":29,"hasDoc":true,"createdAt":"2015-07-15T23:05:19.125Z","releaseDate":"2015-07-15T23:05:19.125Z","categories":["55a6e7308cc73e0d00096639","55b7ed07aea7c8190058badb","5604567c0c78b00d0039b191","5605e6f23a93940d002b3e4a","5605f2bba4574a0d00811365","5605f309a4574a0d00811366","5608e3b98aedf50d0004cf8f","5608e4318aedf50d0004cf90","5608e6b5a7cc2f0d00d9754d","5608e6d331beb60d001b6560","5608f879a7cc2f0d00d97580","560b097887b71d0d000d3bd9","560b13cbafa0990d00979545","560b5cbec341310d00de2a01","560b5cd0c341310d00de2a02","566a35b81e08750d00a0c49b","566a3e8503b4b20d00d02a4a","567889d307bf6a0d0083edc8","569c8b7c15bb390d00db6f9d","56b254dc65ddf50d0076ba8f","57a8ebc4cdeea20e001d2a63","57e48a4000c8680e00fae6e7","5808216773557d0f00a1e428","58105ad54a8aa50f00aa4cba","58105bf298aea40f00afa3ba","58105f548a4aed0f00d67536","581061b898aea40f00afa3be","584b3de7e5f3a42300df6ef7","596839a75965d400155bb750"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"__v":4,"user":"55a6caa022cfa321008e01d6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-09-30T04:23:33.112Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":5,"body":"[block:html]\n{\n  \"html\": \"The .json translation files have a straightforward structure of key-value pairs. Here is an example, from Stencil’s default en.json file:<br>\\n\\n<p></p><pre>\\\"welcome_back\\\": \\\"Welcome back, {name}\\\"</pre>\\n\\n\\nAbove, <span class=\\\"inline-code\\\">\\\"welcome_back\\\"</span> is an arbitrary key name for a welcome message. The string <span class=\\\"inline-code\\\">\\\"Welcome back, {name}\\\"</span> is its assigned value for English-language stores.<br><br>\\n\\nIf you design your theme’s storefront pages to refer to this message by its generic key name <span class=\\\"inline-code\\\">\\\"welcome_back\\\"</span>, they can pass its localized value in other languages, as that value is defined in each language’s <span class=\\\"inline-code\\\">.json</span> file.<br>\\n\\n<p></p>Key-value pairs are grouped into objects, as you can see in this longer example:<br>\\n\\n<p></p><pre>{\\n   \\\"header\\\": {\\n    \\\"welcome_back\\\": \\\"Welcome back, {name}\\\"\\n   },\\n   \\\"prelaunch\\\": {\\n    \\\"coming_soon\\\": \\\"Coming Soon\\\",\\n    \\\"intro\\\": \\\"This store will be launching shortly. Please visit again!\\\"\\n   },\\n   \\\"cart\\\": {\\n    \\\"items\\\": \\\"{NUM, plural, =0{(0 items)} one {(# item)} other {(# items)}}\\\",\\n    \\\"label\\\": \\\"Cart\\\",\\n    \\\"is_empty\\\": \\\"Your cart is empty\\\",\\n     \\\"coupon_code\\\": \\\"Coupon Code\\\",\\n    \\\"gift_certificate\\\": \\\"Gift Certificate\\\",\\n    \\\"freeshipping\\\": \\\"Free Shipping\\\",\\n    \\\"shipping_peritem\\\": \\\"Per Item Shipping\\\",\\n    \\\"shipping_estimator\\\": {\\n        \\\"add_info\\\": \\\"Add Info\\\",\\n        \\\"select_a_country\\\": \\\"Select a Country\\\",\\n        \\\"select_a_state\\\": \\\"Select a State\\\",\\n        \\\"estimate_shipping\\\": \\\"Estimate Shipping\\\"\\n    }\\n   },\\n}</pre>\"\n}\n[/block]","excerpt":"","slug":"localization-file-structure","type":"basic","title":"Localization File Structure"}

Localization File Structure


[block:html] { "html": "The .json translation files have a straightforward structure of key-value pairs. Here is an example, from Stencil’s default en.json file:<br>\n\n<p></p><pre>\"welcome_back\": \"Welcome back, {name}\"</pre>\n\n\nAbove, <span class=\"inline-code\">\"welcome_back\"</span> is an arbitrary key name for a welcome message. The string <span class=\"inline-code\">\"Welcome back, {name}\"</span> is its assigned value for English-language stores.<br><br>\n\nIf you design your theme’s storefront pages to refer to this message by its generic key name <span class=\"inline-code\">\"welcome_back\"</span>, they can pass its localized value in other languages, as that value is defined in each language’s <span class=\"inline-code\">.json</span> file.<br>\n\n<p></p>Key-value pairs are grouped into objects, as you can see in this longer example:<br>\n\n<p></p><pre>{\n \"header\": {\n \"welcome_back\": \"Welcome back, {name}\"\n },\n \"prelaunch\": {\n \"coming_soon\": \"Coming Soon\",\n \"intro\": \"This store will be launching shortly. Please visit again!\"\n },\n \"cart\": {\n \"items\": \"{NUM, plural, =0{(0 items)} one {(# item)} other {(# items)}}\",\n \"label\": \"Cart\",\n \"is_empty\": \"Your cart is empty\",\n \"coupon_code\": \"Coupon Code\",\n \"gift_certificate\": \"Gift Certificate\",\n \"freeshipping\": \"Free Shipping\",\n \"shipping_peritem\": \"Per Item Shipping\",\n \"shipping_estimator\": {\n \"add_info\": \"Add Info\",\n \"select_a_country\": \"Select a Country\",\n \"select_a_state\": \"Select a State\",\n \"estimate_shipping\": \"Estimate Shipping\"\n }\n },\n}</pre>" } [/block]