CINXE.COM

Localization & Internationalization | Jackrabbit Design

<!DOCTYPE html> <html lang="en-US" prefix="og: http://ogp.me/ns#"> <head> <meta charset="utf-8" /> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-K2K5MRK');</script> <!-- End Google Tag Manager --> <!-- ==================================================== 33+, 3333 '3333 :333: ,;';, 3333; 3333 '33333333+ ,3333333333,:3333 33333 ,333333'+333 33333+` .33333333 3333: .3333` .3333' 33333 ;3333 3333: 3333+ 33333 3333+ ,3333 ;3333 3333 .3333 3333' +3333 33333 33333 `3333 3333+ +3333 3333 33333 333333;;'33333+ 33333 3333 33333333 +. ;33333 +333333333: +3+' Website created by Jackrabbit | jumpingjackrabbit.com ===================================================== --> <meta name="MSSmartTagsPreventParsing" content="true" /><!--[if lte IE 9]><meta http-equiv="X-UA-Compatible" content="IE=Edge"/><![endif]--> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Localization &amp; Internationalization | Jackrabbit Design</title> <link type="text/plain" rel="author" href="/authors.txt" /> <link type="image/x-icon" rel="shortcut icon" href="/favicon.ico" /> <!-- Search Engine Optimization by Rank Math - https://rankmath.com/ --> <meta name="description" content="Explore the differences between internationalization and localization for WordPress themes. Learn best practices for string translation and handling context."/> <meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/> <link rel="canonical" href="https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Localization &amp; Internationalization | Jackrabbit Design" /> <meta property="og:description" content="Explore the differences between internationalization and localization for WordPress themes. Learn best practices for string translation and handling context." /> <meta property="og:url" content="https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/" /> <meta property="og:site_name" content="Jackrabbit Design" /> <meta property="og:updated_time" content="2024-11-11T15:16:04-05:00" /> <meta property="og:image" content="https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg" /> <meta property="og:image:secure_url" content="https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg" /> <meta property="og:image:width" content="1480" /> <meta property="og:image:height" content="540" /> <meta property="og:image:alt" content="Image of map with colorful lines of code scattered throughout" /> <meta property="og:image:type" content="image/jpeg" /> <meta property="article:published_time" content="2024-11-01T13:51:39-04:00" /> <meta property="article:modified_time" content="2024-11-11T15:16:04-05:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Localization &amp; Internationalization | Jackrabbit Design" /> <meta name="twitter:description" content="Explore the differences between internationalization and localization for WordPress themes. Learn best practices for string translation and handling context." /> <meta name="twitter:image" content="https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg" /> <script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.jumpingjackrabbit.com/#organization","name":"JRD Template"},{"@type":"WebSite","@id":"https://www.jumpingjackrabbit.com/#website","url":"https://www.jumpingjackrabbit.com","name":"Jackrabbit Design","publisher":{"@id":"https://www.jumpingjackrabbit.com/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg","url":"https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg","width":"1480","height":"540","caption":"Image of map with colorful lines of code scattered throughout","inLanguage":"en-US"},{"@type":"WebPage","@id":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/#webpage","url":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/","name":"Localization &amp; Internationalization | Jackrabbit Design","datePublished":"2024-11-01T13:51:39-04:00","dateModified":"2024-11-11T15:16:04-05:00","isPartOf":{"@id":"https://www.jumpingjackrabbit.com/#website"},"primaryImageOfPage":{"@id":"https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/#author","name":"admin_jackrabbit","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/946530a490f95581c6169d4b5deb10f9?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/946530a490f95581c6169d4b5deb10f9?s=96&amp;d=mm&amp;r=g","caption":"admin_jackrabbit","inLanguage":"en-US"},"sameAs":["https://jumpingjackrabbit.com"],"worksFor":{"@id":"https://www.jumpingjackrabbit.com/#organization"}},{"@type":"BlogPosting","headline":"Localization &amp; Internationalization | Jackrabbit Design","keywords":"localization","datePublished":"2024-11-01T13:51:39-04:00","dateModified":"2024-11-11T15:16:04-05:00","author":{"@id":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/#author","name":"admin_jackrabbit"},"publisher":{"@id":"https://www.jumpingjackrabbit.com/#organization"},"description":"Explore the differences between internationalization and localization for WordPress themes. Learn best practices for string translation and handling context.","name":"Localization &amp; Internationalization | Jackrabbit Design","@id":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/#richSnippet","isPartOf":{"@id":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/#webpage"},"image":{"@id":"https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/#webpage"}}]}</script> <!-- /Rank Math WordPress SEO plugin --> <link rel='stylesheet' id='wp-block-library-css' href='https://www.jumpingjackrabbit.com/wp-includes/css/dist/block-library/style.min.css?ver=6.6.1' type='text/css' media='all' /> <style id='safe-svg-svg-icon-style-inline-css' type='text/css'> .safe-svg-cover{text-align:center}.safe-svg-cover .safe-svg-inside{display:inline-block;max-width:100%}.safe-svg-cover svg{height:100%;max-height:100%;max-width:100%;width:100%} </style> <style id='rank-math-toc-block-style-inline-css' type='text/css'> .wp-block-rank-math-toc-block nav ol{counter-reset:item}.wp-block-rank-math-toc-block nav ol li{display:block}.wp-block-rank-math-toc-block nav ol li:before{content:counters(item, ".") ". ";counter-increment:item} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='style-css' href='https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/css/style.css?v=102830&#038;ver=6.6.1' type='text/css' media='all' /> <script type="text/javascript" src="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/js/jquery.js?ver=1.0.0" id="jquery-js"></script> <link rel="https://api.w.org/" href="https://www.jumpingjackrabbit.com/wp-json/" /><link rel='shortlink' href='https://www.jumpingjackrabbit.com/?p=4496' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.jumpingjackrabbit.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.jumpingjackrabbit.com%2Fblog-post%2Flocalization-internationalization%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.jumpingjackrabbit.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.jumpingjackrabbit.com%2Fblog-post%2Flocalization-internationalization%2F&#038;format=xml" /> <!-- Analytics by WP Statistics v14.10.2 - https://wp-statistics.com/ --> <link rel="icon" href="https://www.jumpingjackrabbit.com/wp-content/uploads/2023/03/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.jumpingjackrabbit.com/wp-content/uploads/2023/03/cropped-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.jumpingjackrabbit.com/wp-content/uploads/2023/03/cropped-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.jumpingjackrabbit.com/wp-content/uploads/2023/03/cropped-favicon-270x270.png" /> </head> <body class="blog-post-template-default single single-blog-post postid-4496 chrome-537 chrome"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K2K5MRK" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <noscript aria-hidden="true"><div style="text-align:center;background-color:#000;color:#fff;padding:5px;">It looks like JavaScript is disabled in your browser. Please enable JavaScript to view the full site.</div></noscript> <div class='site-wrap'> <header id="header" role="banner" class='flex-justify-center-wrap'> <a id="skipnav" href="#body-content">Skip to Main Content</a> <div class='logo'> <a href='https://www.jumpingjackrabbit.com'> <img src='https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/jrd-logo-white.svg' alt='Jackrabbit Design'> </a> </div> <button class='menu-toggle'>Toggle Menu</button> <nav id='main-nav' aria-label='Main'> <ul id="menu-main-menu" class="menu"><li id="main-menu-menu-item-181" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-181"><a href="https://www.jumpingjackrabbit.com/about-jackrabbit/" data-link="active">About</a><button id="main-menu-menu-item-181B" class="menu-toggle-button" aria-controls="main-menu-menu-item-181C" data-toggle="true" aria-expanded="false"><span class="sr-only">Show submenu for "About"</span></button> <div class='sub-menu-wrap'><ul id="main-menu-menu-item-181C" class="sub-menu" aria-label="Sub Menu for " aria-hidden="true"> <li id="main-menu-menu-item-185" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-185"><a href="https://www.jumpingjackrabbit.com/about-jackrabbit/the-rabbits/" data-link="active">The Rabbits</a></li> <li id="main-menu-menu-item-1054" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1054"><a href="https://www.jumpingjackrabbit.com/about-jackrabbit/process/" data-link="active">Process</a></li> <li id="main-menu-menu-item-189" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189"><a href="https://www.jumpingjackrabbit.com/about-jackrabbit/philanthropy/" data-link="active">Philanthropy</a></li> <li id="main-menu-menu-item-186" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-186"><a href="https://www.jumpingjackrabbit.com/about-jackrabbit/gigs/" data-link="active">Gigs</a></li> </ul></div> </li> <li id="main-menu-menu-item-187" class="double nolink menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-187"><a href="#" aria-label="This link goes no where and is only for presentation" data-link="nonactive">Capabilities</a><button id="main-menu-menu-item-187B" class="menu-toggle-button" aria-controls="main-menu-menu-item-187C" data-toggle="true" aria-expanded="false"><span class="sr-only">Show submenu for "Capabilities"</span></button> <div class='sub-menu-wrap'><ul id="main-menu-menu-item-187C" class="sub-menu" aria-label="Sub Menu for Capabilities" aria-hidden="true"> <li id="main-menu-menu-item-519" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-519"><a href="https://www.jumpingjackrabbit.com/capabilities/advertising/" data-link="active">Advertising</a></li> <li id="main-menu-menu-item-517" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-517"><a href="https://www.jumpingjackrabbit.com/capabilities/animation/" data-link="active">Animation</a></li> <li id="main-menu-menu-item-526" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-526"><a href="https://www.jumpingjackrabbit.com/capabilities/brand-strategy/" data-link="active">Brand Strategy</a></li> <li id="main-menu-menu-item-520" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-520"><a href="https://www.jumpingjackrabbit.com/capabilities/direct-marketing-design/" data-link="active">Direct Marketing</a></li> <li id="main-menu-menu-item-513" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-513"><a href="https://www.jumpingjackrabbit.com/capabilities/email-marketing/" data-link="active">Email Marketing</a></li> <li id="main-menu-menu-item-516" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-516"><a href="https://www.jumpingjackrabbit.com/capabilities/illustration/" data-link="active">Illustration</a></li> <li id="main-menu-menu-item-525" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-525"><a href="https://www.jumpingjackrabbit.com/capabilities/logo-brand-identity/" data-link="active">Logo &#038; Brand Identity</a></li> <li id="main-menu-menu-item-521" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-521"><a href="https://www.jumpingjackrabbit.com/capabilities/marketing-collateral/" data-link="active">Marketing Collateral</a></li> <li id="main-menu-menu-item-512" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-512"><a href="https://www.jumpingjackrabbit.com/capabilities/packaging-design/" data-link="active">Packaging Design</a></li> <li id="main-menu-menu-item-190" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-190"><a href="https://www.jumpingjackrabbit.com/capabilities/photography/" data-link="active">Photography</a></li> <li id="main-menu-menu-item-514" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-514"><a href="https://www.jumpingjackrabbit.com/capabilities/presentation-design/" data-link="active">Presentation Design</a></li> <li id="main-menu-menu-item-515" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-515"><a href="https://www.jumpingjackrabbit.com/capabilities/social-media/" data-link="active">Social Media</a></li> <li id="main-menu-menu-item-524" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-524"><a href="https://www.jumpingjackrabbit.com/capabilities/user-experience-design/" data-link="active">User Experience Design</a></li> <li id="main-menu-menu-item-518" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-518"><a href="https://www.jumpingjackrabbit.com/capabilities/video/" data-link="active">Video</a></li> <li id="main-menu-menu-item-523" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-523"><a href="https://www.jumpingjackrabbit.com/capabilities/boston-web-design-development/" data-link="active">Web Design &#038; Development</a></li> </ul></div> </li> <li id="main-menu-menu-item-184" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-184"><a href="https://www.jumpingjackrabbit.com/work/" data-link="active">Work</a></li> <li id="main-menu-menu-item-183" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-183"><a href="https://www.jumpingjackrabbit.com/insights/" data-link="active">Insights</a></li> <li id="main-menu-menu-item-182" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-182"><a href="https://www.jumpingjackrabbit.com/contact/" data-link="active">Contact</a></li> </ul> </nav> </header> <div id="body-content" role="main"> <div class='wrap blog-wrap'> <p class='page-title'> Insights </p> <h1 class='page-headline orphan'> Localization &#038; Internationalization </h1> <div class='post-author'> <h2 class="author"> <a href='https://www.jumpingjackrabbit.com/rabbit/harrison-sabean/'> Harrison Sabean, Web Developer </a> </h2> <h2 class="author"> <a href='https://www.jumpingjackrabbit.com/rabbit/chris-kirk/'> Chris Kirk, Senior Web Developer </a> </h2> </div> <div class='blog-thumb'> <img width="1480" height="540" src="https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg" class="attachment-blog-single size-blog-single wp-post-image" alt="Image of map with colorful lines of code scattered throughout" decoding="async" fetchpriority="high" srcset="https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization.jpg 1480w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-300x109.jpg 300w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-1024x374.jpg 1024w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-768x280.jpg 768w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-1140x416.jpg 1140w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-570x208.jpg 570w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-750x274.jpg 750w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-1110x405.jpg 1110w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-555x203.jpg 555w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-744x271.jpg 744w, https://www.jumpingjackrabbit.com/wp-content/uploads/2024/11/Localization-and-Internationalization-752x274.jpg 752w" sizes="(max-width: 1480px) 100vw, 1480px" /> </div> <div class='content-main'> <p>In a digital world, reaching audiences on a global scale is a necessity for growth. However, there&#8217;s more to going global than simply putting your content out there; it&#8217;s about making sure your content can resonate with audiences anywhere in the world, regardless of what language they speak. Under normal circumstances, we&#8217;d simply call this <strong>translation</strong>, but it&#8217;s not so easy when we&#8217;re dealing with code. This is where <strong>internationalization</strong> and <strong>localization</strong> come into play.</p> <h3>What is internationalization?</h3> <p>Internationalization (abbreviated as <strong>i18n</strong>) is the process of developing or converting a WordPress theme so that it can be translated into other languages.</p> <h3>What is localization?</h3> <p>Localization (abbreviated as <strong>l10n</strong>) is the process of translating an internationalized theme to be viewed in other languages.</p> <h3>Wait, I thought this post was supposed to be about translation&#8230;</h3> <p>It is, but it also isn’t. Translation is the physical act of transposing a page, document, section, string of text, word, etc., to another language. <strong>It is largely a manual process, usually done by a professional translator</strong>, and not something that should/could be done by a machine-based translation service such as Google Translate.</p> <h3>Why not? I&#8217;ve used Google Translate plenty of times before!</h3> <p>While Google Translate is probably mostly fine for simple translations (i.e., finding the Spanish word for “cat” is simple to plug in), and will probably always yield the correct translation (by the way, the translation is “gato”).</p> <p>Where Google Translate fails is when it’s challenged with full sentences, paragraphs, complete documents, or anything larger than a small textual snippet. This isn’t to say Google Translate isn’t intelligent, because it is. When met with homonyms, it tries to interpret context clues around the word to guess what the new phrase should be, but as you can imagine, as most things in technology are, it’s largely imperfect. A sentence like “I was feeling rotten because my watch broke” could logically be misinterpreted as something like “I was touching decomposed because my observe is impoverished”.</p> <p>All this to say, a professional translator fluent in both languages they’re working with is a lot less prone to these pitfalls. Sure, they’re likely a lot more expensive and take a lot more time, but if translations need to be done, they should be done right.</p> <h3>I guess that makes sense. Talk more about the process.</h3> <p>Internationalizing and localizing are two separate processes that intertwine with each other. Internationalizing lies heavily on the developer while localizing is mostly done by a content manager through the CMS. Some form of internationalizing always needs to be done first.</p> <h3>I&#8217;m a developer. How do I start internationalizing my theme?</h3> <p>Probably the largest part of theme internationalization is string translation. Even on our more customizable sites, we always leave some kind of white text (hardcoded words or phrases) in our code. But if we’re i18n-ing our themes, those pieces of white text will not be localized unless we internationalize them.</p> <p>WordPress’s core includes many i18n and l10n functions that are moderately easy to implement. The two PHP functions you’ll be using most frequently are <code>__()</code> and <code>_e()</code>. The only difference between these two is that the former <strong>returns</strong> and the latter <strong>echos</strong>, much like <code>get_field()</code> and <code>the_field()</code>, respectively. Usage:</p> <pre><code><span class="var">$button_text</span> = <span class="fn">__( <span class="str">'This text will be returned.'</span></span>, <span class="str">'jrd'</span> <span class="fn">)</span>; <span class="echo">echo</span><span class="str"> "&lt;a href='#'&gt;<span class="var">$button_text</span>&lt;/a&gt;"</span>; <span class="fn">_e(</span><span class="str"> 'This text will be echoed.'</span>, <span class="str">'jrd'</span><span class="fn"> )</span>; </code></pre> <p>Notice that second argument – it’s there to provide a text domain, which allows WordPress to differentiate between your theme and all other themes, plugins, functions, etc. Technically these functions can be used without a second argument, but you probably wouldn’t want to, since there are thousands of other l10n-able strings in our standard sites, many of which are introduced by the core of WordPress itself.</p> <p>For more info, check out the WP Codex on <code><a href="https://developer.wordpress.org/reference/functions/__/" target="_blank" rel="noopener">__()</a></code> and <code><a href="https://developer.wordpress.org/reference/functions/_e/" target="_blank" rel="noopener">_e()</a></code>.</p> <p>Note that we’re only using simple strings for these two functions. There’s a different function for when you want to start introducing variables into strings. For that, we need to use another function…</p> <h3>Hold up, why can&#8217;t I just concatenate normally within the _e() function like:</h3> <pre><code><span class="echo">echo</span><span class="fn"> __read(</span><span class="str"> 'Read'</span>, <span class="str">'jrd'</span><span class="fn"> )</span> . <span class="var">$first_name</span> . <span class="fn">__( </span><span class="str">"'s bio"</span>, <span class="str">'jrd'</span> <span class="fn">)</span>;</code></pre> <p>This is better but also worse. English is among the only language that uses apostrophe-S to imply ownership and other languages might be structured very differently. For example, “Read Chris’s bio” in Spanish would translate roughly to “Lea la biografia de Chris”, which would translate back to English as “Read the bio of Chris”. This is just one example, but there are a lot more pitfalls like this.</p> <h3>Okay, then what&#8217;s the right way to do complex string localization?</h3> <p>For concatenation and interpolation of complex strings, we’d use a combination of <code>__()</code> and PHP’s core <a href="https://www.php.net/manual/en/function.sprintf.php" target="_blank" rel="noopener">sprintf()</a> function. Basic usage:</p> <pre><code><span class="echo">echo </span><span class="fn">sprintf( __( </span><span class="str">"Read %s's bio"</span>, <span class="str">'jrd'</span><span class="fn"> )</span>,<span class="var"> $first_name</span><span class="fn"> )</span>;</code></pre> <p>This registers one single string in the text domain to be localized and translated. Localizers (the people putting translations into the CMS) would change just one string, but moving the <code>%s</code> placeholder around to fit the structure of the language. For example, for Spanish, this could be localized to “<code>Lea la biografia de %s</code>”. This is also prefaced with a “<code>// translators:</code>” comment that describes the purpose of the placeholder(s) in the string.</p> <p>This can also be done with multiple placeholders.</p> <pre><code><span class="echo">echo</span> <span class="fn">sprintf( __(</span> <span class="str">"%1<span class="var">$s</span>'s favorite food is %2<span class="var">$s</span>"</span>, <span class="str">'jrd'</span> <span class="fn">)</span>, <span class="var">$first_name</span>, <span class="var">$favorite_food</span> <span class="fn">)</span>;</code></pre> <p>Note that in this example, an argument number was added to the placeholder. This is so we can move around placeholders as we need, to change the structure of the sentence. For example, this could be changed to something like “<code>%2$s is %1$s’s favorite food</code>”</p> <h3>Cool, what if the sentence structure depends on a variable being singular or plural, like &#8220;Chris has 2 pets&#8221; or &#8220;Nikki has 1 pet&#8221;?</h3> <p>Another WP function exists called <code><a href="https://developer.wordpress.org/reference/functions/_n/" target="_blank" rel="noopener">_n()</a></code> which, when coupled with <code>sprintf()</code>, registers and returns two different strings to be localized and translated. Usage:</p> <pre><code><span class="echo">echo</span><span class="fn"> sprintf( _n(</span><span class="str"> '%1$s has "%2$d pet"'</span>, <span class="str">'%1$s has "%2$d pets""</span>, <span class="var">$number_of_pets</span>, <span class="str">'jrd'</span><span class="fn"> )</span>,<span class="var"> $first_name</span>,<span class="var"> $number_of_pets</span><span class="fn"> )</span>;</code></pre> <p><code>_n()</code> takes four arguments: a string for when a variable is singular, a string for when it’s plural, the variable in question, and the text domain. All the same principles of <code>sprintf()</code> apply.</p> <h3>Unrelated: I learned about homonyms in grammar school. What a neat word!</h3> <p>Developers should also take into account the <em>context</em> of a particular word or phrase, and whether it can be misinterpreted another way. For instance, the word “post” could be interpreted as…</p> <ul> <li>(noun) an article or publication</li> <li>(noun) an upright stake in the ground</li> <li>(noun) the position that an employee is appointed</li> <li>(verb) the act of notifying, announcing, or submitting</li> <li>(prefix) after or subsequent</li> </ul> <p>To differentiate between these interpretations, we use <code>_x()</code>, which takes 3 arguments: the string, the context, and the text domain. To go with our above example, here’s how we’d use “Post” meaning to submit a comment</p> <pre><code><span class="echo">echo</span><span class="fn"> _x(</span><span class="str"> 'Post'</span>,<span class="str"> 'verb: send submission'</span>,<span class="str"> 'jrd'</span><span class="fn"> )</span>;</code></pre> <p>There aren’t any standards on how the context should be defined; only that it’s descriptive enough to allow the context to be clear.</p> <h3>Great, how can I get started?</h3> <p>Let&#8217;s get practical. Take WPML (WordPress Multilingual, <a href="https://wpml.org/" target="_blank" rel="noopener">https://wpml.org/</a>) as an example. With this plugin installed, you can take some initial steps to best configure how your pages are translated.</p> <h2>STEP-BY-STEP INSTRUCTIONS</h2> <ol> <li>During back-end development, the developer should ensure that all text strings/white text have proper localization placeholders to support translations.</li> <li>CMS text is translated in WordPress via the ACFML add-on. <ul> <li>This add-on should be installed and activated at the same time as WPML. The setup process walks you through which add-ons would be suitable for your site.</li> </ul> </li> <li>Include <code>do_action( ‘wpml_add_language_selector’ );</code> in your header.php to display the language selector.</li> </ol> <h3>HOW THE ACTUAL TRANSLATIONS ARE HANDLED:</h3> <ul> <li><strong>Strings (white text)</strong> <ul> <li>Any text that isn’t editable via the WordPress admin should be translatable via WPML’s String Translation, outlined above</li> <li>This includes all labels, custom post type info, etc.</li> </ul> </li> </ul> <ul> <li><strong>ACF</strong> <ul> <li>This includes all labels, custom post type info, etc.</li> <li>ACF Pro is already WPML compatible, as demonstrated <a href="https://wpml.org/plugin-functionality/custom-fields/" target="_blank" rel="noopener">here</a></li> <li>It relies on another plugin to support it, called <a href="https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/" target="_blank" rel="noopener">ACFML</a>, Advanced Custom Fields Multi-Language</li> <li>This plugin is available once a WPML account is on a paid tier</li> <li>For technical details, refer to <a href="https://wpml.org/documentation/" target="_blank" rel="noopener">WPML’s official documentation</a></li> </ul> </li> </ul> <ul> <li><strong>Gravity Forms</strong> <ul> <li>Similar to ACF, there’s a <a href="https://wpml.org/documentation/related-projects/gravity-forms-multilingual/" target="_blank" rel="noopener">support plugin</a> to assist these translations. Again, this can be added on during the setup wizard.</li> </ul> </li> </ul> <h3>In Conclusion</h3> <p>Investing in these practices will not only diversify your reach but will also assist in how users engage with your content. Localization and internationalization aren&#8217;t just principles of translation, they&#8217;re avenues that open the doors to meaningful connections at a global scale.</p> </div> <div class="blog-footer"> </div> <div class='continue'> <h4>Continue the Conversation</h4> <nav aria-label="Share content on social media"> <a aria-label="Twitter / X" target="_blank" href="https://twitter.com/intent/tweet?text=Localization &#038; Internationalization&url=https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/&via=jackrabbits"> <svg><use xlink:href="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_twitter"></use></svg> </a> <a aria-label="Facebook" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/"> <svg><use xlink:href="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_facebook"></use></svg> </a> <a aria-label="LinkedIn" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&url=https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/&title=Localization &#038; Internationalization&source=https://www.jumpingjackrabbit.com/blog-post/localization-internationalization/"> <svg><use xlink:href="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_linkedin"></use></svg> </a> </nav> </div> </div> </div> <!-- #body-content --> </div> <!-- .site-wrap --> <footer class='footer' id="footer"> <div class='footer--top flex-justify-center'> <a href='https://www.jumpingjackrabbit.com' class='home-link'>Jackrabbit Design</a> <span>333 Edge Hill Road, Milton, MA 02186</span> <span>617.298.6200</span> <div class='footer--social'> <nav aria-label="Social Media"> <a href='https://www.facebook.com/jackrabbitdesign' target='_blank' aria-label="Facebook (Opens in New Window)"> <svg class=''><title>Facebook</title><use xlink:href='https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_facebook'></use></svg> </a> <a href='https://www.linkedin.com/company/jackrabbit-design' target='_blank' aria-label="LinkedIn (Opens in New Window)"> <svg class=''><title>LinkedIn</title><use xlink:href='https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_linkedin'></use></svg> </a> <a href='https://www.instagram.com/jumpingjackrabbit' target='_blank' aria-label="Instagram (Opens in New Window)"> <svg class=''><title>Instagram</title><use xlink:href='https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_instagram'></use></svg> </a> <a href='https://vimeo.com/jackrabbitdesign' target='_blank' aria-label="Vimeo (Opens in New Window)"> <svg class=''><title>Vimeo</title><use xlink:href='https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/svg/social-sprites.svg#social_vimeo'></use></svg> </a> </nav> </div> </div> <div class='footer--nav'> <nav aria-label="Capabilities"> <ul id="menu-footer-menu" class=""><li id="menu-item-3888" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3888"><a href="https://www.jumpingjackrabbit.com/capabilities/advertising/">Advertising</a></li> <li id="menu-item-3889" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3889"><a href="https://www.jumpingjackrabbit.com/capabilities/animation/">Animation</a></li> <li id="menu-item-3890" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3890"><a href="https://www.jumpingjackrabbit.com/capabilities/brand-strategy/">Brand Strategy</a></li> <li id="menu-item-3891" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3891"><a href="https://www.jumpingjackrabbit.com/capabilities/direct-marketing-design/">Direct Marketing</a></li> <li id="menu-item-3892" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3892"><a href="https://www.jumpingjackrabbit.com/capabilities/email-marketing/">Email Marketing</a></li> <li id="menu-item-3893" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3893"><a href="https://www.jumpingjackrabbit.com/capabilities/illustration/">Illustration</a></li> <li id="menu-item-3894" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3894"><a href="https://www.jumpingjackrabbit.com/capabilities/logo-brand-identity/">Logo &#038; Brand Identity</a></li> <li id="menu-item-3895" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3895"><a href="https://www.jumpingjackrabbit.com/capabilities/marketing-collateral/">Marketing Collateral</a></li> <li id="menu-item-3896" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3896"><a href="https://www.jumpingjackrabbit.com/capabilities/packaging-design/">Packaging Design</a></li> <li id="menu-item-3897" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3897"><a href="https://www.jumpingjackrabbit.com/capabilities/presentation-design/">Presentation Design</a></li> <li id="menu-item-3898" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3898"><a href="https://www.jumpingjackrabbit.com/capabilities/social-media/">Social Media</a></li> <li id="menu-item-3899" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3899"><a href="https://www.jumpingjackrabbit.com/capabilities/user-experience-design/">User Experience Design</a></li> <li id="menu-item-3900" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3900"><a href="https://www.jumpingjackrabbit.com/capabilities/video/">Video</a></li> <li id="menu-item-3901" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3901"><a href="https://www.jumpingjackrabbit.com/capabilities/boston-web-design-development/">Web Design &#038; Development</a></li> <li id="menu-item-3902" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3902"><a href="https://www.jumpingjackrabbit.com/capabilities/photography/">Photography</a></li> </ul> </nav> </div> <div class='footer--bottom flex-justify'> <span>&copy; 2024 Jackrabbit Design</span> <a href='https://www.jumpingjackrabbit.com/privacy-policy/'>Privacy Policy</a> </div> <div id='jump-tracks' class='jrd-jump'> </div> </footer> <script type="text/javascript" id="wp-statistics-tracker-js-extra"> /* <![CDATA[ */ var WP_Statistics_Tracker_Object = {"requestUrl":"https:\/\/www.jumpingjackrabbit.com\/wp-json\/wp-statistics\/v2","ajaxUrl":"https:\/\/www.jumpingjackrabbit.com\/wp-admin\/admin-ajax.php","hitParams":{"wp_statistics_hit":1,"source_type":"post_type_blog-post","source_id":4496,"search_query":"","signature":"798e8aebf67d38bea9534ff3b2f443d6","endpoint":"hit"},"onlineParams":{"wp_statistics_hit":1,"source_type":"post_type_blog-post","source_id":4496,"search_query":"","signature":"798e8aebf67d38bea9534ff3b2f443d6","endpoint":"online"},"option":{"userOnline":"1","consentLevel":"disabled","dntEnabled":"1","bypassAdBlockers":false,"isWpConsentApiActive":false,"trackAnonymously":false,"isPreview":false},"jsCheckTime":"60000"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.jumpingjackrabbit.com/wp-content/plugins/wp-statistics/assets/js/tracker.js?ver=14.10.2" id="wp-statistics-tracker-js"></script> <script type="text/javascript" src="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/js/modernizr.js?ver=1.0.0" id="modernizr-js"></script> <script type="text/javascript" src="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/js/svgxuse.js?ver=1.0.0" id="svgxuse-js"></script> <script type="text/javascript" src="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/js/jquery.plugins.js?ver=1.0.0" id="plugins-js"></script> <script type="text/javascript" src="https://www.jumpingjackrabbit.com/wp-content/themes/jrd5/ui/js/jquery.init-dist.js?ver=1730733673" id="init-js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10