{"version":1,"pages":[{"id":"-L9iS6WfYWSkOnDQDBkI","title":"Introduction","pathname":"/","siteSpaceId":"sitesp_NVQrB","description":"i18next is the internationalization framework for JavaScript, maintained by the team that builds Locize, the translation management service for i18next projects."},{"id":"-L9iS83EuOM8qJ5wNguS","title":"Getting started","pathname":"/overview/getting-started","siteSpaceId":"sitesp_NVQrB","description":"Install i18next with npm or a CDN script, initialize it with resources, and call t() in Node.js, the browser or any framework.","breadcrumbs":[{"label":"Overview"}]},{"id":"-LLxWOW-pcy2MXc06BNP","title":"Comparison to others","pathname":"/overview/comparison-to-others","siteSpaceId":"sitesp_NVQrB","description":"Why i18next: sustainability, maturity, extensibility and richness, and answers to the claims that it is complicated, bloated or too big.","breadcrumbs":[{"label":"Overview"}]},{"id":"-L9iS83FM_zMeDwTnvv3","title":"API","pathname":"/overview/api","siteSpaceId":"sitesp_NVQrB","description":"Reference for the i18next API: init, use, t, exists, changeLanguage, loadNamespaces, addResourceBundle, events and the other instance methods.","breadcrumbs":[{"label":"Overview"}]},{"id":"-L9iS83G4EfTNIY5LYaF","title":"Configuration Options","pathname":"/overview/configuration-options","siteSpaceId":"sitesp_NVQrB","description":"Every option of i18next.init: languages and fallbacks, namespaces, resources, saveMissing, interpolation, plurals, detection and backend settings.","breadcrumbs":[{"label":"Overview"}]},{"id":"-L9iS83HeghrqK4DjmZo","title":"Supported Frameworks","pathname":"/overview/supported-frameworks","siteSpaceId":"sitesp_NVQrB","description":"Framework bindings and integrations for i18next: React, Vue, Angular, Svelte, Solid, Next.js, Express, Deno, jQuery and more, maintained by their authors.","breadcrumbs":[{"label":"Overview"}]},{"id":"-L9iS83IqJ2Cclix6PNB","title":"Plugins and Utils","pathname":"/overview/plugins-and-utils","siteSpaceId":"sitesp_NVQrB","description":"The i18next plugin ecosystem: i18n formats, extraction tools, utilities, services, backends and backend extenders, language detectors and post processors.","breadcrumbs":[{"label":"Overview"}]},{"id":"vgticzhDVfAHeiQD0SAs","title":"Translation Management Systems","pathname":"/overview/translation-management-systems","siteSpaceId":"sitesp_NVQrB","description":"How translation management systems integrate with i18next (saveMissing, i18next-cli, CDN delivery), compared on i18next criteria. Locize is the TMS built by the i18next maintainers.","breadcrumbs":[{"label":"Overview"}]},{"id":"-L9iS83JeOW-JTxucvOM","title":"For Enterprises","pathname":"/overview/for-enterprises","siteSpaceId":"sitesp_NVQrB","description":"Why the library alone is not a localization process: what a product team needs for translation, review and continuous delivery, and how Locize, built by the i18next team, covers it.","breadcrumbs":[{"label":"Overview"}]},{"id":"-MSmZy-_hEa1i6_OkkyB","title":"First setup help","pathname":"/overview/first-setup-help","siteSpaceId":"sitesp_NVQrB","description":"Let's try to figure out what you need.","breadcrumbs":[{"label":"Overview"}]},{"id":"rL9XWgmAKUyVPUT8MWtq","title":"TypeScript","pathname":"/overview/typescript","siteSpaceId":"sitesp_NVQrB","description":"Type-safe keys with i18next: the declaration file and CustomTypeOptions, the selector API, per-package namespace types in monorepos, testing and troubleshooting.","breadcrumbs":[{"label":"Overview"}]},{"id":"-L9iS83VHyhc2JQy_4pD","title":"Essentials","pathname":"/translation-function/essentials","siteSpaceId":"sitesp_NVQrB","description":"The basics of the t function: accessing keys, default values, key separators, namespaces and returning strings from your resources.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"-L9iS83WLaSc0gUWS8EP","title":"Interpolation","pathname":"/translation-function/interpolation","siteSpaceId":"sitesp_NVQrB","description":"Interpolate dynamic values into translations with {{value}}, escape or format them, and change the interpolation prefix and suffix.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"-L9iS83Xc-PIUSxzcCqz","title":"Formatting","pathname":"/translation-function/formatting","siteSpaceId":"sitesp_NVQrB","description":"Format numbers, currencies, dates, relative times and lists inside translations with the built-in Intl-based formatters, or add your own.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"-L9iS83Yy_hlpM5Q14Be","title":"Plurals","pathname":"/translation-function/plurals","siteSpaceId":"sitesp_NVQrB","description":"Plural forms in i18next: the _one, _other and other CLDR suffixes per language, ordinal plurals, interval plurals and the count option.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"-L9iS83ZEqU82xChs6DE","title":"Nesting","pathname":"/translation-function/nesting","siteSpaceId":"sitesp_NVQrB","description":"Reference other keys inside a translation with $t(key), pass options to nested keys, and reuse glossary terms.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"-L9iS83_tGKuc1njuHr6","title":"Context","pathname":"/translation-function/context","siteSpaceId":"sitesp_NVQrB","description":"Vary a translation by context, for example gender, with the context option and the _context key suffix.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"-L9iS83aFe0YpKiU5q7s","title":"Objects and Arrays","pathname":"/translation-function/objects-and-arrays","siteSpaceId":"sitesp_NVQrB","description":"Return whole objects or arrays from t with returnObjects, and join array values with joinArrays.","breadcrumbs":[{"label":"Translation Function"}]},{"id":"V0kbxnkgF0Lmqub5FYOA","title":"Best Practices","pathname":"/principles/best-practices","siteSpaceId":"sitesp_NVQrB","description":"Best practices for translatable code: keep sentences whole, avoid string concatenation, use interpolation, plurals and context, and name keys semantically.","breadcrumbs":[{"label":"Principles"}]},{"id":"-LLxVfs-_DXwLAcQN0Z_","title":"Translation Resolution","pathname":"/principles/translation-resolution","siteSpaceId":"sitesp_NVQrB","description":"How i18next resolves a key: the order of languages, namespaces, context, plurals and fallbacks it tries before returning a value or the key itself.","breadcrumbs":[{"label":"Principles"}]},{"id":"-L9iS83MxfRdU9ru5Fhw","title":"Namespaces","pathname":"/principles/namespaces","siteSpaceId":"sitesp_NVQrB","description":"Split translations into namespaces (multiple files), load them on demand, and set the default and fallback namespace.","breadcrumbs":[{"label":"Principles"}]},{"id":"-L9iS83NXXcvUzFQ94pi","title":"Fallback","pathname":"/principles/fallback","siteSpaceId":"sitesp_NVQrB","description":"Fallback behavior in i18next: fallback languages, fallback namespaces, fallback keys and default values, and what a raw key in the UI means.","breadcrumbs":[{"label":"Principles"}]},{"id":"-L9iS83Oe2eixxATc7S8","title":"Plugins","pathname":"/principles/plugins","siteSpaceId":"sitesp_NVQrB","description":"How i18next plugins work: backends, language detectors, post processors, i18n formats and third-party modules, and how they are registered with use().","breadcrumbs":[{"label":"Principles"}]},{"id":"-L9iS83RMkvbAzQlEv8E","title":"Add or Load Translations","pathname":"/how-to/add-or-load-translations","siteSpaceId":"sitesp_NVQrB","description":"Ways to load translations into i18next: bundled resources, addResourceBundle, an HTTP or filesystem backend, or a translation management service such as Locize with CDN delivery.","breadcrumbs":[{"label":"How to"}]},{"id":"-Me5GnnmquEraPLSeqlp","title":"Extracting translations","pathname":"/how-to/extracting-translations","siteSpaceId":"sitesp_NVQrB","description":"How new keys get into your translation files: by hand, with the i18next-cli extractor, or at runtime with saveMissing to a backend or a translation management system.","breadcrumbs":[{"label":"How to"}]},{"id":"CPUh7y7fyEL036NYA4YN","title":"Using ICU or MF2","pathname":"/how-to/using-icu-or-mf2","siteSpaceId":"sitesp_NVQrB","description":"Use ICU MessageFormat (i18next-icu) or Unicode MessageFormat 2 (i18next-mf2) with i18next: what keeps working, what stops working, TypeScript, i18next-cli and next-i18next setup.","breadcrumbs":[{"label":"How to"}]},{"id":"xiD3qIPnksawsdwca8Lx","title":"AI coding agents","pathname":"/how-to/ai-coding-agents","siteSpaceId":"sitesp_NVQrB","description":"What i18next's tooling tells AI coding agents (the skill, the agent prompt, the AGENTS.md note), word for word, and how to opt out.","breadcrumbs":[{"label":"How to"}]},{"id":"-MUdKpU8ulmF11Ltbqsk","title":"Caching","pathname":"/how-to/caching","siteSpaceId":"sitesp_NVQrB","description":"Cache translations in the browser with i18next-localstorage-backend and i18next-chained-backend, with expiration and versioning.","breadcrumbs":[{"label":"How to"}]},{"id":"-MaT6xprjq84I3jndC-C","title":"Backend Fallback","pathname":"/how-to/backend-fallback","siteSpaceId":"sitesp_NVQrB","description":"Do you want to define a fallback which uses local translations?","breadcrumbs":[{"label":"How to"}]},{"id":"-L9iS83SnPBscOAggB5v","title":"FAQ","pathname":"/how-to/faq","siteSpaceId":"sitesp_NVQrB","description":"Frequently asked questions: how to support the project, why translations do not show up, how to translate resource files, find missing or broken translations, and hardcoded strings.","breadcrumbs":[{"label":"How to"}]},{"id":"-L9iS83dIWCAUEPJKj5k","title":"JSON Format","pathname":"/misc/json-format","siteSpaceId":"sitesp_NVQrB","description":"The i18next JSON formats v1 to v4: plural and context suffixes, nesting and arrays, and how to convert between versions.","breadcrumbs":[{"label":"Misc"}]},{"id":"-L9iS83ejG1iFaYuVBfz","title":"Creating own Plugins","pathname":"/misc/creating-own-plugins","siteSpaceId":"sitesp_NVQrB","description":"Write your own i18next plugin: backend, language detector, post processor, i18n format, formatter or third-party module, with the required interface for each.","breadcrumbs":[{"label":"Misc"}]},{"id":"-L9iS83f4VV3ir4sf0Xs","title":"Migration Guide","pathname":"/misc/migration-guide","siteSpaceId":"sitesp_NVQrB","description":"Breaking changes and migration steps for every major i18next release, from v19 to v26.","breadcrumbs":[{"label":"Misc"}]},{"id":"-MWdOpAuZ9lIFpK2RJ5m","title":"The history of i18next","pathname":"/misc/the-history-of-i18next","siteSpaceId":"sitesp_NVQrB","description":"How i18next started in 2011, why version 2 became framework-independent, and why the maintainers built Locize when i18n alone was not enough.","breadcrumbs":[{"label":"Misc"}]},{"id":"DiesPj8zOnUme1az1EAO","title":"Testimonials","pathname":"/misc/testimonials","siteSpaceId":"sitesp_NVQrB","description":"What developers and companies say about i18next, and who runs it in production.","breadcrumbs":[{"label":"Misc"}]}]}