[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-homepage":3,"footer-settings":84,"footer-integrations":220,"main-navigation":1197,"blog-post-nav-[USE LATEST FEATURED]":1814,"blog-post-nav-nav":1839,"blog-how-to-localise-your-react-app-with-linguijs-and-localazy":1857},{"status":4,"header_badges":5,"footer_badges":27,"footer_secured_badges":34,"slider_badges":48},"published",[6,15,21],{"id":7,"status":4,"sort":8,"link":9,"title":10,"badgeType":11,"badgeName":12,"metadata":8,"image":13},1,null,"https:\u002F\u002Fwww.g2.com\u002Fproducts\u002Flocalazy\u002Freviews","Best meets requirements","Other","G2-winter-24-best-meets-requirments",{"id":14},"8d5dd6fd-6995-4c92-8219-a6ed5ba6acdc",{"id":16,"status":4,"sort":8,"link":9,"title":17,"badgeType":11,"badgeName":18,"metadata":8,"image":19},2,"Best support","G2-winter-24-best-support",{"id":20},"e59dd465-84d9-45c7-987d-dd4048fd6992",{"id":22,"status":4,"sort":8,"link":9,"title":23,"badgeType":11,"badgeName":24,"metadata":8,"image":25},3,"Easiest admin","G2-winter-24-easiest-admin",{"id":26},"5f12c4c8-bec0-47cf-87b4-a4502e9f1bd2",[28],{"id":29,"status":4,"sort":8,"link":9,"title":30,"badgeType":11,"badgeName":31,"metadata":8,"image":32},12,"Users love us","Users love us 25",{"id":33},"232416a5-86ba-4be6-85a5-b88802003d53",[35,42],{"id":36,"status":4,"sort":8,"link":37,"title":38,"badgeType":11,"badgeName":39,"metadata":8,"image":40},11,"https:\u002F\u002Fsprinto.com\u002Fget-iso-27001\u002F","Sprinto ISO 27001","Sprinto ISO 27001 certificate",{"id":41},"c1c6c06c-6caf-4b78-8a7e-9606c395eb61",{"id":43,"status":4,"sort":8,"link":44,"title":45,"badgeType":11,"badgeName":45,"metadata":8,"image":46},13,"https:\u002F\u002Fwww.aicpa.org\u002Fsoc4so","SOC certificate",{"id":47},"4f4bc0a6-09a0-41df-8295-8f990d96d941",[49,56,61,66,71,76,82],{"id":50,"status":4,"sort":8,"link":9,"title":51,"badgeType":11,"badgeName":52,"metadata":53,"image":54},5,"Most likely to recommend","a","",{"id":55},"da055731-3f11-4fc7-96f2-c11c0b84c831",{"id":57,"status":4,"sort":8,"link":9,"title":58,"badgeType":11,"badgeName":8,"metadata":8,"image":59},6,"EMEA High Performer",{"id":60},"586fb488-81f2-41db-a4e8-ef309e50c0e6",{"id":62,"status":4,"sort":8,"link":9,"title":63,"badgeType":11,"badgeName":8,"metadata":8,"image":64},7,"Ease of Doing Business With",{"id":65},"bfa26865-430e-463d-9886-cb56a8a8ecf6",{"id":67,"status":4,"sort":8,"link":9,"title":68,"badgeType":11,"badgeName":8,"metadata":8,"image":69},8,"High Performer",{"id":70},"2cc1ba0f-c23a-4c97-ad4a-a655c97466fe",{"id":72,"status":4,"sort":8,"link":9,"title":73,"badgeType":11,"badgeName":8,"metadata":8,"image":74},9,"Fastest Implementation",{"id":75},"6f297758-1c95-45f4-a6e9-528319897132",{"id":77,"status":4,"sort":8,"link":78,"title":79,"badgeType":11,"badgeName":8,"metadata":8,"image":80},10,"https:\u002F\u002Fwww.intercert.com\u002Fservices\u002Fgovernance-risk-compliance\u002Fiso-iec-27001","Intercert ISO 27001",{"id":81},"0521a5f1-e1f2-4da6-a2bc-dc92773f2a7b",{"id":36,"status":4,"sort":8,"link":37,"title":38,"badgeType":11,"badgeName":39,"metadata":8,"image":83},{"id":41},{"id":7,"status":4,"security_section_title":85,"loved_section_title":86,"columns":87,"social_links":180,"policy_links":210},"Secured & trusted","Loved by users",[88,102,119,141,145],{"id":7,"status":4,"sort":8,"title":89,"column_key":90,"links":91},"Localazy","connect",[92,95,98],{"id":36,"status":4,"sort":7,"title":93,"url":94},"Book a demo","___LOCALAZY_MEETING_URL___",{"id":29,"status":4,"sort":16,"title":96,"url":97},"Contact","\u002Fcontact",{"id":99,"status":4,"sort":22,"title":100,"url":101},21,"About us","\u002Fabout-us",{"id":16,"status":4,"sort":8,"title":103,"column_key":104,"links":105},"Programs","programs",[106,110,113,116],{"id":7,"status":4,"sort":107,"title":108,"url":109},4,"Partner Program","\u002Fpartnership",{"id":16,"status":4,"sort":50,"title":111,"url":112},"Ambassador Program","\u002Fambassador",{"id":22,"status":4,"sort":57,"title":114,"url":115},"Startup Program","\u002Ffor\u002Fstartups",{"id":107,"status":4,"sort":62,"title":117,"url":118},"Nonprofits","\u002Ffor\u002Fnonprofit",{"id":22,"status":4,"sort":8,"title":120,"column_key":121,"links":122},"Use Cases","use_cases",[123,126,129,132,135,138],{"id":50,"status":4,"sort":67,"title":124,"url":125},"Software Localization","\u002Fterm\u002Fsoftware-localization",{"id":57,"status":4,"sort":72,"title":127,"url":128},"Machine Translation Services","\u002Ffeatures\u002Fmachine-translation",{"id":62,"status":4,"sort":77,"title":130,"url":131},"Translation API","\u002Ffeatures\u002Ftranslation-api",{"id":67,"status":4,"sort":36,"title":133,"url":134},"Crowdsourced Translations","\u002Ffeatures\u002Fshare-tm",{"id":72,"status":4,"sort":29,"title":136,"url":137},"Figma i18n & localization","\u002Ffeatures\u002Ffigma-localization-plugin",{"id":77,"status":4,"sort":43,"title":139,"url":140},"Translation as a Service","\u002Fterm\u002Ftranslation-service",{"id":107,"status":4,"sort":8,"title":142,"column_key":143,"links":144},"Integrations","integrations",[],{"id":50,"status":4,"sort":8,"title":146,"column_key":147,"links":148},"Resources","resources",[149,153,157,161,165,169,173,177],{"id":43,"status":4,"sort":150,"title":151,"url":152},14,"Documentation","\u002Fdocs",{"id":150,"status":4,"sort":154,"title":155,"url":156},15,"Dictionary","\u002Fdictionary",{"id":154,"status":4,"sort":158,"title":159,"url":160},16,"Case Studies","\u002Fcase-study",{"id":158,"status":4,"sort":162,"title":163,"url":164},17,"Discussion forum","___DISCUSS_URL___",{"id":162,"status":4,"sort":166,"title":167,"url":168},18,"Localization Blog","\u002Fblog",{"id":166,"status":4,"sort":170,"title":171,"url":172},19,"FAQ","\u002Ffaq",{"id":170,"status":4,"sort":174,"title":175,"url":176},20,"Pricing","\u002Fpricing",{"id":174,"status":4,"sort":99,"title":178,"url":179},"Brand assets","https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Fu\u002F1\u002Ffolders\u002F1tZqsZHBlGelz7A2FwTsiwrs4j3sd9HTk",[181,186,191,196,201,206],{"id":7,"status":4,"sort":8,"platform":182,"icon":183,"url":184,"label":185},"feed","rss","\u002Ffeed.xml","Localazy RSS Feed",{"id":16,"status":4,"sort":8,"platform":187,"icon":188,"url":189,"label":190},"facebook","fb-logo","https:\u002F\u002Fwww.facebook.com\u002Flocalazy\u002F","Localazy facebook",{"id":22,"status":4,"sort":8,"platform":192,"icon":193,"url":194,"label":195},"github","github-logo","https:\u002F\u002Fgithub.com\u002Flocalazy","Localazy GitHub",{"id":107,"status":4,"sort":8,"platform":197,"icon":198,"url":199,"label":200},"x","x-twitter","https:\u002F\u002Fx.com\u002Flocalazy","Localazy X",{"id":50,"status":4,"sort":8,"platform":202,"icon":203,"url":204,"label":205},"linkedin","linkedin-logo","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002F37836599\u002F","Localazy LinkedIn",{"id":57,"status":4,"sort":8,"platform":207,"icon":208,"url":164,"label":209},"discourse","discourse-logo","Localazy Discourse",[211,214,217],{"id":7,"status":4,"sort":8,"title":212,"url":213,"action":8},"Privacy policy","\u002Fprivacy-policy",{"id":16,"status":4,"sort":8,"title":215,"url":216,"action":8},"Terms & Conditions","\u002Fterms-and-conditions",{"id":22,"status":4,"sort":8,"title":218,"url":8,"action":219},"Cookies","cookie-consent",[221,387,468,579,671,755,847,940,1029,1136],{"id":222,"status":4,"created_on":223,"modified_on":224,"name":225,"slug":226,"description":227,"docs_link":228,"priority":8,"has_sdk":229,"sort":22,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":231,"show_in_spa":230,"is_file_format":229,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":232,"tile_subtitle":233,"tile_description":234,"is_enterprise":229,"is_popular":229,"primary_use_case":8,"hierarchy_handling":8,"best_for":8,"file_extension":8,"format_code_example":8,"format_to_extension":235,"upload_features":237,"icon":238,"meta_image":240,"primary_tag":242,"tags":261,"integration_methods":281,"recommended_methods":371,"default_integration_method":372,"faq_categories":379,"translations":385,"platforms_id":222},33,"2022-03-18T08:09:24.000Z","2025-02-26T13:36:08.000Z","React","react","Manage your React app translations with Localazy, a continuous localization tool. React i18n done right. ","\u002Fdocs\u002Fcli\u002Fjson-format",false,true,"JSON format support","CLI support","react-i18next and more","Use Localazy to translate your React projects with your favorite i18n library.",{"json":236},"json",[],{"id":239},"26757a90-88a3-4a94-b587-9f38614ed3bd",{"id":241},"a97492ec-ee8d-429c-bf66-d0fe59b6e5c9",{"id":50,"status":4,"sort":16,"created_on":243,"label":244,"hidden":229,"icon":245,"translations":247},"2022-03-17T12:23:44.000Z","Web apps",{"id":246},"c9e70e4f-8136-432a-8d82-53c3501a9eb4",[248,250,254,258],{"id":50,"languages_code":249,"label":244},"xxa",{"id":251,"languages_code":252,"label":253},45,"es","Aplicaciones web",{"id":255,"languages_code":256,"label":257},50,"cs","Webové aplikace",{"id":259,"languages_code":260,"label":244},59,"en",[262,269],{"id":50,"status":4,"sort":16,"label":244,"hidden":229,"created_on":243,"icon":263,"translations":264},{"id":246},[265,266,267,268],{"id":50,"languages_code":249,"label":244},{"id":251,"languages_code":252,"label":253},{"id":255,"languages_code":256,"label":257},{"id":259,"languages_code":260,"label":244},{"id":67,"status":4,"sort":72,"label":270,"hidden":229,"created_on":271,"icon":8,"translations":272},"Framework","2022-03-17T12:23:45.000Z",[273,274,277,279],{"id":67,"languages_code":249,"label":270},{"id":275,"languages_code":252,"label":276},53,"Marco",{"id":278,"languages_code":256,"label":270},60,{"id":280,"languages_code":260,"label":270},67,[282,296,326,349],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":287},"API","api","Translate strings directly or upload them into your Localazy project.","\u002Fdocs\u002Fapi\u002Fintroduction",[288,289,292,294],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},40,"Utilice la API para exportar traducciones e importar contenido de\u002Fa Localazy mediante programación.",{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},"Choose between translating strings directly or uploading them into Localazy.",{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},"Pomocí rozhraní API můžete programovaně exportovat překlady a importovat obsah z\u002Fdo Localazy.",{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":302},"Create source keys online","add-keys-manually","Add source keys via the web interface online and sync them into your project later.","\u002Fdocs\u002Fgeneral\u002Fimporting-localization-files#add-new-keys-in-ui","vpn-key-outline",[303,304,308,310,313,317,319,321],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},39,"Cree claves fuente en línea","Añada claves fuente a través de la interfaz web en línea y sincronícelas posteriormente en su proyecto.",{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},51,{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},"Vytvářejte zdrojové klíče online","Přidejte zdrojové klíče přes webové rozhraní online a synchronizujte je do svého projektu později.",{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},64,"Cree claves de origen en línea","Añada claves de origen a través de la interfaz web en línea y sincronícelas posteriormente en su proyecto.",{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},65,{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},66,{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},88,"de","Erstellen Sie Quellschlüssel online","Fügen Sie Quellschlüssel über die Weboberfläche online hinzu und synchronisieren Sie sie später mit Ihrem Projekt.",{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":333},"Direct file upload","File upload","web-upload","Upload your texts and existing translations in any format directly to start quickly.","\u002Fdocs\u002Fgeneral\u002Fimporting-localization-files","file-upload",[334,335,339,341,345],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},38,"Carga directa de archivos","Cargue sus textos y traducciones existentes en cualquier formato directamente para empezar rápidamente.",{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},47,{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},56,"Přímé nahrávání souborů","Nahrajte přímo své texty a stávající překlady v libovolném formátu a začněte pracovat ihned.",{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},85,"Direkter Datei-Upload","Laden Sie Ihre Texte und vorhandenen Übersetzungen in einem beliebigen Format direkt hoch, um schnell loszulegen.",{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":355},"Command Line Interface","CLI","cli","The best option for developers that want to make localization an automated part of their workflow.","\u002Fdocs\u002Fcli\u002Fthe-basics",[356,357,361,363,367],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},37,"Interfaz de Línea de Comandos","La mejor opción para los desarrolladores que deseen hacer de la localización una parte automatizada de su flujo de trabajo.",{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},46,{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},55,"Rozhraní Příkazového Řádku","Nejlepší volba pro vývojáře, kteří chtějí, aby se lokalizace stala automatizovanou součástí jejich pracovních postupů.",{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},87,"Befehlszeilenschnittstelle","Die beste Option für Entwickler, die die Lokalisierung zu einem automatisierten Teil ihres Arbeitsablaufs machen möchten.",[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":373},[374,375,376,377,378],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[380],{"id":381,"status":4,"created_on":382,"sort":8,"slug":383,"label":384,"on_faq_index":8},76,"2025-02-26T12:44:29.000Z","front-end-common","Front-end Common",[386],{"languages_code":249,"name":225,"slug":226,"description":227,"support_type":231,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":233,"tile_description":234,"id":222,"platforms_id":222,"docs_link":228},{"id":170,"status":4,"created_on":223,"modified_on":388,"name":389,"slug":390,"description":391,"docs_link":228,"priority":8,"has_sdk":229,"sort":107,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":231,"show_in_spa":230,"is_file_format":229,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":232,"tile_subtitle":392,"tile_description":393,"is_enterprise":229,"is_popular":229,"primary_use_case":8,"hierarchy_handling":8,"best_for":8,"file_extension":8,"format_code_example":8,"format_to_extension":394,"upload_features":395,"icon":396,"meta_image":398,"primary_tag":400,"tags":407,"integration_methods":421,"recommended_methods":452,"default_integration_method":453,"faq_categories":460,"translations":466,"platforms_id":170},"2025-02-26T13:35:41.000Z","Vue.js","vuejs","Online Vue.js project localization tool for your translation management. Enjoy true continuous localization with Localazy & translate your JSON files automatically.","Vue.js & JSON","Enjoy true continuous localization with Localazy & translate your Vue projects automatically.",{"json":236},[],{"id":397},"6180b41f-3249-47d3-adcd-50fe1cf11bf1",{"id":399},"8171b836-d6b8-4354-8db3-34ccd384970d",{"id":50,"status":4,"sort":16,"created_on":243,"label":244,"hidden":229,"icon":401,"translations":402},{"id":246},[403,404,405,406],{"id":50,"languages_code":249,"label":244},{"id":251,"languages_code":252,"label":253},{"id":255,"languages_code":256,"label":257},{"id":259,"languages_code":260,"label":244},[408,415],{"id":50,"status":4,"sort":16,"label":244,"hidden":229,"created_on":243,"icon":409,"translations":410},{"id":246},[411,412,413,414],{"id":50,"languages_code":249,"label":244},{"id":251,"languages_code":252,"label":253},{"id":255,"languages_code":256,"label":257},{"id":259,"languages_code":260,"label":244},{"id":67,"status":4,"sort":72,"label":270,"hidden":229,"created_on":271,"icon":8,"translations":416},[417,418,419,420],{"id":67,"languages_code":249,"label":270},{"id":275,"languages_code":252,"label":276},{"id":278,"languages_code":256,"label":270},{"id":280,"languages_code":260,"label":270},[422,428,438,445],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":423},[424,425,426,427],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":429},[430,431,432,433,434,435,436,437],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":439},[440,441,442,443,444],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":446},[447,448,449,450,451],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":454},[455,456,457,458,459],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[461,465],{"id":342,"status":4,"created_on":462,"sort":8,"slug":463,"label":464,"on_faq_index":8},"2023-03-01T11:21:41.000Z","vue-localization","Vue.js Localization",{"id":381,"status":4,"created_on":382,"sort":8,"slug":383,"label":384,"on_faq_index":8},[467],{"languages_code":249,"name":389,"slug":390,"description":391,"support_type":231,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":392,"tile_description":393,"id":170,"platforms_id":170,"docs_link":228},{"id":7,"status":4,"created_on":223,"modified_on":469,"name":470,"slug":471,"description":472,"docs_link":473,"priority":8,"has_sdk":229,"sort":57,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":474,"show_in_spa":230,"is_file_format":229,"meta_title":8,"meta_description":8,"featured_on_web":229,"marketing_subtitle":232,"tile_subtitle":474,"tile_description":475,"is_enterprise":229,"is_popular":229,"primary_use_case":476,"hierarchy_handling":477,"best_for":478,"file_extension":479,"format_code_example":480,"format_to_extension":481,"upload_features":483,"icon":484,"meta_image":486,"primary_tag":488,"tags":499,"integration_methods":537,"recommended_methods":568,"default_integration_method":569,"faq_categories":576,"translations":577,"platforms_id":7},"2025-07-03T14:21:42.000Z","Flutter","flutter","Learn how to use Localazy CLI for localization of Flutter app. Flutter’s ARB format is fully supported including arrays, plurals, and selected context information. No extra configuration is necessary, but you can enable certain features if you want to.","\u002Fdocs\u002Fcli\u002Fflutter-format","ARB format support","Use the Localazy CLI for localization of Flutter projects. Flutter’s ARB format is fully supported.","Supports metadata like placeholders","JSON-like key-value","Flutter apps",".arb","```\n{\n  \"localazy_message\": \"Go international, today. With Localazy.\"\n}\n```",{"arb":482},"arb",[],{"id":485},"b9f13a11-9328-4a03-86cf-b20de0685606",{"id":487},"c2674666-4371-4aa4-9a65-438c7363fafe",{"id":57,"status":4,"sort":67,"created_on":271,"label":489,"hidden":229,"icon":490,"translations":492},"Mobile apps",{"id":491},"c9c7e1f5-8b59-4016-ae0c-6fba9469cd55",[493,494,496,498],{"id":57,"languages_code":249,"label":489},{"id":362,"languages_code":252,"label":495},"Aplicaciones móviles",{"id":364,"languages_code":256,"label":497},"Mobilní aplikace",{"id":318,"languages_code":260,"label":489},[500,511,518,525],{"id":62,"status":4,"sort":170,"label":501,"hidden":229,"created_on":271,"icon":502,"translations":504},"Desktop & Games",{"id":503},"65b04533-5b4c-430c-b8a4-ecce84754200",[505,506,508,510],{"id":62,"languages_code":249,"label":501},{"id":340,"languages_code":252,"label":507},"Escritorio y Juegos",{"id":342,"languages_code":256,"label":509},"Stolní počítače & Hry",{"id":320,"languages_code":260,"label":501},{"id":50,"status":4,"sort":16,"label":244,"hidden":229,"created_on":243,"icon":512,"translations":513},{"id":246},[514,515,516,517],{"id":50,"languages_code":249,"label":244},{"id":251,"languages_code":252,"label":253},{"id":255,"languages_code":256,"label":257},{"id":259,"languages_code":260,"label":244},{"id":57,"status":4,"sort":67,"label":489,"hidden":229,"created_on":271,"icon":519,"translations":520},{"id":491},[521,522,523,524],{"id":57,"languages_code":249,"label":489},{"id":362,"languages_code":252,"label":495},{"id":364,"languages_code":256,"label":497},{"id":318,"languages_code":260,"label":489},{"id":526,"status":4,"sort":527,"label":528,"hidden":230,"created_on":271,"icon":8,"translations":529},30,32,"ARB",[530,531,533,535],{"id":526,"languages_code":249,"label":528},{"id":532,"languages_code":252,"label":528},120,{"id":534,"languages_code":256,"label":528},125,{"id":536,"languages_code":260,"label":528},130,[538,544,554,561],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":539},[540,541,542,543],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":545},[546,547,548,549,550,551,552,553],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":555},[556,557,558,559,560],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":562},[563,564,565,566,567],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":570},[571,572,573,574,575],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],[578],{"languages_code":249,"name":470,"slug":471,"description":472,"support_type":474,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":474,"tile_description":475,"id":7,"platforms_id":7,"docs_link":473},{"id":580,"status":4,"created_on":581,"modified_on":582,"name":583,"slug":584,"description":585,"docs_link":586,"priority":8,"has_sdk":229,"sort":29,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":587,"show_in_spa":230,"is_file_format":229,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":232,"tile_subtitle":587,"tile_description":588,"is_enterprise":229,"is_popular":229,"primary_use_case":8,"hierarchy_handling":8,"best_for":8,"file_extension":8,"format_code_example":8,"format_to_extension":589,"upload_features":591,"icon":592,"meta_image":594,"primary_tag":596,"tags":610,"integration_methods":625,"recommended_methods":656,"default_integration_method":657,"faq_categories":664,"translations":669,"platforms_id":580},31,"2022-03-18T08:09:25.000Z","2024-07-17T07:43:22.000Z","JavaScript","javascript","Localize your app with JavaScript localizations and Localazy CLI.\nUpload JavaScript files with strings to Localazy and manage your translations easily. Download translated files back.","\u002Fdocs\u002Fcli\u002Fjavascript-format","JS file support","Translating JS files is easy as a pie with Localazy!",{"js":590},"js",[],{"id":593},"4218d0c9-7e6b-494d-9663-37ceaf93ee8c",{"id":595},"2c6699eb-1d80-4772-8268-5597dbcead8c",{"id":77,"status":4,"sort":77,"created_on":271,"label":597,"hidden":229,"icon":598,"translations":600},"Programming Languages",{"id":599},"8c5836bb-1fbe-49c5-9330-8f931838c457",[601,602,605,608],{"id":77,"languages_code":249,"label":597},{"id":603,"languages_code":252,"label":604},63,"Lenguajes de Programación",{"id":606,"languages_code":256,"label":607},68,"Programovací Jazyky",{"id":609,"languages_code":260,"label":597},70,[611,618],{"id":50,"status":4,"sort":16,"label":244,"hidden":229,"created_on":243,"icon":612,"translations":613},{"id":246},[614,615,616,617],{"id":50,"languages_code":249,"label":244},{"id":251,"languages_code":252,"label":253},{"id":255,"languages_code":256,"label":257},{"id":259,"languages_code":260,"label":244},{"id":77,"status":4,"sort":77,"label":597,"hidden":229,"created_on":271,"icon":619,"translations":620},{"id":599},[621,622,623,624],{"id":77,"languages_code":249,"label":597},{"id":603,"languages_code":252,"label":604},{"id":606,"languages_code":256,"label":607},{"id":609,"languages_code":260,"label":597},[626,632,642,649],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":627},[628,629,630,631],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":633},[634,635,636,637,638,639,640,641],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":643},[644,645,646,647,648],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":650},[651,652,653,654,655],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":658},[659,660,661,662,663],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[665],{"id":666,"status":4,"created_on":667,"sort":8,"slug":668,"label":583,"on_faq_index":229},35,"2022-06-10T09:49:33.000Z","javascript-i18n-localization",[670],{"languages_code":249,"name":583,"slug":584,"description":585,"support_type":587,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":587,"tile_description":588,"id":580,"platforms_id":580,"docs_link":586},{"id":29,"status":4,"created_on":581,"modified_on":672,"name":673,"slug":236,"description":674,"docs_link":228,"priority":8,"has_sdk":229,"sort":174,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":675,"show_in_spa":230,"is_file_format":230,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":232,"tile_subtitle":676,"tile_description":677,"is_enterprise":229,"is_popular":230,"primary_use_case":678,"hierarchy_handling":679,"best_for":680,"file_extension":681,"format_code_example":682,"format_to_extension":683,"upload_features":684,"icon":685,"meta_image":687,"primary_tag":689,"tags":702,"integration_methods":710,"recommended_methods":741,"default_integration_method":742,"faq_categories":749,"translations":753,"platforms_id":29},"2025-10-14T11:22:29.000Z","JSON","Online JSON translator you will love. Comfortable JSON language files editor with powerful CLI under your fingers for continuous localization.","Advanced format support","{Objectively the best}","Translate any JSON files with Localazy, with the best in class plural and array support.","Used for structured data storage and APIs","Uses key-value pairs","Web & mobile apps, APIs",".json","```\n{\n  \"parent\": {\n    \"child\": {\n      \"another_nested_level\": \"All is supported.\"\n    }\n  }\n}\n```",{"json":236},[],{"id":686},"99ac3b7c-dba5-4693-a4f4-1f27a6d7782d",{"id":688},"8d614c20-667e-4bee-a64d-7d7ce9c0ee0a",{"id":107,"status":4,"sort":50,"created_on":271,"label":690,"hidden":229,"icon":691,"translations":693},"File formats",{"id":692},"ab7c8f89-dcce-45ab-9e21-8605aef289c3",[694,695,698,700],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},44,"Formatos de archivo",{"id":309,"languages_code":256,"label":699},"Formáty souborů",{"id":701,"languages_code":260,"label":690},62,[703],{"id":107,"status":4,"sort":50,"label":690,"hidden":229,"created_on":271,"icon":704,"translations":705},{"id":692},[706,707,708,709],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},[711,717,727,734],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":712},[713,714,715,716],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":718},[719,720,721,722,723,724,725,726],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":728},[729,730,731,732,733],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":735},[736,737,738,739,740],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":743},[744,745,746,747,748],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[750],{"id":751,"status":4,"created_on":752,"sort":8,"slug":236,"label":673,"on_faq_index":229},36,"2022-06-10T10:49:07.000Z",[754],{"languages_code":249,"name":673,"slug":236,"description":674,"support_type":675,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":676,"tile_description":677,"id":29,"platforms_id":29,"docs_link":228},{"id":99,"status":4,"created_on":581,"modified_on":756,"name":757,"slug":758,"description":759,"docs_link":760,"priority":8,"has_sdk":229,"sort":99,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":761,"show_in_spa":229,"is_file_format":230,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":232,"tile_subtitle":762,"tile_description":763,"is_enterprise":229,"is_popular":230,"primary_use_case":764,"hierarchy_handling":765,"best_for":766,"file_extension":767,"format_code_example":768,"format_to_extension":769,"upload_features":771,"icon":772,"meta_image":774,"primary_tag":776,"tags":783,"integration_methods":805,"recommended_methods":836,"default_integration_method":837,"faq_categories":844,"translations":845,"platforms_id":99},"2025-07-03T14:28:31.000Z","XLIFF","xliff","XLIFF is meant for localization. Enjoy Localazy - an online XLIFF editor for your translation management. Integrate your XLIFF files with Localazy to achieve true continuous localization and translate XLIFF files on autopilot.","\u002Fdocs\u002Fcli\u002Fxliff-12-format","File format support","Meant for localization","XLIFF stands for XML Localization Interchange File Format - and Localazy is the best way to manage XLIFF files.","Used in translation pipelines","XML-based exchange format","Translation & software",".xliff","```\n\u003Ctrans-unit id=\"localazy_message\">\n    \u003Csource>Go international, today. With Localazy.\u003C\u002Fsource>\n\u003C\u002Ftrans-unit>\n```",{"xliff":770},"xlf",[],{"id":773},"ca424cc8-e8a7-4aef-8dca-ef4a4d1334fc",{"id":775},"889970a6-cce8-4055-b96a-9c3f292aa67f",{"id":107,"status":4,"sort":50,"created_on":271,"label":690,"hidden":229,"icon":777,"translations":778},{"id":692},[779,780,781,782],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},[784,791,798],{"id":107,"status":4,"sort":50,"label":690,"hidden":229,"created_on":271,"icon":785,"translations":786},{"id":692},[787,788,789,790],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},{"id":107,"status":4,"sort":50,"label":690,"hidden":229,"created_on":271,"icon":792,"translations":793},{"id":692},[794,795,796,797],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},{"id":107,"status":4,"sort":50,"label":690,"hidden":229,"created_on":271,"icon":799,"translations":800},{"id":692},[801,802,803,804],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},[806,812,822,829],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":807},[808,809,810,811],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":813},[814,815,816,817,818,819,820,821],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":823},[824,825,826,827,828],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":830},[831,832,833,834,835],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":838},[839,840,841,842,843],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],[846],{"languages_code":249,"name":757,"slug":758,"description":759,"support_type":761,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":762,"tile_description":763,"id":99,"platforms_id":99,"docs_link":760},{"id":174,"status":4,"created_on":848,"modified_on":848,"name":849,"slug":850,"description":851,"docs_link":852,"priority":8,"has_sdk":229,"sort":853,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":761,"show_in_spa":230,"is_file_format":230,"meta_title":8,"meta_description":8,"featured_on_web":229,"marketing_subtitle":232,"tile_subtitle":854,"tile_description":855,"is_enterprise":229,"is_popular":230,"primary_use_case":8,"hierarchy_handling":8,"best_for":8,"file_extension":8,"format_code_example":8,"format_to_extension":856,"upload_features":857,"icon":858,"meta_image":860,"primary_tag":862,"tags":869,"integration_methods":898,"recommended_methods":929,"default_integration_method":930,"faq_categories":937,"translations":938,"platforms_id":174},"2026-05-21T20:49:09.000Z","PO","po","Edit .po and .pot files with your team, automate translation with AI, and ship faster.","\u002Fdocs\u002Fcli\u002Fpo-format",24,"Seamless integration","Upload, edit and translate PO files with Localazy.",{"po":850},[],{"id":859},"25f317fe-0c10-4f0b-92cd-f80d1f3c6a67",{"id":861},"490022f9-d91a-4e1a-9e79-db374ec997c2",{"id":107,"status":4,"sort":50,"created_on":271,"label":690,"hidden":229,"icon":863,"translations":864},{"id":692},[865,866,867,868],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},[870,877,888],{"id":107,"status":4,"sort":50,"label":690,"hidden":229,"created_on":271,"icon":871,"translations":872},{"id":692},[873,874,875,876],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},{"id":878,"status":4,"sort":878,"label":879,"hidden":230,"created_on":271,"icon":8,"translations":880},34,"C++",[881,882,884,886],{"id":878,"languages_code":249,"label":879},{"id":883,"languages_code":252,"label":879},135,{"id":885,"languages_code":256,"label":879},140,{"id":887,"languages_code":260,"label":879},144,{"id":99,"status":4,"sort":853,"label":889,"hidden":230,"created_on":271,"icon":8,"translations":890},"Gettext",[891,892,894,896],{"id":99,"languages_code":249,"label":889},{"id":893,"languages_code":252,"label":889},101,{"id":895,"languages_code":256,"label":889},106,{"id":897,"languages_code":260,"label":889},111,[899,905,915,922],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":900},[901,902,903,904],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":906},[907,908,909,910,911,912,913,914],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":916},[917,918,919,920,921],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":923},[924,925,926,927,928],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":931},[932,933,934,935,936],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],[939],{"languages_code":249,"name":849,"slug":850,"description":851,"support_type":761,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":854,"tile_description":855,"id":174,"platforms_id":174,"docs_link":852},{"id":941,"status":4,"created_on":581,"modified_on":942,"name":943,"slug":944,"description":945,"docs_link":946,"priority":8,"has_sdk":229,"sort":947,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":761,"show_in_spa":230,"is_file_format":230,"meta_title":8,"meta_description":8,"featured_on_web":229,"marketing_subtitle":232,"tile_subtitle":948,"tile_description":949,"is_enterprise":229,"is_popular":229,"primary_use_case":950,"hierarchy_handling":951,"best_for":952,"file_extension":953,"format_code_example":954,"format_to_extension":955,"upload_features":956,"icon":957,"meta_image":958,"primary_tag":960,"tags":967,"integration_methods":985,"recommended_methods":1016,"default_integration_method":1017,"faq_categories":1024,"translations":1027,"platforms_id":941},26,"2025-10-02T08:32:44.000Z","RESX","resx","Quickly translate and manage your RESX files with Localazy or integrate Localazy with your .NET project and enjoy a fully automated localization process. ","\u002Fdocs\u002Fcli\u002Fresx-format",27,".NET localization","Translate .NET projects using RESX files and Localazy.","Standard format for Windows\u002F.NET localization","Flat key-value structure",".NET applications",".resx","```\n\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\n\u003Croot>\n  \u003Cdata name=\"localazy_message\" xml:space=\"preserve\">\n    \u003Cvalue>Go international, today. With Localazy.\u003C\u002Fvalue>\n  \u003C\u002Fdata>\n\u003C\u002Froot>\n```",{"resx":944},[],{"id":859},{"id":959},"1f07bf83-9363-47d6-b21b-a5121c0efaf6",{"id":107,"status":4,"sort":50,"created_on":271,"label":690,"hidden":229,"icon":961,"translations":962},{"id":692},[963,964,965,966],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},[968,975],{"id":107,"status":4,"sort":50,"label":690,"hidden":229,"created_on":271,"icon":969,"translations":970},{"id":692},[971,972,973,974],{"id":107,"languages_code":249,"label":690},{"id":696,"languages_code":252,"label":697},{"id":309,"languages_code":256,"label":699},{"id":701,"languages_code":260,"label":690},{"id":853,"status":4,"sort":941,"label":976,"hidden":230,"created_on":271,"icon":8,"translations":977},"C#",[978,979,981,983],{"id":853,"languages_code":249,"label":976},{"id":980,"languages_code":252,"label":976},103,{"id":982,"languages_code":256,"label":976},108,{"id":984,"languages_code":260,"label":976},113,[986,992,1002,1009],{"id":107,"status":4,"sort":57,"label":283,"alternative_label":8,"slug":284,"description":285,"documentation_link":286,"loc_icon":284,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":987},[988,989,990,991],{"id":107,"languages_code":249,"label":283,"description":285,"slug":284},{"id":290,"languages_code":252,"label":283,"description":291,"slug":284},{"id":255,"languages_code":260,"label":283,"description":293,"slug":284},{"id":259,"languages_code":256,"label":283,"description":295,"slug":284},{"id":22,"status":4,"sort":50,"label":297,"alternative_label":8,"slug":298,"description":299,"documentation_link":300,"loc_icon":301,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":993},[994,995,996,997,998,999,1000,1001],{"id":22,"languages_code":249,"label":297,"description":299,"slug":298},{"id":305,"languages_code":252,"label":306,"description":307,"slug":8},{"id":309,"languages_code":260,"label":297,"description":299,"slug":298},{"id":278,"languages_code":256,"label":311,"description":312,"slug":8},{"id":314,"languages_code":252,"label":315,"description":316,"slug":298},{"id":318,"languages_code":260,"label":297,"description":299,"slug":298},{"id":320,"languages_code":256,"label":311,"description":312,"slug":298},{"id":322,"languages_code":323,"label":324,"description":325,"slug":8},{"id":16,"status":4,"sort":107,"label":327,"alternative_label":328,"slug":329,"description":330,"documentation_link":331,"loc_icon":332,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1003},[1004,1005,1006,1007,1008],{"id":16,"languages_code":249,"label":327,"description":330,"slug":329},{"id":336,"languages_code":252,"label":337,"description":338,"slug":8},{"id":340,"languages_code":260,"label":327,"description":330,"slug":329},{"id":342,"languages_code":256,"label":343,"description":344,"slug":8},{"id":346,"languages_code":323,"label":347,"description":348,"slug":8},{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1010},[1011,1012,1013,1014,1015],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[],{"id":7,"status":4,"sort":22,"label":350,"alternative_label":351,"slug":352,"description":353,"documentation_link":354,"loc_icon":352,"is_official_plugin":229,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1018},[1019,1020,1021,1022,1023],{"id":7,"languages_code":249,"label":350,"description":353,"slug":352},{"id":358,"languages_code":252,"label":359,"description":360,"slug":352},{"id":362,"languages_code":260,"label":350,"description":353,"slug":352},{"id":364,"languages_code":256,"label":365,"description":366,"slug":352},{"id":368,"languages_code":323,"label":369,"description":370,"slug":8},[1025],{"id":696,"status":4,"created_on":1026,"sort":8,"slug":944,"label":943,"on_faq_index":8},"2022-08-01T16:44:06.000Z",[1028],{"languages_code":249,"name":943,"slug":944,"description":945,"support_type":761,"meta_title":8,"meta_description":8,"marketing_subtitle":232,"tile_subtitle":948,"tile_description":949,"id":941,"platforms_id":941,"docs_link":946},{"id":1030,"status":4,"created_on":1031,"modified_on":1032,"name":1033,"slug":1034,"description":1035,"docs_link":1036,"priority":8,"has_sdk":8,"sort":1037,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":1038,"show_in_spa":230,"is_file_format":8,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":1038,"tile_subtitle":1038,"tile_description":1039,"is_enterprise":229,"is_popular":230,"primary_use_case":8,"hierarchy_handling":8,"best_for":8,"file_extension":8,"format_code_example":8,"format_to_extension":8,"upload_features":8,"icon":1040,"meta_image":1042,"primary_tag":1044,"tags":1056,"integration_methods":1103,"recommended_methods":1123,"default_integration_method":1124,"faq_categories":1131,"translations":1134,"platforms_id":1030},72,"2022-06-16T09:08:11.000Z","2026-04-27T18:16:54.000Z","Strapi","strapi","Enjoy seamless integration of Strapi & Localazy and translate your website efficiently. Download the official Localazy plugin in the Strapi Marketplace to get started!","\u002Fdocs\u002Fstrapi\u002Fstrapi-plugin-introduction",54,"Localization Plugin","Localize your Strapi website with our official localization plugin. Easy setup and installation.",{"id":1041},"cde7f1d0-f2e0-4243-929e-a3f8f9146e69",{"id":1043},"5995b721-a2ea-487e-ad4b-298a489bbd24",{"id":29,"status":4,"sort":36,"created_on":271,"label":1045,"hidden":229,"icon":1046,"translations":1048},"CMS",{"id":1047},"1172a655-928c-4594-9263-d8afdfd9cd79",[1049,1050,1052,1054],{"id":29,"languages_code":249,"label":1045},{"id":1051,"languages_code":252,"label":1045},73,{"id":1053,"languages_code":256,"label":1045},81,{"id":1055,"languages_code":260,"label":1045},84,[1057,1069,1082,1089],{"id":166,"status":4,"sort":162,"label":1058,"hidden":229,"created_on":271,"icon":8,"translations":1059},"Multilingual SEO",[1060,1061,1064,1067],{"id":166,"languages_code":249,"label":1058},{"id":1062,"languages_code":252,"label":1063},89,"SEO multilingüe",{"id":1065,"languages_code":256,"label":1066},94,"Vícejazyčné SEO",{"id":1068,"languages_code":260,"label":1058},99,{"id":222,"status":4,"sort":222,"label":1070,"hidden":229,"created_on":271,"icon":1071,"translations":1073},"E-commerce",{"id":1072},"e782ed3f-d954-45ca-8b17-5bf5fe95f30a",[1074,1075,1078,1080],{"id":222,"languages_code":249,"label":1070},{"id":1076,"languages_code":252,"label":1077},132,"Comercio electrónico",{"id":1079,"languages_code":256,"label":1070},137,{"id":1081,"languages_code":260,"label":1070},142,{"id":29,"status":4,"sort":36,"label":1045,"hidden":229,"created_on":271,"icon":1083,"translations":1084},{"id":1047},[1085,1086,1087,1088],{"id":29,"languages_code":249,"label":1045},{"id":1051,"languages_code":252,"label":1045},{"id":1053,"languages_code":256,"label":1045},{"id":1055,"languages_code":260,"label":1045},{"id":16,"status":4,"sort":57,"label":1090,"hidden":229,"created_on":271,"icon":1091,"translations":1093},"Marketing tools",{"id":1092},"098fe6a4-dd2e-42d8-937e-2d8121e6e266",[1094,1095,1098,1101],{"id":16,"languages_code":249,"label":1090},{"id":1096,"languages_code":252,"label":1097},43,"Herramientas de marketing",{"id":1099,"languages_code":256,"label":1100},48,"Marketingové nástroje",{"id":1102,"languages_code":260,"label":1090},58,[1104],{"id":67,"status":4,"sort":8,"label":1105,"alternative_label":1106,"slug":1107,"description":1108,"documentation_link":1109,"loc_icon":1110,"is_official_plugin":230,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1111},"Official Strapi Plugin","Official Plugin","official-strapi-plugin","Our developers maintain an official Strapi localization plugin. Start in a few clicks!","\u002Fdocs\u002Fstrapi","localazy-box",[1112,1113,1116,1117,1120],{"id":67,"languages_code":249,"label":1105,"description":1108,"slug":1107},{"id":1096,"languages_code":252,"label":1114,"description":1115,"slug":8},"Complemento Oficial de Strapi","Nuestros desarrolladores mantienen un complemento oficial de localización de Strapi. ¡Empiece en unos pocos clics!",{"id":275,"languages_code":260,"label":1105,"description":1108,"slug":1107},{"id":701,"languages_code":256,"label":1118,"description":1119,"slug":8},"Oficiál Plugin Strapi","Naši vývojáři udržují a neustále vylepšují oficiální lokalizační plugin Strapi. Začněte několika kliknutími!",{"id":1062,"languages_code":323,"label":1121,"description":1122,"slug":8},"Offizielles Strapi-Plugin","Unsere Entwickler pflegen ein offizielles Strapi-Lokalisierungs-Plugin. Starten Sie mit ein paar Klicks!",[],{"id":67,"status":4,"sort":8,"label":1105,"alternative_label":1106,"slug":1107,"description":1108,"documentation_link":1109,"loc_icon":1110,"is_official_plugin":230,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1125},[1126,1127,1128,1129,1130],{"id":67,"languages_code":249,"label":1105,"description":1108,"slug":1107},{"id":1096,"languages_code":252,"label":1114,"description":1115,"slug":8},{"id":275,"languages_code":260,"label":1105,"description":1108,"slug":1107},{"id":701,"languages_code":256,"label":1118,"description":1119,"slug":8},{"id":1062,"languages_code":323,"label":1121,"description":1122,"slug":8},[1132],{"id":358,"status":4,"created_on":1133,"sort":8,"slug":1034,"label":1033,"on_faq_index":8},"2022-06-16T09:24:13.000Z",[1135],{"languages_code":249,"name":1033,"slug":1034,"description":1035,"support_type":1038,"meta_title":8,"meta_description":8,"marketing_subtitle":1038,"tile_subtitle":1038,"tile_description":1039,"id":1030,"platforms_id":1030,"docs_link":1036},{"id":278,"status":4,"created_on":581,"modified_on":1137,"name":1138,"slug":1139,"description":8,"docs_link":1140,"priority":8,"has_sdk":229,"sort":364,"highlighted":229,"in_menu":230,"changefreq":8,"support_type":1141,"show_in_spa":230,"is_file_format":229,"meta_title":8,"meta_description":8,"featured_on_web":230,"marketing_subtitle":1142,"tile_subtitle":1143,"tile_description":1144,"is_enterprise":229,"is_popular":230,"primary_use_case":8,"hierarchy_handling":8,"best_for":8,"file_extension":8,"format_code_example":8,"format_to_extension":8,"upload_features":1145,"icon":1146,"meta_image":1148,"primary_tag":1150,"tags":1164,"integration_methods":1172,"recommended_methods":1187,"default_integration_method":1188,"faq_categories":1194,"translations":1195,"platforms_id":278},"2024-12-20T15:00:22.000Z","Figma","figma","\u002Fdocs\u002Fintegrations\u002Fquick-start-figma","plugin","Figma plugin","Localization plugin","Quickly translate your Figma designs and seamlessly reuse the translations during the development of your project.",[],{"id":1147},"813745a4-a77d-4735-93b7-e0dd731b2304",{"id":1149},"7573fed6-8817-4cb4-84d2-be327e6c4891",{"id":22,"status":4,"sort":62,"created_on":271,"label":1151,"hidden":229,"icon":1152,"translations":1154},"Design tools",{"id":1153},"1053d863-b690-4fbd-aadf-dbf2ba282768",[1155,1156,1159,1162],{"id":22,"languages_code":249,"label":1151},{"id":1157,"languages_code":252,"label":1158},42,"Herramientas de diseño",{"id":1160,"languages_code":256,"label":1161},49,"Nástroje pro návrh",{"id":1163,"languages_code":260,"label":1151},57,[1165],{"id":22,"status":4,"sort":62,"label":1151,"hidden":229,"created_on":271,"icon":1166,"translations":1167},{"id":1153},[1168,1169,1170,1171],{"id":22,"languages_code":249,"label":1151},{"id":1157,"languages_code":252,"label":1158},{"id":1160,"languages_code":256,"label":1161},{"id":1163,"languages_code":260,"label":1151},[1173],{"id":62,"status":4,"sort":8,"label":1106,"alternative_label":1106,"slug":1174,"description":1175,"documentation_link":152,"loc_icon":1110,"is_official_plugin":230,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1176},"official-plugin","Our developers maintain an official plugin for this integration. Start in a few clicks!",[1177,1178,1182,1184],{"id":62,"languages_code":249,"label":1106,"description":1175,"slug":1174},{"id":1179,"languages_code":252,"label":1180,"description":1181,"slug":8},23,"Plugin Oficial","Nuestros desarrolladores mantienen un plugin oficial para esta integración. ¡Empiece con unos pocos clics!",{"id":1183,"languages_code":260,"label":1106,"description":1175,"slug":1174},29,{"id":666,"languages_code":256,"label":1185,"description":1186,"slug":8},"Oficiální Plugin","Naši vývojáři udržují a neustále vylepšují oficiální plugin pro tuto integraci. Začněte několika kliknutími!",[],{"id":62,"status":4,"sort":8,"label":1106,"alternative_label":1106,"slug":1174,"description":1175,"documentation_link":152,"loc_icon":1110,"is_official_plugin":230,"is_universal_plugin":229,"universal_plugin_vendor":8,"translations":1189},[1190,1191,1192,1193],{"id":62,"languages_code":249,"label":1106,"description":1175,"slug":1174},{"id":1179,"languages_code":252,"label":1180,"description":1181,"slug":8},{"id":1183,"languages_code":260,"label":1106,"description":1175,"slug":1174},{"id":666,"languages_code":256,"label":1185,"description":1186,"slug":8},[],[1196],{"languages_code":249,"name":1138,"slug":1139,"description":8,"support_type":1141,"meta_title":8,"meta_description":8,"marketing_subtitle":1142,"tile_subtitle":1143,"tile_description":1144,"id":278,"platforms_id":278,"docs_link":1140},[1198,1379,1589,1690,1809,1811],{"id":16,"name":1199,"url":8,"url_text":8,"status":4,"groups":1200},"Solutions",[1201,1210,1277,1309],{"navigation_items_group_id":1202},{"id":22,"sort":50,"status":4,"name":1203,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":230,"show_all_url":8,"represent_as_tile":229,"items":1205},"Featured Article","top",[1206],{"collection":1207,"item":1208},"blog_post_navigation_item_type",{"id":107,"status":4,"sort":8,"show_author_img":230,"blog_post_tag":1209,"description":8},"nav",{"navigation_items_group_id":1211},{"id":50,"sort":7,"status":4,"name":1212,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":1213,"represent_as_tile":230,"items":1214},"Your Role","\u002Froles",[1215,1227,1237,1247,1257,1267],{"collection":1216,"item":1217},"relation_navigation_item_type",{"id":7,"status":4,"sort":8,"name":1218,"item":1219},"CMO",[1220],{"collection":1221,"item":1222},"personas",{"id":7,"status":4,"sort":8,"slug":1223,"icon":1224},"chief-marketing-officers",{"id":1225,"title":1226},"526097d8-176f-48e5-83d3-2fc4d77061f9","La Mail Bulk",{"collection":1216,"item":1228},{"id":22,"status":4,"sort":8,"name":1229,"item":1230},"CTO",[1231],{"collection":1221,"item":1232},{"id":107,"status":4,"sort":8,"slug":1233,"icon":1234},"chief-technical-officers",{"id":1235,"title":1236},"f808fdf0-c78b-4294-ba59-fe25f46fe825","La Mechanic",{"collection":1216,"item":1238},{"id":174,"status":4,"sort":8,"name":1239,"item":1240},"Product Manager",[1241],{"collection":1221,"item":1242},{"id":166,"status":4,"sort":8,"slug":1243,"icon":1244},"product-managers",{"id":1245,"title":1246},"ea39586a-21fc-4b34-ba87-496028e5198f","La Worker",{"collection":1216,"item":1248},{"id":358,"status":4,"sort":8,"name":1249,"item":1250},"Translator",[1251],{"collection":1221,"item":1252},{"id":174,"status":4,"sort":8,"slug":1253,"icon":1254},"professional-translators",{"id":1255,"title":1256},"07945171-d51d-4ca8-96c0-21cde9db258f","La Chat",{"collection":1216,"item":1258},{"id":336,"status":4,"sort":8,"name":1259,"item":1260},"Developer",[1261],{"collection":1221,"item":1262},{"id":526,"status":4,"sort":8,"slug":1263,"icon":1264},"software-developers",{"id":1265,"title":1266},"1806e46d-c551-4845-bf42-4407344d229e","La Terminal",{"collection":1216,"item":1268},{"id":947,"status":4,"sort":8,"name":1269,"item":1270},"Localization Manager",[1271],{"collection":1221,"item":1272},{"id":57,"status":4,"sort":8,"slug":1273,"icon":1274},"localization-managers",{"id":1275,"title":1276},"dac69bd1-bf5d-41d0-87d4-dd13e314698a","La Language",{"navigation_items_group_id":1278},{"id":72,"sort":22,"status":4,"name":1279,"render_show_all_url":229,"show_all_url_position":1280,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1281},"Use cases","bottom",[1282,1287,1291,1296,1300,1305],{"collection":1283,"item":1284},"simple_link_navigation_item_type",{"id":853,"status":4,"sort":8,"url":1285,"url_text":1286,"show_favorite_icon":229},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fsoftware-localization","Software localization",{"collection":1283,"item":1288},{"id":941,"status":4,"sort":8,"url":1289,"url_text":1290,"show_favorite_icon":229},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fmobile-app-localization","Mobile app localization",{"collection":1283,"item":1292},{"id":1293,"status":4,"sort":8,"url":1294,"url_text":1295,"show_favorite_icon":229},25,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fwebsite-localization","Website localization",{"collection":1283,"item":1297},{"id":947,"status":4,"sort":8,"url":1298,"url_text":1299,"show_favorite_icon":229},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fdesign-localization","Design localization",{"collection":1283,"item":1301},{"id":1302,"status":4,"sort":8,"url":1303,"url_text":1304,"show_favorite_icon":229},28,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fgame-localization","Game localization",{"collection":1283,"item":1306},{"id":1183,"status":4,"sort":8,"url":1307,"url_text":1308,"show_favorite_icon":229},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fhelp-and-docs-localization","Help & docs localization",{"navigation_items_group_id":1310},{"id":67,"sort":16,"status":4,"name":1311,"render_show_all_url":229,"show_all_url_position":1280,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1312},"Industry",[1313,1323,1333,1342,1352,1361,1372],{"collection":1216,"item":1314},{"id":1179,"status":4,"sort":8,"name":1315,"item":1316},"Digital Agencies",[1317],{"collection":1221,"item":1318},{"id":62,"status":4,"sort":8,"slug":1319,"icon":1320},"digital-agencies",{"id":1321,"title":1322},"547f5619-b21d-4b29-86f1-8b2200313cde","La Digi Agency",{"collection":1216,"item":1324},{"id":305,"status":4,"sort":8,"name":1325,"item":1326},"Startups & SaaS",[1327],{"collection":1221,"item":1328},{"id":16,"status":4,"sort":8,"slug":1329,"icon":1330},"startups",{"id":1331,"title":1332},"da1516e2-4afc-40a2-bcbf-a8161e2d610d","La Saa S",{"collection":1216,"item":1334},{"id":16,"status":4,"sort":8,"name":1070,"item":1335},[1336],{"collection":1221,"item":1337},{"id":50,"status":4,"sort":8,"slug":1338,"icon":1339},"e-commerce",{"id":1340,"title":1341},"a3d09cd2-054f-4bb5-a0a2-d3d207db65df","La Ecommerce",{"collection":1216,"item":1343},{"id":170,"status":4,"sort":8,"name":1344,"item":1345},"FinTech Platforms",[1346],{"collection":1221,"item":1347},{"id":947,"status":4,"sort":8,"slug":1348,"icon":1349},"fintech",{"id":1350,"title":1351},"147339ba-07d1-4e5e-baad-23d27e60c919","La Money",{"collection":1216,"item":1353},{"id":853,"status":4,"sort":8,"name":1354,"item":1355},"Translation Agencies",[1356],{"collection":1221,"item":1357},{"id":853,"status":4,"sort":8,"slug":1358,"icon":1359},"translation-agencies",{"id":1360,"title":1276},"15d6fe33-2af8-4d6e-933d-5caa64394511",{"collection":1216,"item":1362},{"id":1363,"status":4,"sort":8,"name":1364,"item":1365},22,"Travel & Tourism",[1366],{"collection":1221,"item":1367},{"id":22,"status":4,"sort":8,"slug":1368,"icon":1369},"tourism",{"id":1370,"title":1371},"23a785e8-0ae5-4c4b-8452-aab1b58182a6","La Travel",{"collection":1216,"item":1373},{"id":1293,"status":4,"sort":8,"name":1374,"item":1375},"Nonprofit Causes",[1376],{"collection":1221,"item":1377},{"id":1302,"status":4,"sort":8,"slug":1378,"icon":8},"nonprofit",{"id":50,"name":1380,"url":8,"url_text":8,"status":4,"groups":1381},"Features",[1382,1441,1492,1538],{"navigation_items_group_id":1383},{"id":36,"sort":57,"status":4,"name":1384,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1385},"Localization",[1386,1394,1402,1409,1416,1420,1427,1434],{"collection":1216,"item":1387},{"id":696,"status":4,"sort":8,"name":1388,"item":1389},"Localization services",[1390],{"collection":1391,"item":1392},"products",{"id":72,"status":4,"slug":1393},"continuous-localization-team",{"collection":1216,"item":1395},{"id":251,"status":4,"sort":8,"name":1396,"item":1397},"Translation management",[1398],{"collection":1399,"item":1400},"term_landing_page",{"id":1183,"status":4,"slug":1401},"translation-management-system",{"collection":1216,"item":1403},{"id":362,"status":4,"sort":8,"name":1404,"item":1405},"Context Screenshots",[1406],{"collection":1391,"item":1407},{"id":43,"status":4,"slug":1408},"context-screenshots-ocr",{"collection":1216,"item":1410},{"id":340,"status":4,"sort":8,"name":1411,"item":1412},"Translation Glossary",[1413],{"collection":1391,"item":1414},{"id":162,"status":4,"slug":1415},"glossary",{"collection":1283,"item":1417},{"id":107,"status":4,"sort":8,"url":1418,"url_text":1419,"show_favorite_icon":229},"\u002Fdocs\u002Fgeneral\u002Freviewing-translations","Quality control",{"collection":1216,"item":1421},{"id":878,"status":4,"sort":8,"name":1422,"item":1423},"Connected Projects",[1424],{"collection":1391,"item":1425},{"id":7,"status":4,"slug":1426},"connected-projects",{"collection":1216,"item":1428},{"id":314,"status":4,"sort":8,"name":1429,"item":1430},"Plural handling",[1431],{"collection":1391,"item":1432},{"id":527,"status":4,"slug":1433},"plurals",{"collection":1216,"item":1435},{"id":318,"status":4,"sort":8,"name":1436,"item":1437},"Style guides",[1438],{"collection":1391,"item":1439},{"id":336,"status":4,"slug":1440},"style-guide",{"navigation_items_group_id":1442},{"id":29,"sort":62,"status":4,"name":1443,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1444},"Translation",[1445,1452,1459,1463,1470,1477,1485],{"collection":1216,"item":1446},{"id":751,"status":4,"sort":8,"name":1447,"item":1448},"Professional translations",[1449],{"collection":1399,"item":1450},{"id":526,"status":4,"slug":1451},"professional-translation-services",{"collection":1216,"item":1453},{"id":1099,"status":4,"sort":8,"name":1454,"item":1455},"Crowdsourced translations",[1456],{"collection":1391,"item":1457},{"id":67,"status":4,"slug":1458},"share-tm",{"collection":1283,"item":1460},{"id":50,"status":4,"sort":8,"url":1461,"url_text":1462,"show_favorite_icon":229},"\u002Fdocs\u002Fgeneral\u002Ftranslating-strings","Translation interface",{"collection":1216,"item":1464},{"id":364,"status":4,"sort":8,"name":1465,"item":1466},"Machine translations",[1467],{"collection":1391,"item":1468},{"id":50,"status":4,"slug":1469},"machine-translation",{"collection":1216,"item":1471},{"id":278,"status":4,"sort":8,"name":1472,"item":1473},"Localazy AI translation",[1474],{"collection":1391,"item":1475},{"id":1183,"status":4,"slug":1476},"localazy-ai",{"collection":1216,"item":1478},{"id":1479,"status":4,"sort":8,"name":1480,"item":1481},61,"Translation Memory",[1482],{"collection":1391,"item":1483},{"id":666,"status":4,"slug":1484},"translation-memory",{"collection":1216,"item":1486},{"id":603,"status":4,"sort":8,"name":1487,"item":1488},"Code & placeholders",[1489],{"collection":1391,"item":1490},{"id":526,"status":4,"slug":1491},"code-and-placeholders",{"navigation_items_group_id":1493},{"id":43,"sort":67,"status":4,"name":1494,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1495},"Management",[1496,1500,1507,1515,1523,1530,1534],{"collection":1283,"item":1497},{"id":67,"status":4,"sort":8,"url":1498,"url_text":1499,"show_favorite_icon":229},"\u002Fdocs\u002Fgeneral\u002Fdefining-user-roles","User roles",{"collection":1216,"item":1501},{"id":309,"status":4,"sort":8,"name":1502,"item":1503},"Duplicity Linking",[1504],{"collection":1391,"item":1505},{"id":170,"status":4,"slug":1506},"duplicity-linking",{"collection":1216,"item":1508},{"id":1509,"status":4,"sort":8,"name":1510,"item":1511},52,"Language Permissions",[1512],{"collection":1391,"item":1513},{"id":99,"status":4,"slug":1514},"language-permissions",{"collection":1216,"item":1516},{"id":275,"status":1517,"sort":8,"name":1518,"item":1519},"draft","Automations",[1520],{"collection":1391,"item":1521},{"id":174,"status":4,"slug":1522},"automations",{"collection":1216,"item":1524},{"id":1102,"status":4,"sort":8,"name":1525,"item":1526},"Branching",[1527],{"collection":1391,"item":1528},{"id":947,"status":4,"slug":1529},"branching",{"collection":1283,"item":1531},{"id":99,"status":1517,"sort":8,"url":1532,"url_text":1533,"show_favorite_icon":229},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fsso-configuration","SSO",{"collection":1283,"item":1535},{"id":1363,"status":1517,"sort":8,"url":1536,"url_text":1537,"show_favorite_icon":229},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Flanguage-statistics","Reporting",{"navigation_items_group_id":1539},{"id":150,"sort":72,"status":4,"name":1540,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1541},"Development",[1542,1548,1554,1561,1568,1575,1582],{"collection":1216,"item":1543},{"id":1183,"status":4,"sort":8,"name":130,"item":1544},[1545],{"collection":1391,"item":1546},{"id":36,"status":4,"slug":1547},"translation-api",{"collection":1216,"item":1549},{"id":222,"status":4,"sort":8,"name":1550,"item":1551},"Localazy CLI",[1552],{"collection":1391,"item":1553},{"id":62,"status":4,"slug":352},{"collection":1216,"item":1555},{"id":527,"status":4,"sort":8,"name":1556,"item":1557},"Language CDN",[1558],{"collection":1391,"item":1559},{"id":107,"status":4,"slug":1560},"language-cdn",{"collection":1216,"item":1562},{"id":1302,"status":4,"sort":8,"name":1563,"item":1564},"Releases",[1565],{"collection":1391,"item":1566},{"id":57,"status":4,"slug":1567},"releases",{"collection":1216,"item":1569},{"id":1163,"status":1517,"sort":8,"name":1570,"item":1571},"Format Conversions",[1572],{"collection":1391,"item":1573},{"id":16,"status":4,"slug":1574},"format-conversions",{"collection":1216,"item":1576},{"id":259,"status":4,"sort":8,"name":1577,"item":1578},"Webhooks",[1579],{"collection":1391,"item":1580},{"id":580,"status":4,"slug":1581},"webhooks",{"collection":1216,"item":1583},{"id":701,"status":4,"sort":8,"name":1584,"item":1585},"Export Aliases",[1586],{"collection":1391,"item":1587},{"id":222,"status":4,"slug":1588},"export-aliases",{"id":107,"name":142,"url":8,"url_text":8,"status":4,"groups":1590},[1591,1680],{"navigation_items_group_id":1592},{"id":62,"sort":77,"status":4,"name":1593,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1594},"Most popular",[1595],{"collection":1216,"item":1596},{"id":29,"status":4,"sort":8,"name":142,"item":1597},[1598,1606,1613,1617,1621,1627,1631,1638,1642,1646,1650,1654,1658,1665,1672],{"collection":1599,"item":1600},"platforms",{"id":57,"status":4,"sort":7,"slug":1601,"name":1602,"icon":1603},"android","Android",{"id":1604,"title":1605},"ff965add-53b0-44ad-b27c-ea4ef641d384","Ic Outline Android",{"collection":1599,"item":1607},{"id":62,"status":4,"sort":16,"slug":1608,"name":1609,"icon":1610},"ios","iOS",{"id":1611,"title":1612},"886285d7-816a-4430-b5a5-edfe307b238e","Ios",{"collection":1599,"item":1614},{"id":222,"status":4,"sort":22,"slug":226,"name":225,"icon":1615},{"id":239,"title":1616},"Logos React",{"collection":1599,"item":1618},{"id":170,"status":4,"sort":107,"slug":390,"name":389,"icon":1619},{"id":397,"title":1620},"Vue",{"collection":1599,"item":1622},{"id":158,"status":4,"sort":50,"slug":1623,"name":1624,"icon":1625},"angular","Angular",{"id":1626,"title":1624},"2a31a97a-48c5-4531-aa36-41c9dd0bdbef",{"collection":1599,"item":1628},{"id":7,"status":4,"sort":57,"slug":471,"name":470,"icon":1629},{"id":485,"title":1630},"Logos Flutter",{"collection":1599,"item":1632},{"id":22,"status":4,"sort":36,"slug":1633,"name":1634,"icon":1635},"typescript","TypeScript",{"id":1636,"title":1637},"8d1319b5-8a96-4199-8407-00add3418b1f","Logos Typescript Icon",{"collection":1599,"item":1639},{"id":580,"status":4,"sort":29,"slug":584,"name":583,"icon":1640},{"id":593,"title":1641},"Logos Javascript",{"collection":1599,"item":1643},{"id":29,"status":4,"sort":174,"slug":236,"name":673,"icon":1644},{"id":686,"title":1645},"Logos Json",{"collection":1599,"item":1647},{"id":99,"status":4,"sort":99,"slug":758,"name":757,"icon":1648},{"id":773,"title":1649},"Format",{"collection":1599,"item":1651},{"id":1030,"status":4,"sort":1037,"slug":1034,"name":1033,"icon":1652},{"id":1041,"title":1653},"Strapi Logo Purple",{"collection":1599,"item":1655},{"id":278,"status":4,"sort":364,"slug":1139,"name":1138,"icon":1656},{"id":1147,"title":1657},"Figma Icon",{"collection":1599,"item":1659},{"id":309,"status":4,"sort":340,"slug":1660,"name":1661,"icon":1662},"microsoft-excel","Microsoft Excel",{"id":1663,"title":1664},"7a175955-7b96-4561-939f-a0e1924faa40","Excel",{"collection":1599,"item":1666},{"id":320,"status":4,"sort":1479,"slug":1667,"name":1668,"icon":1669},"github-actions","GitHub Actions",{"id":1670,"title":1671},"da17554f-ac6d-443d-9bac-1f29645ec1c6","Github Icon",{"collection":1599,"item":1673},{"id":1674,"status":4,"sort":1675,"slug":1676,"name":1677,"icon":1678},97,999,"webflow","Webflow",{"id":1679,"title":1677},"ff43a386-52f8-499f-b77c-ab9a30f4a77e",{"navigation_items_group_id":1681},{"id":107,"sort":36,"status":4,"name":1682,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1683},"Explore more",[1684],{"collection":1685,"item":1686},"text_link_navigation_item_type",{"id":7,"status":4,"sort":8,"text":1687,"url":1688,"url_text":1689},"Localazy is a technology-agnostic platform supporting 50+ frameworks, file formats & popular tools.","\u002Fintegrations","See all integrations",{"id":7,"name":146,"url":8,"url_text":8,"status":4,"groups":1691},[1692,1716,1722],{"navigation_items_group_id":1693},{"id":7,"sort":29,"status":4,"name":1694,"render_show_all_url":229,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":8,"represent_as_tile":229,"items":1695},"Helpful Links",[1696,1699,1701,1705,1707,1710,1712],{"collection":1283,"item":1697},{"id":43,"status":4,"sort":8,"url":168,"url_text":1698,"show_favorite_icon":230},"Localazy Blog",{"collection":1283,"item":1700},{"id":150,"status":4,"sort":8,"url":152,"url_text":151,"show_favorite_icon":230},{"collection":1283,"item":1702},{"id":7,"status":4,"sort":8,"url":1703,"url_text":1704,"show_favorite_icon":229},"https:\u002F\u002Fdiscuss.localazy.com\u002F","Discussion Forum",{"collection":1283,"item":1706},{"id":29,"status":4,"sort":8,"url":160,"url_text":159,"show_favorite_icon":229},{"collection":1283,"item":1708},{"id":22,"status":4,"sort":8,"url":109,"url_text":1709,"show_favorite_icon":229},"Become a Partner",{"collection":1283,"item":1711},{"id":154,"status":4,"sort":8,"url":172,"url_text":171,"show_favorite_icon":229},{"collection":1283,"item":1713},{"id":162,"status":4,"sort":8,"url":1714,"url_text":1715,"show_favorite_icon":229},"\u002Ftags\u002Frelease-update","Release Updates",{"navigation_items_group_id":1717},{"id":16,"sort":150,"status":4,"name":1698,"render_show_all_url":230,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":168,"represent_as_tile":229,"items":1718},[1719],{"collection":1207,"item":1720},{"id":22,"status":4,"sort":8,"show_author_img":229,"blog_post_tag":1721,"description":8},"[USE LATEST FEATURED]",{"navigation_items_group_id":1723},{"id":57,"sort":43,"status":4,"name":151,"render_show_all_url":230,"show_all_url_position":1204,"show_favorite_icon":229,"show_all_url":152,"represent_as_tile":229,"items":1724},[1725,1739,1750,1759,1770,1780,1791,1799],{"collection":1216,"item":1726},{"id":107,"status":4,"sort":8,"name":1727,"item":1728},"General",[1729],{"collection":1730,"item":1731},"docs_section",{"id":16,"status":4,"sort":7,"slug":1732,"name":1727,"icon":1733,"featured_icon":1736},"general",{"id":1734,"title":1735},"423101f1-308c-42f1-8dfe-53272019e7cb","Global",{"id":1737,"title":1738},"0f7ca4cb-dc3b-4f62-b476-132ed5c4931f","General Doc",{"collection":1216,"item":1740},{"id":50,"status":4,"sort":8,"name":351,"item":1741},[1742],{"collection":1730,"item":1743},{"id":22,"status":4,"sort":16,"slug":352,"name":351,"icon":1744,"featured_icon":1747},{"id":1745,"title":1746},"2f7a4573-8265-4d76-8d55-ce0cc79b8983","Cli",{"id":1748,"title":1749},"3f76ff7b-0e74-4046-bb03-4ca99c3b66d5","Doc Cat Cli",{"collection":1216,"item":1751},{"id":67,"status":4,"sort":8,"name":283,"item":1752},[1753],{"collection":1730,"item":1754},{"id":174,"status":4,"sort":22,"slug":284,"name":283,"icon":1755,"featured_icon":1756},{"id":1745,"title":1746},{"id":1757,"title":1758},"20866781-e69b-4e01-9456-05437487b75c","API Doc",{"collection":1216,"item":1760},{"id":255,"status":4,"sort":8,"name":1761,"item":1762},"CDN",[1763],{"collection":1730,"item":1764},{"id":941,"status":4,"sort":107,"slug":1765,"name":1761,"icon":1766,"featured_icon":1767},"cdn",{"id":1734,"title":1735},{"id":1768,"title":1769},"a8ee9cb7-4e02-41f0-b595-eb518c3085b6","Doc Cat Cdn",{"collection":1216,"item":1771},{"id":57,"status":4,"sort":8,"name":1602,"item":1772},[1773],{"collection":1730,"item":1774},{"id":7,"status":4,"sort":50,"slug":1601,"name":1602,"icon":1775,"featured_icon":1777},{"id":1776,"title":1602},"fb8329ae-0c0c-4fbc-bcdc-83f2eeda1039",{"id":1778,"title":1779},"f7c0dec8-5b42-4943-ab3a-e3665723ad6f","Doc Cat Android",{"collection":1216,"item":1781},{"id":62,"status":4,"sort":8,"name":1609,"item":1782},[1783],{"collection":1730,"item":1784},{"id":107,"status":4,"sort":57,"slug":1608,"name":1609,"icon":1785,"featured_icon":1788},{"id":1786,"title":1787},"289e136c-55df-4d51-847b-1782a2308ee4","Ios Blue",{"id":1789,"title":1790},"2968d3f0-14b5-4427-82e7-f1ea2de17846","Doc Cat Ios",{"collection":1216,"item":1792},{"id":72,"status":4,"sort":8,"name":1138,"item":1793},[1794],{"collection":1730,"item":1795},{"id":99,"status":4,"sort":62,"slug":1139,"name":1138,"icon":1796,"featured_icon":1797},{"id":1745,"title":1746},{"id":1798,"title":1138},"f5e66b5b-a439-47f6-af4a-6ad261de2e87",{"collection":1216,"item":1800},{"id":77,"status":4,"sort":8,"name":1033,"item":1801},[1802],{"collection":1730,"item":1803},{"id":1179,"status":4,"sort":67,"slug":1034,"name":1033,"icon":1804,"featured_icon":1806},{"id":1805,"title":1033},"3b4b03c7-e131-49e6-a014-c8c2c8a2751e",{"id":1807,"title":1808},"1dd05c76-e517-4aea-a3d8-49cfddb40056","Strapi Doc",{"id":22,"name":175,"url":176,"url_text":175,"status":4,"groups":1810},[],{"id":57,"name":93,"url":1812,"url_text":93,"status":4,"groups":1813},"\u002Fbook-demo",[],{"id":1815,"owner":1816,"created_by":8,"sort":8,"title":1821,"slug":1822,"modified_on":53,"created_on":1823,"pinned":229,"badge":8,"priority":1824,"main_image":1825,"status":4,"tags":1826,"dictionary":1837,"reading_time":1838,"excerpt":-1,"og_title":53,"og_description":53,"og_image":53},"69e62c567ab1270001ede506",{"id":1817,"first_name":1818,"last_name":53,"slug":1819,"avatar":1820},"6824a22d63350c0001d5a5d4","Stephanie Casale","stephanie-casale","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F03\u002FStephanie.png","4 Arabic localization assumptions that fail in the real world, told by a Marine Corps linguist","4-arabic-localization-assumptions-that-fail-told-by-a-marine-corps-linguist","2026-06-09T17:41:36.000+02:00","0.7","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F06\u002FArabicLocal---Marine-Corps-5.png",[1827,1830,1834],{"id":278,"created_on":1828,"status":4,"label":1384,"slug":1829,"on_index_page":230},"2026-06-14 02:53:50","localization",{"id":1831,"created_on":1828,"status":4,"label":1832,"slug":1833,"on_index_page":229},646,"Business Development","business-development",{"id":278,"created_on":1828,"status":4,"label":1835,"slug":1836,"on_index_page":229},"Locales","locales",[],0,{"id":1840,"owner":1841,"created_by":8,"sort":8,"title":1846,"slug":1847,"modified_on":53,"created_on":1848,"pinned":229,"badge":8,"priority":1824,"main_image":1849,"status":4,"tags":1850,"dictionary":1856,"reading_time":1838,"excerpt":-1,"og_title":53,"og_description":53,"og_image":53},"69d78a237ab1270001eddabf",{"id":1842,"first_name":1843,"last_name":53,"slug":1844,"avatar":1845},"606c233dcf7b6a0001d1da93","Petr Hodný","petr-hodny","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fpetr.png","Translation API: Translate your content on the fly with Localazy AI!","translation-api-translate-your-content-on-the-fly-with-localazy-ai","2026-04-24T09:27:26.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F04\u002FLocalazy-AI-translation-api.png",[1851,1852,1855],{"id":278,"created_on":1828,"status":4,"label":283,"slug":284,"on_index_page":229},{"id":314,"created_on":1828,"status":4,"label":1853,"slug":1854,"on_index_page":230},"AI","ai",{"id":278,"created_on":1828,"status":4,"label":1384,"slug":1829,"on_index_page":230},[],{"post":1858,"relatedPosts":2018,"banner":2074},{"id":1859,"owner":1860,"created_by":8,"sort":8,"title":1865,"slug":1866,"modified_on":1867,"created_on":1868,"pinned":229,"badge":8,"priority":1824,"main_image":1869,"status":4,"tags":1870,"dictionary":1877,"reading_time":67,"excerpt":1934,"og_title":53,"og_description":53,"og_image":53,"content":1935,"meta_title":53,"meta_description":1936,"canonical":53,"cta":1937,"fullGhostPost":1944},"60a37fc7cf7b6a0001d1f1aa",{"id":1861,"first_name":1862,"last_name":53,"slug":1863,"avatar":1864},"61dc4e87df4bcb00010bd508","Mary Okosun","mary-okosun","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fokosun.png","How to localize your React app with LinguiJS and Localazy","how-to-localise-your-react-app-with-linguijs-and-localazy","2026-04-16T16:27:44.000+02:00","2026-02-19T08:28:00.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F02\u002FReact-with-lingui.png",[1871,1874,1875],{"id":278,"created_on":1828,"status":4,"label":1872,"slug":1873,"on_index_page":229},"HowTo","howto",{"id":278,"created_on":1828,"status":4,"label":225,"slug":226,"on_index_page":229},{"id":278,"created_on":1828,"status":4,"label":1876,"slug":1876,"on_index_page":230},"i18n",[1878,1883,1898,1907,1913],{"id":606,"status":4,"owner":1879,"created_on":1880,"title":225,"excerpt":1881,"content":1881,"slug":226,"meta_title":53,"meta_description":8,"canonical":8,"related_terms":1882},"2bac48a8-b362-482f-b574-3bc71dca4c5b","2022-03-17T12:22:55.000Z","React is a development kit written in NodeJS. It is used for building frontend components of applications. Notable apps that use React include Facebook and Netflix.\n",[],{"id":1884,"status":4,"owner":1879,"created_on":1885,"title":1886,"excerpt":1887,"content":1888,"slug":1889,"meta_title":53,"meta_description":53,"canonical":53,"related_terms":1890},79,"2026-05-12T07:09:23.000Z","Internationalization (i18n)","The process of making your software localizable.","Internationalization (i18n) is the process of preparing software, digital products, and content so they can be easily adapted for various languages, regions, and cultures without requiring extensive reengineering.\n\nThis foundational step ensures that a product can be efficiently localized to meet the needs of different global markets. To internationalize your software, you need to pay attention to technical requirements. The code structure and design has to be prepared to allow for [localization](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Flocalization).\n\nIt involves considering various linguistic and cultural factors during the initial design and development phases. This process should start, ideally, in the design phase. For example, you may want to have externalised strings so you can bring your strings to the translation management tool.\n\nEvery business looking to expand their reach and provide User Experiences (UX) across diverse markets needs to consider internationalization and then localization.\n\n## 🌐 Key points about internationalization (i18n): \n\n* Internationalization involves creating flexible and adaptable designs that accommodate various languages, scripts, and cultural norms.\n* By preparing content and software for localization, internationalization simplifies the process of translating and adapting products for specific markets.\n* This process includes using Unicode, supporting different character sets, and ensuring compatibility with various regional formats (dates, currencies, etc.).\n* Investing in internationalization upfront reduces the time and cost associated with localizing products for multiple markets.\n\nBy prioritizing internationalization, companies can create products that are more versatile and ready for global distribution, ensuring they meet the needs of international users effectively.","internationalization",[1891,1892,1894,1896],{"id":16,"slug":1829},{"id":107,"slug":1893},"translation",{"id":50,"slug":1895},"globalization",{"id":72,"slug":1897},"gilt",{"id":1899,"status":4,"owner":1879,"created_on":1880,"title":1900,"excerpt":1901,"content":1902,"slug":1903,"meta_title":8,"meta_description":8,"canonical":53,"related_terms":1904},80,"NodeJS","NodeJS is a run-time JavaScript enviroment for server-side use.","NodeJS is a run-time JavaScript envinroment for server-side use. It comes packaged with everything needed to run JavaScript on a server. It uses NPM as a package manager to add additional features. NodeJS is mainly used for creating web applications and serving websites to end-users. It is also a popular first language to learn due to it's small learning curve and its high use.\n\nYou can localize NodeJS apps using Localazy.","nodejs",[1905],{"id":1906,"slug":584},75,{"id":1908,"status":4,"owner":1879,"created_on":1880,"title":1634,"excerpt":1909,"content":1910,"slug":1633,"meta_title":8,"meta_description":8,"canonical":8,"related_terms":1911},74,"TypeScript is a language based on JavaScript made by Microsoft. ","TypeScript is designed for the development of large applications and transcompiles to JavaScript.\n\nIt was first created by Microsoft in 2012 after two years of internal development. You can find more information on the website: https:\u002F\u002Ftypescriptlang.org",[1912],{"id":1906,"slug":584},{"id":1914,"status":4,"owner":1915,"created_on":1916,"title":1917,"excerpt":1918,"content":1919,"slug":1920,"meta_title":53,"meta_description":53,"canonical":53,"related_terms":1921},255,"a5e46ee7-1f50-4f81-ae2d-68a664c76aa2","2026-05-12T07:09:24.000Z","ICU Message Format","A localization-friendly syntax that lets developers write dynamic, multilingual messages using placeholders and logic rules.","ICU Message Format is part of the [International Components for Unicode (ICU)](https:\u002F\u002Ficu.unicode.org \"https:\u002F\u002Ficu.unicode.org\") suite. It is widely used in localization to create dynamic, context-aware messages that adapt to grammatical and structural rules across languages. Instead of hardcoding separate strings for each scenario, developers use ICU Message Format to define templates that automatically adjust based on variables such as quantity, gender, or other contextual inputs.\n\nThis system is essential in software localization, where content like notifications, user messages, and UI text often depends on dynamic data. It allows translators to focus on conveying the intended meaning without restructuring sentences manually for every case or language.\n\nFor example, in English, the sentence “You have 1 new message” changes to “You have 5 new messages” depending on the number. In other languages, the change might involve gender-specific words, different sentence structures, or alternate verb conjugations. \n\nICU Message Format enables this by using placeholders and conditional logic, ensuring that messages are grammatically correct and natural-sounding in all supported languages.\n\n### 🧩 Highlights of ICU Message Format:\n\n* Handles pluralization, gender variations, and context-based message structures\n* Uses placeholders to insert dynamic values such as numbers, names, and dates\n* Supports nested messages and conditional formatting for advanced use cases\n* Integrates with localization platforms like Localazy, Phrase, and Transifex\n* Keeps translations consistent and reusable across multiple contexts\n* Reduces the need for multiple translation strings per language\n* Improves translation speed by minimizing structural rework \n\n### 🛠️ **Example:**\n\n```\n\"You have {NUM_MESSAGES, plural, one {# new message} other {# new messages}}.\"\n```","icu-message-format",[1922,1923,1926,1929,1931],{"id":982,"slug":236},{"id":1924,"slug":1925},90,"icu",{"id":1927,"slug":1928},116,"yaml",{"id":532,"slug":1930},"placeholder",{"id":1932,"slug":1933},274,"software-localization","This article implements a fully localized React application using LinguiJS as the i18n framework and Localazy as the translation delivery and management platform. Easy and convenient!","\u003Cp>When it comes to handling translation in a React application, there are a couple of options available in the tech ecosystem. A major package that stands out is \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flingui.dev\">LinguiJS\u003C\u002Fa>\u003C\u002Fstrong>,\u003Cstrong> \u003C\u002Fstrong>a popular JavaScript\u002FTypescript internationalization (i18n) library that is used to internationalize React apps and that offers robust multilingual support. \u003C\u002Fp>\u003Cp>In this guide, we will explore LinguiJS in depth and demonstrate how to use it with Localazy to handle translation in a React application. We’ll be going through a basic translation workflow, using LinguiJS translation and its i18n support to easily localize your app to other languages.\u003C\u002Fp>\u003Ch2 id=\"prerequisites\">📋 Prerequisites \u003Ca class=\"markdownit-header-anchor\" href=\"#prerequisites\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cul>\u003Cli>Install\u003Cstrong>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fnodejs.org\u002Fen\u002F\"> Node.js\u003C\u002Fa>\u003C\u002Fstrong> \u003C\u002Fstrong>(v20 or higher) if you don't have it already.\u003C\u002Fli>\u003Cli>Install\u003Cstrong> \u003Ca href=\"https:\u002F\u002Flingui.dev\u002Fref\u002Fcli\">LinguiJS CLI \u003C\u002Fa>\u003C\u002Fstrong>(v5 and higher)\u003Cstrong> \u003C\u002Fstrong>using the command \u003Ccode>npm install --save-dev @lingui\u002Fcli\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>It is important to note that \u003Cstrong>Create React App (CRA) is deprecated and no longer recommended\u003C\u002Fstrong>. We will be using \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fvite.dev\">Vite\u003C\u002Fa>\u003C\u002Fstrong>, which is fast, lightweight, supports TypeScript, JSX, and also modern bundling.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"app-setup\">➡️ App setup \u003Ca class=\"markdownit-header-anchor\" href=\"#app-setup\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Let’s start with our demo React application. We will be building\u003Cstrong> a user profile dashboard\u003C\u002Fstrong> that contains user basic information such as email, location, technologies and a CTA button.\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Create a new project\u003C\u002Fstrong> with the following command:\u003C\u002Fli>\u003C\u002Fol>\u003Cpre>\u003Ccode>npm create vite@latest localazy-react-example --template react-ts\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1460\" height=\"1396\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png 1460w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>2. At this point, \u003Cstrong>we are ready to run our project locally\u003C\u002Fstrong>. To start the local development server, visit the url \u003Ca href=\"http:\u002F\u002Flocalhost:5173\u002F\">http:\u002F\u002Flocalhost:5173\u002F\u003C\u002Fa> or run the command:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm run dev\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>3. Now that we have our basic React app setup successful, we will be making some \u003Cstrong>updates and edits to some components of our project directory\u003C\u002Fstrong>. \u003C\u002Fp>\u003Cp>The \u003Ccode>App.tsx\u003C\u002Fcode> file in the root directory should contain the following code snippets. This builds the UI for the user profile and a sidebar that will be used to switch between languages later on.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-React.js\">\u002F\u002F App.tsx\n\nimport \".\u002FApp.css\";\nimport UserProfile from \".\u002Fcomponents\u002FUserProfile\";\n\nfunction App() {\n  return (\n    &lt;&gt;\n      &lt;div&gt;\n        &lt;button className=\"side-bar\"&gt;\n          English\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\"&gt;\n          Spanish\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\"&gt;\n          Czech\n        &lt;\u002Fbutton&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;UserProfile \u002F&gt;\n    &lt;\u002F&gt;\n  );\n}\n\nexport default App;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>We need to \u003Cstrong>create a new componen\u003C\u002Fstrong>t\u003Cstrong> \u003C\u002Fstrong>called the \u003Ccode>UserProfile.tsx\u003C\u002Fcode> in the \u003Cem>src\u002Fcomponents\u003C\u002Fem> folder. Add an image in the assets folder that can be referenced and imported as the profile image.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-React.js\">\u002F\u002F src\u002Fcomponents\u002FUserProfile.tsx\n\nimport image from \"..\u002Fassets\u002FprofileImage.png\";\n\nfunction UserProfile() {\n  return (\n    &lt;div&gt;\n      &lt;img src={image} alt=\"User avatar\" className=\"logo\" \u002F&gt;\n       &lt;h1&gt;\n        Hello Mary Okosun\n      &lt;\u002Fh1&gt;\n\n      &lt;p&gt;\n        Email: mary.okosun@example.com\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        Country: Lagos, Nigeria\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        Technologies: React.js, Nest.js, Typescript and Typeorm.\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        Bio: I am a backend developer with extensive experience in designing\n          and building scalable, high-performance web applications. I specialize\n          in server-side technologies such as Node.js, TypeScript, and Nest.js,\n          and I have a strong background in working with relational and\n          non-relational databases, including PostgreSQL and MongoDB. I enjoy solving\n          complex problems, optimizing application performance, and\n          collaborating with cross-functional teams to deliver robust,\n          production-ready solutions. I am passionate about continuous learning\n          and adopting best practices in backend development.\n      &lt;\u002Fp&gt;\n      &lt;button&gt;\n        Hire Me\n      &lt;\u002Fbutton&gt;\n    &lt;\u002Fdiv&gt;\n  );\n}\n\nexport default UserProfile;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You can find the styling CSS file in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdanielnewell\u002Flinguijs-sample\">starter project\u003C\u002Fa> with all the component code on GitHub. You can also see our user profile application below.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1436\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"internationalize-a-react-app-with-lingui\">🌐 Internationalize a React app with Lingui \u003Ca class=\"markdownit-header-anchor\" href=\"#internationalize-a-react-app-with-lingui\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Ch3 id=\"installation\">Installation \u003Ca class=\"markdownit-header-anchor\" href=\"#installation\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>The next step is to \u003Cstrong>install LinguiJS\u003C\u002Fstrong> for the in-app translation management. Lingui needs a transpiler to work. This transpiler is responsible for transforming Lingui's JS\u002FJSX components into \u003Ca href=\"https:\u002F\u002Flingui.dev\u002Fguides\u002Fmessage-format\">ICU MessageFormat\u003C\u002Fa> and extracting message IDs. There are two supported transporters, which are the \u003Cstrong>Babel\u003C\u002Fstrong> and \u003Cstrong>SWC \u003C\u002Fstrong>transpilers. For this project, we will be using the Babel transpiler. \u003C\u002Fp>\u003Cblockquote>\u003Ca href=\"https:\u002F\u002Fbabeljs.io\">Babel\u003C\u002Fa> is a JavaScript transpiler that converts modern code into backward-compatible versions and allows custom syntax transformations\u003C\u002Fblockquote>\u003Cp>Open the newly created project terminal and install the following dependencies:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm install --save-dev @lingui\u002Fcli\nnpm install --save @lingui\u002Freact\nnpm install --save-dev @lingui\u002Fbabel-plugin-lingui-macro\nnpm install --save-dev @lingui\u002Fvite-plugin\nnpm install --save-dev @lingui\u002Fformat-json\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cul>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fcli\u003C\u002Fstrong>\u003C\u002Fem>: If not already installed during the prerequisite stage, this installs the Lingui command-line tool.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save @lingui\u002Freact\u003C\u002Fstrong>: \u003C\u002Fem>This allows us to use Lingui inside React components.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fbabel-plugin-lingui-macro\u003C\u002Fstrong>: \u003C\u002Fem>This plugin makes the macros work so that Lingui can capture text, replace placeholders, and generate translation catalogs.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fvite-plugin\u003C\u002Fstrong>\u003C\u002Fem>: This plugin integrates Lingui into the Vite build system, making it compatible with Vite and ensuring message catalogs load and macros work during development and production builds.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fformat-json\u003C\u002Fstrong>\u003C\u002Fem>: This installs the JSON formatter plugin, which is needed if we want to save our extracted messages in a JSON format.\u003C\u002Fli>\u003C\u002Ful>\u003Ch3 id=\"linguijs-configuration\">LinguiJS configuration \u003Ca class=\"markdownit-header-anchor\" href=\"#linguijs-configuration\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Create a new configuration file, \u003Ccode>\u003Cstrong>.babelrc\u003C\u002Fstrong>\u003C\u002Fcode>, at the root directory and add the following snippet:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"plugins\": [\"@lingui\u002Fbabel-plugin-lingui-macro\"]\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Make sure to update the file \u003Ccode>vite.config.ts\u003C\u002Fcode> to include the Babel lingui macro plugin. This is because the \u003Ccode>@vitejs\u002Fplugin-react\u003C\u002Fcode> does not use the Babel config \u003Ccode>.babelrc\u003C\u002Fcode> created in our project by default. We have to specify the Babel options directly in \u003Ccode>vite.config.ts\u003C\u002Fcode>:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { defineConfig } from \"vite\";\nimport react from \"@vitejs\u002Fplugin-react\";\nimport { lingui } from \"@lingui\u002Fvite-plugin\";\n\nexport default defineConfig({\n  plugins: [\n    react({\n      babel: {\n        plugins: [\"@lingui\u002Fbabel-plugin-lingui-macro\"],\n      },\n    }),\n    lingui(),\n  ],\n});\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Next, we will create a Lingui config file \u003Ccode>lingui.config.ts\u003C\u002Fcode> at the root of our app with the following code:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { formatter } from \"@lingui\u002Fformat-json\";\n\nexport default {\n  locales: [\"en\", \"es\", \"cs\"],\n  sourceLocale: \"en\",\n  catalogs: [\n    {\n      path: \"src\u002Flocales\u002F{locale}\u002Fmessages\",\n      include: \"src\",\n    },\n  ],\n  format: formatter(),\n};\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>We are \u003Cstrong>defining our supported locales in the \u003Ccode>locales\u003C\u002Fcode> array\u003C\u002Fstrong>; we’ll use English(\u003Cem>en),\u003C\u002Fem> Spanish(\u003Cem>es), \u003C\u002Fem>and Czech\u003Cem>(cs)\u003C\u002Fem>. \u003Ccode>en\u003C\u002Fcode> is the default \u003Ccode>sourceLocale\u003C\u002Fcode>. \u003C\u002Fp>\u003Cp>Inside the \u003Ccode>catalogs\u003C\u002Fcode> array, define the file \u003Ccode>\u003Cstrong>path\u003C\u002Fstrong>\u003C\u002Fcode> to write the extracted translation messages. Then define an \u003Ccode>\u003Cstrong>include\u003C\u002Fstrong>\u003C\u002Fcode> array of paths where Lingui should look for translations in our code, which is the entire \u003Ccode>src\u003C\u002Fcode> directory. The format is passed to be in JSON format using the formatter package installed during setup.\u003C\u002Fp>\u003Cp>Afterwards, we need to do a little modification and \u003Cstrong>add new scripts to the \u003Ccode>package.json\u003C\u002Fcode>\u003C\u002Fstrong>, which will help to extract and also compile our translations. Add the following command:\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F package.json\n\n{\n   \"scripts\": {\n   \t  ....,\n      \"extract\": \"lingui extract\",\n      \"compile\": \"lingui compile --typescript\"\n   }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"internationalization\">🗣️ Internationalization \u003Ca class=\"markdownit-header-anchor\" href=\"#internationalization\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>It's time to prepare our app for content translation. The internationalization process begins with \u003Cstrong>wrapping all our static tags in the \u003Ccode>UserProfile.tsx\u003C\u002Fcode>\u003C\u002Fstrong> file using the \u003Ccode>Trans\u003C\u002Fcode> tag. \u003C\u002Fp>\u003Cp>The \u003Ccode>Trans\u003C\u002Fcode> tag is a JSX Macros that translates React components. It handles translations of messages, including variables and other React components.\u003C\u002Fp>\u003Cp>Update the \u003Ccode>UserProfile.tsx\u003C\u002Fcode> file to wrap all static messages and text with the \u003Ccode>Trans\u003C\u002Fcode> macro tag:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { Trans } from \"@lingui\u002Freact\u002Fmacro\";\nimport image from \"..\u002Fassets\u002FprofileImage.png\";\n\nfunction UserProfile() {\n  return (\n    &lt;div&gt;\n      &lt;img src={image} alt=\"User avatar\" className=\"logo\" \u002F&gt;\n      &lt;h1&gt;\n        &lt;Trans&gt;Hello, I am Mary Okosun&lt;\u002FTrans&gt;\n      &lt;\u002Fh1&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;Email: mary.okosun@example.com&lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;Country: Lagos, Nigeria&lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;Technologies: React.js, Nest.js, Typescript and Typeorm.&lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;\n          Bio: I am a backend developer with extensive experience in designing\n          and building scalable, high-performance web applications. I specialize\n          in server-side technologies such as Node.js, TypeScript, and Nest.js,\n          and I have a strong background in working with relational and\n          non-relational databases, including PostgreSQL and MongoDB. I enjoy solving\n          complex problems, optimizing application performance, and\n          collaborating with cross-functional teams to deliver robust,\n          production-ready solutions. I am passionate about continuous learning\n          and adopting best practices in backend development.\n        &lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n      &lt;button&gt;\n        &lt;Trans&gt;Hire Me&lt;\u002FTrans&gt;\n      &lt;\u002Fbutton&gt;\n    &lt;\u002Fdiv&gt;\n  );\n}\n\nexport default UserProfile;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>To test that our script is set up correctly, run the following \u003Ccode>extract\u003C\u002Fcode> command. This command will pull all the \u003Ccode>Trans\u003C\u002Fcode> wrapped text into translatable files:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm run extract\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1038\" height=\"402\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png 1038w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>The command will create three new files in three locales folders with the different locales as their folder name, as seen below.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.24.55-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"728\" height=\"312\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.24.55-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.24.55-PM.png 728w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"localization-with-localazy\">⛵️ Localization with Localazy \u003Ca class=\"markdownit-header-anchor\" href=\"#localization-with-localazy\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Ch3 id=\"create-a-new-project\">Create a new project \u003Ca class=\"markdownit-header-anchor\" href=\"#create-a-new-project\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Go to \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fregister\">Localazy signup\u003C\u002Fa>, join our community by creating an account, then create a new project. \u003C\u002Fp>\u003Cp>You can use the Public project type so other contributors can freely help with the translation of your app. Select English as your source language.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1890\" height=\"878\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 1890w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch3 id=\"content-upload\">Content upload \u003Ca class=\"markdownit-header-anchor\" href=\"#content-upload\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>To upload your content, follow these steps:\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Install \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Finstallation\">Localazy CLI\u003C\u002Fa> \u003C\u002Fstrong>by running the command in our demo app’s terminal:\u003C\u002Fli>\u003C\u002Fol>\u003Cpre>\u003Ccode>npm install -g @localazy\u002Fcli\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>2. Afterwards, \u003Cstrong>create a configuration file, \u003Ccode>localazy.json\u003C\u002Fcode>, in the root folder \u003C\u002Fstrong>of your project. Modify the file and include the following snippets:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n    \"writeKey\": \"your-write-key\", \n    \"readKey\": \"your-read-key\",\n  \n    \"upload\": {\n      \"type\": \"json\",\n      \"files\": \"src\u002Flocales\u002Fen\u002Fmessages.json\"\n    },\n  \n    \"download\": {\n      \"files\": \"src\u002Flocales\u002F${lang}\u002Fmessages.json\"\n    }\n  }\n \u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The \u003Cstrong>writeKey\u003C\u002Fstrong> and the \u003Cstrong>readKey\u003C\u002Fstrong> can be obtained from the \u003Cem>Access Keys\u003C\u002Fem> tab on the project dashboard. These keys are used to authorize your request.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"875\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>The \u003Cstrong>upload\u003C\u002Fstrong> section instructs Localazy CLI on how to collect files to be uploaded. In our project, the type of file we'll upload to the dashboard is a JSON file, which is the \u003Cstrong>\u003Ccode>src\u002Flocales\u002Fen\u002Fmessages.json\u003C\u002Fcode>\u003C\u002Fstrong> . \u003C\u002Fp>\u003Cp>The \u003Cstrong>download\u003C\u002Fstrong> section describes how to process translated files and where to write them. In our case, after successful translation, the downloaded translated files will be placed in \u003Cstrong>\u003Ccode>src\u002Flocales\u002F${lang}\u002Fmessages.json\u003C\u002Fcode>, \u003C\u002Fstrong>where \u003Cem>lang\u003C\u002Fem> is the language of the translated file.\u003C\u002Fp>\u003Cp>3. After setting up your localazy config file, you can go ahead and upload the content to the Localazy dashboard with the command:\u003C\u002Fp>\u003Cpre>\u003Ccode>localazy upload\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Now you can either refresh the browser to see the content or redirect to the project link in the terminal:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1168\" height=\"628\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png 1168w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>4. The next step is to add new languages. In our application, we will be translating our content to \u003Cstrong>Czech (cs)\u003C\u002Fstrong> and \u003Cstrong>Spanish(es)\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1301\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F03\u002F1000014197.jpg\" class=\"kg-image\" alt loading=\"lazy\" width=\"1920\" height=\"1126\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2026\u002F03\u002F1000014197.jpg 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2026\u002F03\u002F1000014197.jpg 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2026\u002F03\u002F1000014197.jpg 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F03\u002F1000014197.jpg 1920w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>We will find different suggestions provided for us. You can use some of the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fmachine-translations\u002F\">machine translation\u003C\u002Fa> options, like \u003Cstrong>Google Translate\u003C\u002Fstrong> or \u003Cstrong>DeepL\u003C\u002Fstrong>, directly from the translation interface, or for bulk and automated translation of your texts. You can also use \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Flocalazy-ai?utm_source=google&amp;utm_medium=cpc&amp;utm_term=&amp;campaign_id=22142518317&amp;ad_group_id=173401758389&amp;ad_id=729902624301&amp;match_type=&amp;target=dsa-426055549808&amp;gad_source=1&amp;gad_campaignid=22142518317&amp;gbraid=0AAAAACP68mW3KYaZlttQwAtwwofAqL1Nf&amp;gclid=Cj0KCQiAhtvMBhDBARIsAL26pjE7LdirZPXXeKUhYl_pEpbgZNR6U0tcTDFUXKJOK5FfSo4yZ9wXFA0aAoBgEALw_wcB\">Localazy AI\u003C\u002Fa> \u003C\u002Fstrong>if you're looking for a more accurate result that consistently uses your project's glossary, context, and style guide automatically.\u003C\u002Fp>\u003Cblockquote>The best translation option for your project will depend on your goals, needs, and budget. Check out the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffaq\u002Fmachine-translation\u002Fwhat-is-the-best-machine-translation-engine\">documentation on MT\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fblog\u002Fa-practical-guide-to-translating-with-localazy-ai\">this article\u003C\u002Fa> about Localazy AI and \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fblog\u002Fguide-localazy-translation-services\u002F\">our translation services guide\u003C\u002Fa> for more info\u003C\u002Fblockquote>\u003Ch3 id=\"download\">Download \u003Ca class=\"markdownit-header-anchor\" href=\"#download\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>After translating our app, it is time to \u003Cstrong>download the translated phrases\u003C\u002Fstrong>. \u003C\u002Fp>\u003Cp>Run the command in your app terminal:\u003C\u002Fp>\u003Cpre>\u003Ccode>localazy download\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>This command downloads all the freshly added languages and newly accepted phrases. We now have the updated translated version \u003Ccode>messages.json\u003C\u002Fcode> in the es and cs folders containing the translated phrases. \u003C\u002Fp>\u003Ch2 id=\"translation-to-different-languages\">🔄 Translation to different languages \u003Ca class=\"markdownit-header-anchor\" href=\"#translation-to-different-languages\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Lingui introduces the concept of compiled message catalogs. Before we load translated messages into our application, we need to compile them.\u003C\u002Fp>\u003Cp>We will use the \u003Ccode>compile\u003C\u002Fcode> command to do this:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm run compile\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1034\" height=\"200\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png 1034w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>We can see that \u003Cstrong>there is a new file, \u003Ccode>messages.js\u003C\u002Fcode>, for each locale\u003C\u002Fstrong> inside the \u003Ccode>locales\u002F{lang}\u003C\u002Fcode> folder. This file contains the compiled message catalog.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.13.39-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"724\" height=\"444\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.13.39-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.13.39-PM.png 724w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>We will now load this file into our app and set the active language to en, and that becomes the default language. \u003Cstrong>Update the \u003Ccode>main.tsx\u003C\u002Fcode> file\u003C\u002Fstrong> to include the following snippets:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom\u002Fclient\";\nimport \".\u002Findex.css\";\nimport App from \".\u002FApp.tsx\";\nimport { I18nProvider } from \"@lingui\u002Freact\";\nimport { i18n } from \"@lingui\u002Fcore\";\nimport { messages as enMessages } from \".\u002Flocales\u002Fen\u002Fmessages\";\nimport { messages as esMessages } from \".\u002Flocales\u002Fes\u002Fmessages\";\nimport { messages as csMessages } from \".\u002Flocales\u002Fcs\u002Fmessages\";\n\ni18n.load({\n  en: enMessages,\n  es: esMessages,\n  cs: csMessages,\n});\ni18n.activate(\"en\");\n\ncreateRoot(document.getElementById(\"root\")!).render(\n  &lt;StrictMode&gt;\n    &lt;I18nProvider i18n={i18n}&gt;\n      &lt;App \u002F&gt;\n    &lt;\u002FI18nProvider&gt;\n  &lt;\u002FStrictMode&gt;\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The \u003Ccode>App.tsx\u003C\u002Fcode> should also be updated as below. This introduces the onClick function that includes the functionality for switching languages.\u003C\u002Fp>\u003Cpre>\u003Ccode>import { i18n } from \"@lingui\u002Fcore\";\nimport \".\u002FApp.css\";\nimport UserProfile from \".\u002Fcomponents\u002FUserProfile\";\n\nfunction App() {\n  const switchLanguage = (lang: string) =&gt; {\n    i18n.activate(lang);\n  };\n\n  return (\n    &lt;&gt;\n      &lt;div&gt;\n        &lt;button className=\"side-bar\" onClick={() =&gt; switchLanguage(\"en\")}&gt;\n          English\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\" onClick={() =&gt; switchLanguage(\"es\")}&gt;\n          Spanish\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\" onClick={() =&gt; switchLanguage(\"cs\")}&gt;\n          Czech\n        &lt;\u002Fbutton&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;UserProfile \u002F&gt;\n    &lt;\u002F&gt;\n  );\n}\n\nexport default App;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1345\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 2382w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>English React app.\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1340\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 2284w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The UI translated to Spanish(es).\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1334\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 2324w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The result in Czech(cs).\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch2 id=\"conclusion\">✔️ Conclusion \u003Ca class=\"markdownit-header-anchor\" href=\"#conclusion\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>In this article we demonstrated how to use Localazy and LinguiJS to localize a React application. Localazy is a powerful tool that makes translating applications faster, easier, error-proof, and more fun.\u003C\u002Fp>\u003Cp>Now, you can \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdanielnewell\u002Flinguijs-sample\">download the repository\u003C\u002Fa> with the demo project to explore it. If you have any questions, check out the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fintegrations\u002Freact\">Localazy documentation\u003C\u002Fa> about the React integration or \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fcontact\">drop the team a line\u003C\u002Fa> for quick support.\u003C\u002Fp>","Add proper i18n support for React apps using LinguiJS and Localazy. Get your app localized into 80 languages for free. Tutorial here.",{"id":50,"status":4,"created_on":1938,"modified_on":1939,"icon":1940,"header":1941,"description":1942,"button_label":1943,"link":226},"2022-03-17T12:23:03.000Z","2025-04-04T16:30:30.000Z","app","React i18n done right with Localazy","Make your React app international in a few steps! Enjoy improved plural support, placeholder detection, and a variety of CI\u002FCD options — all in the same platform.","See React integration",{"slug":1866,"id":1859,"uuid":1945,"title":1865,"html":1946,"comment_id":1947,"feature_image":1869,"featured":229,"visibility":1948,"email_recipient_filter":1949,"created_at":1950,"updated_at":1867,"published_at":1868,"custom_excerpt":1934,"codeinjection_head":1951,"codeinjection_foot":8,"custom_template":1947,"canonical_url":8,"authors":1952,"tags":1959,"primary_author":2015,"primary_tag":2016,"url":2017,"excerpt":1934,"reading_time":77,"access":230,"send_email_when_published":229,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":1936,"email_subject":8,"frontmatter":8,"dictionary":1877,"cta":1937,"plainTags":1870},"b0395201-126b-42c8-a922-3afcb9d38538","\u003Cp>When it comes to handling translation in a React application, there are a couple of options available in the tech ecosystem. A major package that stands out is \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flingui.dev\">LinguiJS\u003C\u002Fa>\u003C\u002Fstrong>,\u003Cstrong> \u003C\u002Fstrong>a popular JavaScript\u002FTypescript internationalization (i18n) library that is used to internationalize React apps and that offers robust multilingual support. \u003C\u002Fp>\u003Cp>In this guide, we will explore LinguiJS in depth and demonstrate how to use it with Localazy to handle translation in a React application. We’ll be going through a basic translation workflow, using LinguiJS translation and its i18n support to easily localize your app to other languages.\u003C\u002Fp>\u003Ch2 id=\"-prerequisites\">📋 Prerequisites\u003C\u002Fh2>\u003Cul>\u003Cli>Install\u003Cstrong>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fnodejs.org\u002Fen\u002F\"> Node.js\u003C\u002Fa>\u003C\u002Fstrong> \u003C\u002Fstrong>(v20 or higher) if you don't have it already.\u003C\u002Fli>\u003Cli>Install\u003Cstrong> \u003Ca href=\"https:\u002F\u002Flingui.dev\u002Fref\u002Fcli\">LinguiJS CLI \u003C\u002Fa>\u003C\u002Fstrong>(v5 and higher)\u003Cstrong> \u003C\u002Fstrong>using the command \u003Ccode>npm install --save-dev @lingui\u002Fcli\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>It is important to note that \u003Cstrong>Create React App (CRA) is deprecated and no longer recommended\u003C\u002Fstrong>. We will be using \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fvite.dev\">Vite\u003C\u002Fa>\u003C\u002Fstrong>, which is fast, lightweight, supports TypeScript, JSX, and also modern bundling.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 id=\"-app-setup\">➡️ App setup\u003C\u002Fh2>\u003Cp>Let’s start with our demo React application. We will be building\u003Cstrong> a user profile dashboard\u003C\u002Fstrong> that contains user basic information such as email, location, technologies and a CTA button.\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Create a new project\u003C\u002Fstrong> with the following command:\u003C\u002Fli>\u003C\u002Fol>\u003Cpre>\u003Ccode>npm create vite@latest localazy-react-example --template react-ts\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1460\" height=\"1396\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-21-at-7.02.25-PM.png 1460w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>2. At this point, \u003Cstrong>we are ready to run our project locally\u003C\u002Fstrong>. To start the local development server, visit the url \u003Ca href=\"http:\u002F\u002Flocalhost:5173\u002F\">http:\u002F\u002Flocalhost:5173\u002F\u003C\u002Fa> or run the command:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm run dev\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>3. Now that we have our basic React app setup successful, we will be making some \u003Cstrong>updates and edits to some components of our project directory\u003C\u002Fstrong>. \u003C\u002Fp>\u003Cp>The \u003Ccode>App.tsx\u003C\u002Fcode> file in the root directory should contain the following code snippets. This builds the UI for the user profile and a sidebar that will be used to switch between languages later on.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-React.js\">\u002F\u002F App.tsx\n\nimport \".\u002FApp.css\";\nimport UserProfile from \".\u002Fcomponents\u002FUserProfile\";\n\nfunction App() {\n  return (\n    &lt;&gt;\n      &lt;div&gt;\n        &lt;button className=\"side-bar\"&gt;\n          English\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\"&gt;\n          Spanish\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\"&gt;\n          Czech\n        &lt;\u002Fbutton&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;UserProfile \u002F&gt;\n    &lt;\u002F&gt;\n  );\n}\n\nexport default App;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>We need to \u003Cstrong>create a new componen\u003C\u002Fstrong>t\u003Cstrong> \u003C\u002Fstrong>called the \u003Ccode>UserProfile.tsx\u003C\u002Fcode> in the \u003Cem>src\u002Fcomponents\u003C\u002Fem> folder. Add an image in the assets folder that can be referenced and imported as the profile image.\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-React.js\">\u002F\u002F src\u002Fcomponents\u002FUserProfile.tsx\n\nimport image from \"..\u002Fassets\u002FprofileImage.png\";\n\nfunction UserProfile() {\n  return (\n    &lt;div&gt;\n      &lt;img src={image} alt=\"User avatar\" className=\"logo\" \u002F&gt;\n       &lt;h1&gt;\n        Hello Mary Okosun\n      &lt;\u002Fh1&gt;\n\n      &lt;p&gt;\n        Email: mary.okosun@example.com\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        Country: Lagos, Nigeria\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        Technologies: React.js, Nest.js, Typescript and Typeorm.\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        Bio: I am a backend developer with extensive experience in designing\n          and building scalable, high-performance web applications. I specialize\n          in server-side technologies such as Node.js, TypeScript, and Nest.js,\n          and I have a strong background in working with relational and\n          non-relational databases, including PostgreSQL and MongoDB. I enjoy solving\n          complex problems, optimizing application performance, and\n          collaborating with cross-functional teams to deliver robust,\n          production-ready solutions. I am passionate about continuous learning\n          and adopting best practices in backend development.\n      &lt;\u002Fp&gt;\n      &lt;button&gt;\n        Hire Me\n      &lt;\u002Fbutton&gt;\n    &lt;\u002Fdiv&gt;\n  );\n}\n\nexport default UserProfile;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You can find the styling CSS file in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdanielnewell\u002Flinguijs-sample\">starter project\u003C\u002Fa> with all the component code on GitHub. You can also see our user profile application below.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1436\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-4.19.06-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"-internationalize-a-react-app-with-lingui\">🌐 Internationalize a React app with Lingui\u003C\u002Fh2>\u003Ch3 id=\"installation\">Installation\u003C\u002Fh3>\u003Cp>The next step is to \u003Cstrong>install LinguiJS\u003C\u002Fstrong> for the in-app translation management. Lingui needs a transpiler to work. This transpiler is responsible for transforming Lingui's JS\u002FJSX components into \u003Ca href=\"https:\u002F\u002Flingui.dev\u002Fguides\u002Fmessage-format\">ICU MessageFormat\u003C\u002Fa> and extracting message IDs. There are two supported transporters, which are the \u003Cstrong>Babel\u003C\u002Fstrong> and \u003Cstrong>SWC \u003C\u002Fstrong>transpilers. For this project, we will be using the Babel transpiler. \u003C\u002Fp>\u003Cblockquote>\u003Ca href=\"https:\u002F\u002Fbabeljs.io\">Babel\u003C\u002Fa> is a JavaScript transpiler that converts modern code into backward-compatible versions and allows custom syntax transformations\u003C\u002Fblockquote>\u003Cp>Open the newly created project terminal and install the following dependencies:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm install --save-dev @lingui\u002Fcli\nnpm install --save @lingui\u002Freact\nnpm install --save-dev @lingui\u002Fbabel-plugin-lingui-macro\nnpm install --save-dev @lingui\u002Fvite-plugin\nnpm install --save-dev @lingui\u002Fformat-json\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cul>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fcli\u003C\u002Fstrong>\u003C\u002Fem>: If not already installed during the prerequisite stage, this installs the Lingui command-line tool.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save @lingui\u002Freact\u003C\u002Fstrong>: \u003C\u002Fem>This allows us to use Lingui inside React components.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fbabel-plugin-lingui-macro\u003C\u002Fstrong>: \u003C\u002Fem>This plugin makes the macros work so that Lingui can capture text, replace placeholders, and generate translation catalogs.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fvite-plugin\u003C\u002Fstrong>\u003C\u002Fem>: This plugin integrates Lingui into the Vite build system, making it compatible with Vite and ensuring message catalogs load and macros work during development and production builds.\u003C\u002Fli>\u003Cli>\u003Cem>\u003Cstrong>npm install --save-dev @lingui\u002Fformat-json\u003C\u002Fstrong>\u003C\u002Fem>: This installs the JSON formatter plugin, which is needed if we want to save our extracted messages in a JSON format.\u003C\u002Fli>\u003C\u002Ful>\u003Ch3 id=\"linguijs-configuration\">LinguiJS configuration\u003C\u002Fh3>\u003Cp>Create a new configuration file, \u003Ccode>\u003Cstrong>.babelrc\u003C\u002Fstrong>\u003C\u002Fcode>, at the root directory and add the following snippet:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"plugins\": [\"@lingui\u002Fbabel-plugin-lingui-macro\"]\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Make sure to update the file \u003Ccode>vite.config.ts\u003C\u002Fcode> to include the Babel lingui macro plugin. This is because the \u003Ccode>@vitejs\u002Fplugin-react\u003C\u002Fcode> does not use the Babel config \u003Ccode>.babelrc\u003C\u002Fcode> created in our project by default. We have to specify the Babel options directly in \u003Ccode>vite.config.ts\u003C\u002Fcode>:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { defineConfig } from \"vite\";\nimport react from \"@vitejs\u002Fplugin-react\";\nimport { lingui } from \"@lingui\u002Fvite-plugin\";\n\nexport default defineConfig({\n  plugins: [\n    react({\n      babel: {\n        plugins: [\"@lingui\u002Fbabel-plugin-lingui-macro\"],\n      },\n    }),\n    lingui(),\n  ],\n});\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Next, we will create a Lingui config file \u003Ccode>lingui.config.ts\u003C\u002Fcode> at the root of our app with the following code:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { formatter } from \"@lingui\u002Fformat-json\";\n\nexport default {\n  locales: [\"en\", \"es\", \"cs\"],\n  sourceLocale: \"en\",\n  catalogs: [\n    {\n      path: \"src\u002Flocales\u002F{locale}\u002Fmessages\",\n      include: \"src\",\n    },\n  ],\n  format: formatter(),\n};\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>We are \u003Cstrong>defining our supported locales in the \u003Ccode>locales\u003C\u002Fcode> array\u003C\u002Fstrong>; we’ll use English(\u003Cem>en),\u003C\u002Fem> Spanish(\u003Cem>es), \u003C\u002Fem>and Czech\u003Cem>(cs)\u003C\u002Fem>. \u003Ccode>en\u003C\u002Fcode> is the default \u003Ccode>sourceLocale\u003C\u002Fcode>. \u003C\u002Fp>\u003Cp>Inside the \u003Ccode>catalogs\u003C\u002Fcode> array, define the file \u003Ccode>\u003Cstrong>path\u003C\u002Fstrong>\u003C\u002Fcode> to write the extracted translation messages. Then define an \u003Ccode>\u003Cstrong>include\u003C\u002Fstrong>\u003C\u002Fcode> array of paths where Lingui should look for translations in our code, which is the entire \u003Ccode>src\u003C\u002Fcode> directory. The format is passed to be in JSON format using the formatter package installed during setup.\u003C\u002Fp>\u003Cp>Afterwards, we need to do a little modification and \u003Cstrong>add new scripts to the \u003Ccode>package.json\u003C\u002Fcode>\u003C\u002Fstrong>, which will help to extract and also compile our translations. Add the following command:\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F package.json\n\n{\n   \"scripts\": {\n   \t  ....,\n      \"extract\": \"lingui extract\",\n      \"compile\": \"lingui compile --typescript\"\n   }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"-internationalization\">🗣️ Internationalization\u003C\u002Fh2>\u003Cp>It's time to prepare our app for content translation. The internationalization process begins with \u003Cstrong>wrapping all our static tags in the \u003Ccode>UserProfile.tsx\u003C\u002Fcode>\u003C\u002Fstrong> file using the \u003Ccode>Trans\u003C\u002Fcode> tag. \u003C\u002Fp>\u003Cp>The \u003Ccode>Trans\u003C\u002Fcode> tag is a JSX Macros that translates React components. It handles translations of messages, including variables and other React components.\u003C\u002Fp>\u003Cp>Update the \u003Ccode>UserProfile.tsx\u003C\u002Fcode> file to wrap all static messages and text with the \u003Ccode>Trans\u003C\u002Fcode> macro tag:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { Trans } from \"@lingui\u002Freact\u002Fmacro\";\nimport image from \"..\u002Fassets\u002FprofileImage.png\";\n\nfunction UserProfile() {\n  return (\n    &lt;div&gt;\n      &lt;img src={image} alt=\"User avatar\" className=\"logo\" \u002F&gt;\n      &lt;h1&gt;\n        &lt;Trans&gt;Hello, I am Mary Okosun&lt;\u002FTrans&gt;\n      &lt;\u002Fh1&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;Email: mary.okosun@example.com&lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;Country: Lagos, Nigeria&lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;Technologies: React.js, Nest.js, Typescript and Typeorm.&lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n\n      &lt;p&gt;\n        &lt;Trans&gt;\n          Bio: I am a backend developer with extensive experience in designing\n          and building scalable, high-performance web applications. I specialize\n          in server-side technologies such as Node.js, TypeScript, and Nest.js,\n          and I have a strong background in working with relational and\n          non-relational databases, including PostgreSQL and MongoDB. I enjoy solving\n          complex problems, optimizing application performance, and\n          collaborating with cross-functional teams to deliver robust,\n          production-ready solutions. I am passionate about continuous learning\n          and adopting best practices in backend development.\n        &lt;\u002FTrans&gt;\n      &lt;\u002Fp&gt;\n      &lt;button&gt;\n        &lt;Trans&gt;Hire Me&lt;\u002FTrans&gt;\n      &lt;\u002Fbutton&gt;\n    &lt;\u002Fdiv&gt;\n  );\n}\n\nexport default UserProfile;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>To test that our script is set up correctly, run the following \u003Ccode>extract\u003C\u002Fcode> command. This command will pull all the \u003Ccode>Trans\u003C\u002Fcode> wrapped text into translatable files:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm run extract\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1038\" height=\"402\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.23.54-PM.png 1038w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>The command will create three new files in three locales folders with the different locales as their folder name, as seen below.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.24.55-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"728\" height=\"312\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.24.55-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.24.55-PM.png 728w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"-localization-with-localazy\">⛵️ Localization with Localazy\u003C\u002Fh2>\u003Ch3 id=\"create-a-new-project\">Create a new project\u003C\u002Fh3>\u003Cp>Go to \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fregister\">Localazy signup\u003C\u002Fa>, join our community by creating an account, then create a new project. \u003C\u002Fp>\u003Cp>You can use the Public project type so other contributors can freely help with the translation of your app. Select English as your source language.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1890\" height=\"878\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.31.06-PM.png 1890w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch3 id=\"content-upload\">Content upload\u003C\u002Fh3>\u003Cp>To upload your content, follow these steps:\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Install \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Finstallation\">Localazy CLI\u003C\u002Fa> \u003C\u002Fstrong>by running the command in our demo app’s terminal:\u003C\u002Fli>\u003C\u002Fol>\u003Cpre>\u003Ccode>npm install -g @localazy\u002Fcli\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>2. Afterwards, \u003Cstrong>create a configuration file, \u003Ccode>localazy.json\u003C\u002Fcode>, in the root folder \u003C\u002Fstrong>of your project. Modify the file and include the following snippets:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n    \"writeKey\": \"your-write-key\", \n    \"readKey\": \"your-read-key\",\n  \n    \"upload\": {\n      \"type\": \"json\",\n      \"files\": \"src\u002Flocales\u002Fen\u002Fmessages.json\"\n    },\n  \n    \"download\": {\n      \"files\": \"src\u002Flocales\u002F${lang}\u002Fmessages.json\"\n    }\n  }\n \u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The \u003Cstrong>writeKey\u003C\u002Fstrong> and the \u003Cstrong>readKey\u003C\u002Fstrong> can be obtained from the \u003Cem>Access Keys\u003C\u002Fem> tab on the project dashboard. These keys are used to authorize your request.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"875\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.37.29-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>The \u003Cstrong>upload\u003C\u002Fstrong> section instructs Localazy CLI on how to collect files to be uploaded. In our project, the type of file we'll upload to the dashboard is a JSON file, which is the \u003Cstrong>\u003Ccode>src\u002Flocales\u002Fen\u002Fmessages.json\u003C\u002Fcode>\u003C\u002Fstrong> . \u003C\u002Fp>\u003Cp>The \u003Cstrong>download\u003C\u002Fstrong> section describes how to process translated files and where to write them. In our case, after successful translation, the downloaded translated files will be placed in \u003Cstrong>\u003Ccode>src\u002Flocales\u002F${lang}\u002Fmessages.json\u003C\u002Fcode>, \u003C\u002Fstrong>where \u003Cem>lang\u003C\u002Fem> is the language of the translated file.\u003C\u002Fp>\u003Cp>3. After setting up your localazy config file, you can go ahead and upload the content to the Localazy dashboard with the command:\u003C\u002Fp>\u003Cpre>\u003Ccode>localazy upload\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Now you can either refresh the browser to see the content or redirect to the project link in the terminal:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1168\" height=\"628\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-28-at-5.44.40-PM.png 1168w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>4. The next step is to add new languages. In our application, we will be translating our content to \u003Cstrong>Czech (cs)\u003C\u002Fstrong> and \u003Cstrong>Spanish(es)\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1301\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-12.35.47-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F03\u002F1000014197.jpg\" class=\"kg-image\" alt loading=\"lazy\" width=\"1920\" height=\"1126\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2026\u002F03\u002F1000014197.jpg 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2026\u002F03\u002F1000014197.jpg 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2026\u002F03\u002F1000014197.jpg 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F03\u002F1000014197.jpg 1920w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>We will find different suggestions provided for us. You can use some of the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fmachine-translations\u002F\">machine translation\u003C\u002Fa> options, like \u003Cstrong>Google Translate\u003C\u002Fstrong> or \u003Cstrong>DeepL\u003C\u002Fstrong>, directly from the translation interface, or for bulk and automated translation of your texts. You can also use \u003Cstrong>\u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Flocalazy-ai?utm_source=google&amp;utm_medium=cpc&amp;utm_term=&amp;campaign_id=22142518317&amp;ad_group_id=173401758389&amp;ad_id=729902624301&amp;match_type=&amp;target=dsa-426055549808&amp;gad_source=1&amp;gad_campaignid=22142518317&amp;gbraid=0AAAAACP68mW3KYaZlttQwAtwwofAqL1Nf&amp;gclid=Cj0KCQiAhtvMBhDBARIsAL26pjE7LdirZPXXeKUhYl_pEpbgZNR6U0tcTDFUXKJOK5FfSo4yZ9wXFA0aAoBgEALw_wcB\">Localazy AI\u003C\u002Fa> \u003C\u002Fstrong>if you're looking for a more accurate result that consistently uses your project's glossary, context, and style guide automatically.\u003C\u002Fp>\u003Cblockquote>The best translation option for your project will depend on your goals, needs, and budget. Check out the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffaq\u002Fmachine-translation\u002Fwhat-is-the-best-machine-translation-engine\">documentation on MT\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fblog\u002Fa-practical-guide-to-translating-with-localazy-ai\">this article\u003C\u002Fa> about Localazy AI and \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fblog\u002Fguide-localazy-translation-services\u002F\">our translation services guide\u003C\u002Fa> for more info\u003C\u002Fblockquote>\u003Ch3 id=\"download\">Download\u003C\u002Fh3>\u003Cp>After translating our app, it is time to \u003Cstrong>download the translated phrases\u003C\u002Fstrong>. \u003C\u002Fp>\u003Cp>Run the command in your app terminal:\u003C\u002Fp>\u003Cpre>\u003Ccode>localazy download\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>This command downloads all the freshly added languages and newly accepted phrases. We now have the updated translated version \u003Ccode>messages.json\u003C\u002Fcode> in the es and cs folders containing the translated phrases. \u003C\u002Fp>\u003Ch2 id=\"-translation-to-different-languages\">🔄 Translation to different languages\u003C\u002Fh2>\u003Cp>Lingui introduces the concept of compiled message catalogs. Before we load translated messages into our application, we need to compile them.\u003C\u002Fp>\u003Cp>We will use the \u003Ccode>compile\u003C\u002Fcode> command to do this:\u003C\u002Fp>\u003Cpre>\u003Ccode>npm run compile\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1034\" height=\"200\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.12.46-PM.png 1034w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>We can see that \u003Cstrong>there is a new file, \u003Ccode>messages.js\u003C\u002Fcode>, for each locale\u003C\u002Fstrong> inside the \u003Ccode>locales\u002F{lang}\u003C\u002Fcode> folder. This file contains the compiled message catalog.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.13.39-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"724\" height=\"444\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.13.39-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.13.39-PM.png 724w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>We will now load this file into our app and set the active language to en, and that becomes the default language. \u003Cstrong>Update the \u003Ccode>main.tsx\u003C\u002Fcode> file\u003C\u002Fstrong> to include the following snippets:\u003C\u002Fp>\u003Cpre>\u003Ccode>import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom\u002Fclient\";\nimport \".\u002Findex.css\";\nimport App from \".\u002FApp.tsx\";\nimport { I18nProvider } from \"@lingui\u002Freact\";\nimport { i18n } from \"@lingui\u002Fcore\";\nimport { messages as enMessages } from \".\u002Flocales\u002Fen\u002Fmessages\";\nimport { messages as esMessages } from \".\u002Flocales\u002Fes\u002Fmessages\";\nimport { messages as csMessages } from \".\u002Flocales\u002Fcs\u002Fmessages\";\n\ni18n.load({\n  en: enMessages,\n  es: esMessages,\n  cs: csMessages,\n});\ni18n.activate(\"en\");\n\ncreateRoot(document.getElementById(\"root\")!).render(\n  &lt;StrictMode&gt;\n    &lt;I18nProvider i18n={i18n}&gt;\n      &lt;App \u002F&gt;\n    &lt;\u002FI18nProvider&gt;\n  &lt;\u002FStrictMode&gt;\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The \u003Ccode>App.tsx\u003C\u002Fcode> should also be updated as below. This introduces the onClick function that includes the functionality for switching languages.\u003C\u002Fp>\u003Cpre>\u003Ccode>import { i18n } from \"@lingui\u002Fcore\";\nimport \".\u002FApp.css\";\nimport UserProfile from \".\u002Fcomponents\u002FUserProfile\";\n\nfunction App() {\n  const switchLanguage = (lang: string) =&gt; {\n    i18n.activate(lang);\n  };\n\n  return (\n    &lt;&gt;\n      &lt;div&gt;\n        &lt;button className=\"side-bar\" onClick={() =&gt; switchLanguage(\"en\")}&gt;\n          English\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\" onClick={() =&gt; switchLanguage(\"es\")}&gt;\n          Spanish\n        &lt;\u002Fbutton&gt;\n        &lt;button className=\"side-bar\" onClick={() =&gt; switchLanguage(\"cs\")}&gt;\n          Czech\n        &lt;\u002Fbutton&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;UserProfile \u002F&gt;\n    &lt;\u002F&gt;\n  );\n}\n\nexport default App;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1345\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.18.56-PM.png 2382w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>English React app.\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1340\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.17-PM.png 2284w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The UI translated to Spanish(es).\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1334\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F11\u002FScreenshot-2025-11-29-at-1.19.33-PM.png 2324w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The result in Czech(cs).\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch2 id=\"-conclusion\">✔️ Conclusion\u003C\u002Fh2>\u003Cp>In this article we demonstrated how to use Localazy and LinguiJS to localize a React application. Localazy is a powerful tool that makes translating applications faster, easier, error-proof, and more fun.\u003C\u002Fp>\u003Cp>Now, you can \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdanielnewell\u002Flinguijs-sample\">download the repository\u003C\u002Fa> with the demo project to explore it. If you have any questions, check out the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fintegrations\u002Freact\">Localazy documentation\u003C\u002Fa> about the React integration or \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fcontact\">drop the team a line\u003C\u002Fa> for quick support.\u003C\u002Fp>","53","public","none","2020-11-08T08:28:57.000+01:00","{\"intercomArticleUrl\":\"\"}",[1953],{"id":1861,"name":1862,"slug":1863,"profile_image":1864,"cover_image":8,"bio":1954,"website":1955,"location":1956,"facebook":8,"twitter":1957,"meta_title":8,"meta_description":8,"url":1958},"I am a backend developer that focuses more on JavaScript technologies. I have a flair for writing and I am looking to improve my knowledge as a developer through technical writing.","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmary-okosun-a5195915b","Lagos, Nigeria","@marynoir_","https:\u002F\u002Fghost.localazy.com\u002Fauthor\u002Fmary-okosun\u002F",[1960,1966,1969,1972,1977,1982,1985,1990,1995,2000,2005,2010],{"id":1961,"name":1962,"slug":1963,"description":1964,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1965},"60a37fc7cf7b6a0001d1f113","[CTA] React i18n done right with Localazy","cta-5","Go ahead and make your React app international in a few steps. Rich shared translations memory is waiting to be used in minutes from now.","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcta-5\u002F",{"id":1967,"name":1872,"slug":1873,"description":1872,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1968},"60a37fc7cf7b6a0001d1f0fa","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fhowto\u002F",{"id":1970,"name":225,"slug":226,"description":225,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1971},"60a37fc7cf7b6a0001d1f0fc","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Freact\u002F",{"id":1973,"name":1974,"slug":1975,"description":1881,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1976},"60a37fc7cf7b6a0001d1f161","[DICT] React","term-68","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-68\u002F",{"id":1978,"name":1979,"slug":1980,"description":1887,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1981},"60a37fc7cf7b6a0001d1f16c","[DICT] Internationalization (i18n)","term-79","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-79\u002F",{"id":1983,"name":1876,"slug":1876,"description":8,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1984},"60f567ab6f8ebe0001bd80ec","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fi18n\u002F",{"id":1986,"name":1987,"slug":1988,"description":8,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1989},"61a0daffdf4bcb00010bc50c","[SYNDICATE]","syndicate","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fsyndicate\u002F",{"id":1991,"name":1992,"slug":1993,"description":8,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1994},"64710a2f047091000193ca3d","[INTERCOM]","intercom","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fintercom\u002F",{"id":1996,"name":1997,"slug":1998,"description":8,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1999},"60fffb486f8ebe0001bd8ddd","[COMSHARE]","comshare","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcomshare\u002F",{"id":2001,"name":2002,"slug":2003,"description":1901,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":2004},"60a37fc7cf7b6a0001d1f16d","[DICT] NodeJS","term-80","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-80\u002F",{"id":2006,"name":2007,"slug":2008,"description":1909,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":2009},"60a37fc7cf7b6a0001d1f167","[DICT] TypeScript","term-74","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-74\u002F",{"id":2011,"name":2012,"slug":2013,"description":1918,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":2014},"67f7fb3563350c0001d58fee","[DICT] ICU Message Format","term-255","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-255\u002F",{"id":1861,"name":1862,"slug":1863,"profile_image":1864,"cover_image":8,"bio":1954,"website":1955,"location":1956,"facebook":8,"twitter":1957,"meta_title":8,"meta_description":8,"url":1958},{"id":1961,"name":1962,"slug":1963,"description":1964,"feature_image":8,"visibility":1948,"og_image":8,"og_title":8,"og_description":8,"twitter_image":8,"twitter_title":8,"twitter_description":8,"meta_title":8,"meta_description":8,"codeinjection_head":8,"codeinjection_foot":8,"canonical_url":8,"accent_color":8,"url":1965},"https:\u002F\u002Fghost.localazy.com\u002Fhow-to-localise-your-react-app-with-linguijs-and-localazy\u002F",[2019,2041,2058],{"id":2020,"owner":2021,"created_by":8,"sort":8,"title":2026,"slug":2027,"modified_on":53,"created_on":2028,"pinned":229,"badge":8,"priority":1824,"main_image":2029,"status":4,"tags":2030,"dictionary":2040,"reading_time":1838,"excerpt":-1,"og_title":53,"og_description":53,"og_image":53},"6372308e04709100019374c9",{"id":2022,"first_name":2023,"last_name":53,"slug":2024,"avatar":2025},"6061ffdd2a37af00016d413d","Daniel Charvát","daniel-charvat","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fdan-1.png","Figma in Localization: Figma as a Source of Truth","figma-series-figma-as-source-of-truth","2023-02-08T20:43:55.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F01\u002FFigma-Series-3.png",[2031,2033,2034,2037],{"id":2032,"created_on":1828,"status":4,"label":1138,"slug":1139,"on_index_page":230},6183,{"id":278,"created_on":1828,"status":4,"label":1872,"slug":1873,"on_index_page":229},{"id":278,"created_on":1828,"status":4,"label":2035,"slug":2036,"on_index_page":230},"DevTips","devtips",{"id":318,"created_on":1828,"status":4,"label":2038,"slug":2039,"on_index_page":229},"Design","design",[],{"id":2042,"owner":2043,"created_by":8,"sort":8,"title":2044,"slug":2045,"modified_on":53,"created_on":2046,"pinned":229,"badge":8,"priority":1824,"main_image":2047,"status":4,"tags":2048,"dictionary":2057,"reading_time":1838,"excerpt":-1,"og_title":53,"og_description":53,"og_image":53},"63dd1bf30470910001939f8b",{"id":1861,"first_name":1862,"last_name":53,"slug":1863,"avatar":1864},"The ultimate guide to Localazy API","the-ultimate-guide-to-localazy-api","2023-03-15T10:00:00.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F03\u002Fultimate-localazy-api-guide.png",[2049,2050,2053,2054],{"id":278,"created_on":1828,"status":4,"label":283,"slug":284,"on_index_page":229},{"id":278,"created_on":1828,"status":4,"label":2051,"slug":2052,"on_index_page":229},"Automated Localization","automated-localization",{"id":278,"created_on":1828,"status":4,"label":1872,"slug":1873,"on_index_page":229},{"id":278,"created_on":1828,"status":4,"label":2055,"slug":2056,"on_index_page":229},"Guide","guide",[],{"id":2059,"owner":2060,"created_by":8,"sort":8,"title":2065,"slug":2066,"modified_on":53,"created_on":2067,"pinned":229,"badge":8,"priority":1824,"main_image":2068,"status":4,"tags":2069,"dictionary":2073,"reading_time":1838,"excerpt":-1,"og_title":53,"og_description":53,"og_image":53},"60a37fc7cf7b6a0001d1f18c",{"id":2061,"first_name":2062,"last_name":53,"slug":2063,"avatar":2064},"1","Václav Hodek","vaclav-hodek","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fvasek.png","Quick guide to Android localization with Localazy","quick-guide-to-android-localization-localazy","2022-02-09T09:00:00.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2021\u002F09\u002FHow-to-lokalize-Android-app.png",[2070,2071,2072],{"id":278,"created_on":1828,"status":4,"label":1602,"slug":1601,"on_index_page":229},{"id":278,"created_on":1828,"status":4,"label":1384,"slug":1829,"on_index_page":230},{"id":278,"created_on":1828,"status":4,"label":1872,"slug":1873,"on_index_page":229},[],{"id":7,"sort":8,"created_on":2075,"name":2076,"cta_link":2077,"banner_image":2078},"2022-03-17T12:23:14.000Z","default","https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Flocalazy-ai",{"id":2079},"72defd59-a21d-44b9-822c-4e183ca62b99"]