[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-integrations":3,"main-navigation":1000,"footer-settings":1634,"footer-homepage":1747,"blog-post-nav-nav":1814,"blog-post-nav-[USE LATEST FEATURED]":1836,"blog-beyond-interpolation-multiple-plurals-genders-and-building-lists":1851},[4,180,262,374,468,553,646,739,828,938],{"id":5,"status":6,"created_on":7,"modified_on":8,"name":9,"slug":10,"description":11,"docs_link":12,"priority":13,"has_sdk":14,"sort":15,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":17,"show_in_spa":16,"is_file_format":14,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":18,"tile_subtitle":19,"tile_description":20,"is_enterprise":14,"is_popular":14,"primary_use_case":13,"hierarchy_handling":13,"best_for":13,"file_extension":13,"format_code_example":13,"format_to_extension":21,"upload_features":23,"icon":24,"meta_image":26,"primary_tag":28,"tags":49,"integration_methods":71,"recommended_methods":164,"default_integration_method":165,"faq_categories":172,"translations":178,"platforms_id":5},33,"published","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",null,false,3,true,"JSON format support","CLI support","react-i18next and more","Use Localazy to translate your React projects with your favorite i18n library.",{"json":22},"json",[],{"id":25},"26757a90-88a3-4a94-b587-9f38614ed3bd",{"id":27},"a97492ec-ee8d-429c-bf66-d0fe59b6e5c9",{"id":29,"status":6,"sort":30,"created_on":31,"label":32,"hidden":14,"icon":33,"translations":35},5,2,"2022-03-17T12:23:44.000Z","Web apps",{"id":34},"c9e70e4f-8136-432a-8d82-53c3501a9eb4",[36,38,42,46],{"id":29,"languages_code":37,"label":32},"xxa",{"id":39,"languages_code":40,"label":41},45,"es","Aplicaciones web",{"id":43,"languages_code":44,"label":45},50,"cs","Webové aplikace",{"id":47,"languages_code":48,"label":32},59,"en",[50,57],{"id":29,"status":6,"sort":30,"label":32,"hidden":14,"created_on":31,"icon":51,"translations":52},{"id":34},[53,54,55,56],{"id":29,"languages_code":37,"label":32},{"id":39,"languages_code":40,"label":41},{"id":43,"languages_code":44,"label":45},{"id":47,"languages_code":48,"label":32},{"id":58,"status":6,"sort":59,"label":60,"hidden":14,"created_on":61,"icon":13,"translations":62},8,9,"Framework","2022-03-17T12:23:45.000Z",[63,64,67,69],{"id":58,"languages_code":37,"label":60},{"id":65,"languages_code":40,"label":66},53,"Marco",{"id":68,"languages_code":44,"label":60},60,{"id":70,"languages_code":48,"label":60},67,[72,88,118,141],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":79},4,6,"API","api","Translate strings directly or upload them into your Localazy project.","\u002Fdocs\u002Fapi\u002Fintroduction",[80,81,84,86],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},40,"Utilice la API para exportar traducciones e importar contenido de\u002Fa Localazy mediante programación.",{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},"Choose between translating strings directly or uploading them into Localazy.",{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},"Pomocí rozhraní API můžete programovaně exportovat překlady a importovat obsah z\u002Fdo Localazy.",{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":94},"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",[95,96,100,102,105,109,111,113],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},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":101,"languages_code":48,"label":89,"description":91,"slug":90},51,{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},"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":106,"languages_code":40,"label":107,"description":108,"slug":90},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":110,"languages_code":48,"label":89,"description":91,"slug":90},65,{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},66,{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},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":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":125},"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",[126,127,131,133,137],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},38,"Carga directa de archivos","Cargue sus textos y traducciones existentes en cualquier formato directamente para empezar rápidamente.",{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},47,{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},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":138,"languages_code":115,"label":139,"description":140,"slug":13},85,"Direkter Datei-Upload","Laden Sie Ihre Texte und vorhandenen Übersetzungen in einem beliebigen Format direkt hoch, um schnell loszulegen.",{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":148},1,"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",[149,150,154,156,160],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},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":155,"languages_code":48,"label":143,"description":146,"slug":145},46,{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},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":161,"languages_code":115,"label":162,"description":163,"slug":13},87,"Befehlszeilenschnittstelle","Die beste Option für Entwickler, die die Lokalisierung zu einem automatisierten Teil ihres Arbeitsablaufs machen möchten.",[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":166},[167,168,169,170,171],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[173],{"id":174,"status":6,"created_on":175,"sort":13,"slug":176,"label":177,"on_faq_index":13},76,"2025-02-26T12:44:29.000Z","front-end-common","Front-end Common",[179],{"languages_code":37,"name":9,"slug":10,"description":11,"support_type":17,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":19,"tile_description":20,"id":5,"platforms_id":5,"docs_link":12},{"id":181,"status":6,"created_on":7,"modified_on":182,"name":183,"slug":184,"description":185,"docs_link":12,"priority":13,"has_sdk":14,"sort":73,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":17,"show_in_spa":16,"is_file_format":14,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":18,"tile_subtitle":186,"tile_description":187,"is_enterprise":14,"is_popular":14,"primary_use_case":13,"hierarchy_handling":13,"best_for":13,"file_extension":13,"format_code_example":13,"format_to_extension":188,"upload_features":189,"icon":190,"meta_image":192,"primary_tag":194,"tags":201,"integration_methods":215,"recommended_methods":246,"default_integration_method":247,"faq_categories":254,"translations":260,"platforms_id":181},19,"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":22},[],{"id":191},"6180b41f-3249-47d3-adcd-50fe1cf11bf1",{"id":193},"8171b836-d6b8-4354-8db3-34ccd384970d",{"id":29,"status":6,"sort":30,"created_on":31,"label":32,"hidden":14,"icon":195,"translations":196},{"id":34},[197,198,199,200],{"id":29,"languages_code":37,"label":32},{"id":39,"languages_code":40,"label":41},{"id":43,"languages_code":44,"label":45},{"id":47,"languages_code":48,"label":32},[202,209],{"id":29,"status":6,"sort":30,"label":32,"hidden":14,"created_on":31,"icon":203,"translations":204},{"id":34},[205,206,207,208],{"id":29,"languages_code":37,"label":32},{"id":39,"languages_code":40,"label":41},{"id":43,"languages_code":44,"label":45},{"id":47,"languages_code":48,"label":32},{"id":58,"status":6,"sort":59,"label":60,"hidden":14,"created_on":61,"icon":13,"translations":210},[211,212,213,214],{"id":58,"languages_code":37,"label":60},{"id":65,"languages_code":40,"label":66},{"id":68,"languages_code":44,"label":60},{"id":70,"languages_code":48,"label":60},[216,222,232,239],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":217},[218,219,220,221],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":223},[224,225,226,227,228,229,230,231],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":233},[234,235,236,237,238],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":240},[241,242,243,244,245],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":248},[249,250,251,252,253],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[255,259],{"id":134,"status":6,"created_on":256,"sort":13,"slug":257,"label":258,"on_faq_index":13},"2023-03-01T11:21:41.000Z","vue-localization","Vue.js Localization",{"id":174,"status":6,"created_on":175,"sort":13,"slug":176,"label":177,"on_faq_index":13},[261],{"languages_code":37,"name":183,"slug":184,"description":185,"support_type":17,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":186,"tile_description":187,"id":181,"platforms_id":181,"docs_link":12},{"id":142,"status":6,"created_on":7,"modified_on":263,"name":264,"slug":265,"description":266,"docs_link":267,"priority":13,"has_sdk":14,"sort":74,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":268,"show_in_spa":16,"is_file_format":14,"meta_title":13,"meta_description":13,"featured_on_web":14,"marketing_subtitle":18,"tile_subtitle":268,"tile_description":269,"is_enterprise":14,"is_popular":14,"primary_use_case":270,"hierarchy_handling":271,"best_for":272,"file_extension":273,"format_code_example":274,"format_to_extension":275,"upload_features":277,"icon":278,"meta_image":280,"primary_tag":282,"tags":293,"integration_methods":332,"recommended_methods":363,"default_integration_method":364,"faq_categories":371,"translations":372,"platforms_id":142},"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":276},"arb",[],{"id":279},"b9f13a11-9328-4a03-86cf-b20de0685606",{"id":281},"c2674666-4371-4aa4-9a65-438c7363fafe",{"id":74,"status":6,"sort":58,"created_on":61,"label":283,"hidden":14,"icon":284,"translations":286},"Mobile apps",{"id":285},"c9c7e1f5-8b59-4016-ae0c-6fba9469cd55",[287,288,290,292],{"id":74,"languages_code":37,"label":283},{"id":155,"languages_code":40,"label":289},"Aplicaciones móviles",{"id":157,"languages_code":44,"label":291},"Mobilní aplikace",{"id":110,"languages_code":48,"label":283},[294,306,313,320],{"id":295,"status":6,"sort":181,"label":296,"hidden":14,"created_on":61,"icon":297,"translations":299},7,"Desktop & Games",{"id":298},"65b04533-5b4c-430c-b8a4-ecce84754200",[300,301,303,305],{"id":295,"languages_code":37,"label":296},{"id":132,"languages_code":40,"label":302},"Escritorio y Juegos",{"id":134,"languages_code":44,"label":304},"Stolní počítače & Hry",{"id":112,"languages_code":48,"label":296},{"id":29,"status":6,"sort":30,"label":32,"hidden":14,"created_on":31,"icon":307,"translations":308},{"id":34},[309,310,311,312],{"id":29,"languages_code":37,"label":32},{"id":39,"languages_code":40,"label":41},{"id":43,"languages_code":44,"label":45},{"id":47,"languages_code":48,"label":32},{"id":74,"status":6,"sort":58,"label":283,"hidden":14,"created_on":61,"icon":314,"translations":315},{"id":285},[316,317,318,319],{"id":74,"languages_code":37,"label":283},{"id":155,"languages_code":40,"label":289},{"id":157,"languages_code":44,"label":291},{"id":110,"languages_code":48,"label":283},{"id":321,"status":6,"sort":322,"label":323,"hidden":16,"created_on":61,"icon":13,"translations":324},30,32,"ARB",[325,326,328,330],{"id":321,"languages_code":37,"label":323},{"id":327,"languages_code":40,"label":323},120,{"id":329,"languages_code":44,"label":323},125,{"id":331,"languages_code":48,"label":323},130,[333,339,349,356],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":334},[335,336,337,338],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":340},[341,342,343,344,345,346,347,348],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":350},[351,352,353,354,355],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":357},[358,359,360,361,362],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":365},[366,367,368,369,370],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],[373],{"languages_code":37,"name":264,"slug":265,"description":266,"support_type":268,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":268,"tile_description":269,"id":142,"platforms_id":142,"docs_link":267},{"id":375,"status":6,"created_on":376,"modified_on":377,"name":378,"slug":379,"description":380,"docs_link":381,"priority":13,"has_sdk":14,"sort":382,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":383,"show_in_spa":16,"is_file_format":14,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":18,"tile_subtitle":383,"tile_description":384,"is_enterprise":14,"is_popular":14,"primary_use_case":13,"hierarchy_handling":13,"best_for":13,"file_extension":13,"format_code_example":13,"format_to_extension":385,"upload_features":387,"icon":388,"meta_image":390,"primary_tag":392,"tags":407,"integration_methods":422,"recommended_methods":453,"default_integration_method":454,"faq_categories":461,"translations":466,"platforms_id":375},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",12,"JS file support","Translating JS files is easy as a pie with Localazy!",{"js":386},"js",[],{"id":389},"4218d0c9-7e6b-494d-9663-37ceaf93ee8c",{"id":391},"2c6699eb-1d80-4772-8268-5597dbcead8c",{"id":393,"status":6,"sort":393,"created_on":61,"label":394,"hidden":14,"icon":395,"translations":397},10,"Programming Languages",{"id":396},"8c5836bb-1fbe-49c5-9330-8f931838c457",[398,399,402,405],{"id":393,"languages_code":37,"label":394},{"id":400,"languages_code":40,"label":401},63,"Lenguajes de Programación",{"id":403,"languages_code":44,"label":404},68,"Programovací Jazyky",{"id":406,"languages_code":48,"label":394},70,[408,415],{"id":29,"status":6,"sort":30,"label":32,"hidden":14,"created_on":31,"icon":409,"translations":410},{"id":34},[411,412,413,414],{"id":29,"languages_code":37,"label":32},{"id":39,"languages_code":40,"label":41},{"id":43,"languages_code":44,"label":45},{"id":47,"languages_code":48,"label":32},{"id":393,"status":6,"sort":393,"label":394,"hidden":14,"created_on":61,"icon":416,"translations":417},{"id":396},[418,419,420,421],{"id":393,"languages_code":37,"label":394},{"id":400,"languages_code":40,"label":401},{"id":403,"languages_code":44,"label":404},{"id":406,"languages_code":48,"label":394},[423,429,439,446],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":424},[425,426,427,428],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":430},[431,432,433,434,435,436,437,438],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":440},[441,442,443,444,445],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":447},[448,449,450,451,452],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":455},[456,457,458,459,460],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[462],{"id":463,"status":6,"created_on":464,"sort":13,"slug":465,"label":378,"on_faq_index":14},35,"2022-06-10T09:49:33.000Z","javascript-i18n-localization",[467],{"languages_code":37,"name":378,"slug":379,"description":380,"support_type":383,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":383,"tile_description":384,"id":375,"platforms_id":375,"docs_link":381},{"id":382,"status":6,"created_on":376,"modified_on":469,"name":470,"slug":22,"description":471,"docs_link":12,"priority":13,"has_sdk":14,"sort":472,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":473,"show_in_spa":16,"is_file_format":16,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":18,"tile_subtitle":474,"tile_description":475,"is_enterprise":14,"is_popular":16,"primary_use_case":476,"hierarchy_handling":477,"best_for":478,"file_extension":479,"format_code_example":480,"format_to_extension":481,"upload_features":482,"icon":483,"meta_image":485,"primary_tag":487,"tags":500,"integration_methods":508,"recommended_methods":539,"default_integration_method":540,"faq_categories":547,"translations":551,"platforms_id":382},"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.",20,"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":22},[],{"id":484},"99ac3b7c-dba5-4693-a4f4-1f27a6d7782d",{"id":486},"8d614c20-667e-4bee-a64d-7d7ce9c0ee0a",{"id":73,"status":6,"sort":29,"created_on":61,"label":488,"hidden":14,"icon":489,"translations":491},"File formats",{"id":490},"ab7c8f89-dcce-45ab-9e21-8605aef289c3",[492,493,496,498],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},44,"Formatos de archivo",{"id":101,"languages_code":44,"label":497},"Formáty souborů",{"id":499,"languages_code":48,"label":488},62,[501],{"id":73,"status":6,"sort":29,"label":488,"hidden":14,"created_on":61,"icon":502,"translations":503},{"id":490},[504,505,506,507],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},[509,515,525,532],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":510},[511,512,513,514],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":516},[517,518,519,520,521,522,523,524],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":526},[527,528,529,530,531],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":533},[534,535,536,537,538],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":541},[542,543,544,545,546],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[548],{"id":549,"status":6,"created_on":550,"sort":13,"slug":22,"label":470,"on_faq_index":14},36,"2022-06-10T10:49:07.000Z",[552],{"languages_code":37,"name":470,"slug":22,"description":471,"support_type":473,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":474,"tile_description":475,"id":382,"platforms_id":382,"docs_link":12},{"id":554,"status":6,"created_on":376,"modified_on":555,"name":556,"slug":557,"description":558,"docs_link":559,"priority":13,"has_sdk":14,"sort":554,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":560,"show_in_spa":14,"is_file_format":16,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":18,"tile_subtitle":561,"tile_description":562,"is_enterprise":14,"is_popular":16,"primary_use_case":563,"hierarchy_handling":564,"best_for":565,"file_extension":566,"format_code_example":567,"format_to_extension":568,"upload_features":570,"icon":571,"meta_image":573,"primary_tag":575,"tags":582,"integration_methods":604,"recommended_methods":635,"default_integration_method":636,"faq_categories":643,"translations":644,"platforms_id":554},21,"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":569},"xlf",[],{"id":572},"ca424cc8-e8a7-4aef-8dca-ef4a4d1334fc",{"id":574},"889970a6-cce8-4055-b96a-9c3f292aa67f",{"id":73,"status":6,"sort":29,"created_on":61,"label":488,"hidden":14,"icon":576,"translations":577},{"id":490},[578,579,580,581],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},[583,590,597],{"id":73,"status":6,"sort":29,"label":488,"hidden":14,"created_on":61,"icon":584,"translations":585},{"id":490},[586,587,588,589],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},{"id":73,"status":6,"sort":29,"label":488,"hidden":14,"created_on":61,"icon":591,"translations":592},{"id":490},[593,594,595,596],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},{"id":73,"status":6,"sort":29,"label":488,"hidden":14,"created_on":61,"icon":598,"translations":599},{"id":490},[600,601,602,603],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},[605,611,621,628],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":606},[607,608,609,610],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":612},[613,614,615,616,617,618,619,620],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":622},[623,624,625,626,627],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":629},[630,631,632,633,634],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":637},[638,639,640,641,642],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],[645],{"languages_code":37,"name":556,"slug":557,"description":558,"support_type":560,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":561,"tile_description":562,"id":554,"platforms_id":554,"docs_link":559},{"id":472,"status":6,"created_on":647,"modified_on":647,"name":648,"slug":649,"description":650,"docs_link":651,"priority":13,"has_sdk":14,"sort":652,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":560,"show_in_spa":16,"is_file_format":16,"meta_title":13,"meta_description":13,"featured_on_web":14,"marketing_subtitle":18,"tile_subtitle":653,"tile_description":654,"is_enterprise":14,"is_popular":16,"primary_use_case":13,"hierarchy_handling":13,"best_for":13,"file_extension":13,"format_code_example":13,"format_to_extension":655,"upload_features":656,"icon":657,"meta_image":659,"primary_tag":661,"tags":668,"integration_methods":697,"recommended_methods":728,"default_integration_method":729,"faq_categories":736,"translations":737,"platforms_id":472},"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":649},[],{"id":658},"25f317fe-0c10-4f0b-92cd-f80d1f3c6a67",{"id":660},"490022f9-d91a-4e1a-9e79-db374ec997c2",{"id":73,"status":6,"sort":29,"created_on":61,"label":488,"hidden":14,"icon":662,"translations":663},{"id":490},[664,665,666,667],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},[669,676,687],{"id":73,"status":6,"sort":29,"label":488,"hidden":14,"created_on":61,"icon":670,"translations":671},{"id":490},[672,673,674,675],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},{"id":677,"status":6,"sort":677,"label":678,"hidden":16,"created_on":61,"icon":13,"translations":679},34,"C++",[680,681,683,685],{"id":677,"languages_code":37,"label":678},{"id":682,"languages_code":40,"label":678},135,{"id":684,"languages_code":44,"label":678},140,{"id":686,"languages_code":48,"label":678},144,{"id":554,"status":6,"sort":652,"label":688,"hidden":16,"created_on":61,"icon":13,"translations":689},"Gettext",[690,691,693,695],{"id":554,"languages_code":37,"label":688},{"id":692,"languages_code":40,"label":688},101,{"id":694,"languages_code":44,"label":688},106,{"id":696,"languages_code":48,"label":688},111,[698,704,714,721],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":699},[700,701,702,703],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":705},[706,707,708,709,710,711,712,713],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":715},[716,717,718,719,720],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":722},[723,724,725,726,727],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":730},[731,732,733,734,735],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],[738],{"languages_code":37,"name":648,"slug":649,"description":650,"support_type":560,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":653,"tile_description":654,"id":472,"platforms_id":472,"docs_link":651},{"id":740,"status":6,"created_on":376,"modified_on":741,"name":742,"slug":743,"description":744,"docs_link":745,"priority":13,"has_sdk":14,"sort":746,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":560,"show_in_spa":16,"is_file_format":16,"meta_title":13,"meta_description":13,"featured_on_web":14,"marketing_subtitle":18,"tile_subtitle":747,"tile_description":748,"is_enterprise":14,"is_popular":14,"primary_use_case":749,"hierarchy_handling":750,"best_for":751,"file_extension":752,"format_code_example":753,"format_to_extension":754,"upload_features":755,"icon":756,"meta_image":757,"primary_tag":759,"tags":766,"integration_methods":784,"recommended_methods":815,"default_integration_method":816,"faq_categories":823,"translations":826,"platforms_id":740},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":743},[],{"id":658},{"id":758},"1f07bf83-9363-47d6-b21b-a5121c0efaf6",{"id":73,"status":6,"sort":29,"created_on":61,"label":488,"hidden":14,"icon":760,"translations":761},{"id":490},[762,763,764,765],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},[767,774],{"id":73,"status":6,"sort":29,"label":488,"hidden":14,"created_on":61,"icon":768,"translations":769},{"id":490},[770,771,772,773],{"id":73,"languages_code":37,"label":488},{"id":494,"languages_code":40,"label":495},{"id":101,"languages_code":44,"label":497},{"id":499,"languages_code":48,"label":488},{"id":652,"status":6,"sort":740,"label":775,"hidden":16,"created_on":61,"icon":13,"translations":776},"C#",[777,778,780,782],{"id":652,"languages_code":37,"label":775},{"id":779,"languages_code":40,"label":775},103,{"id":781,"languages_code":44,"label":775},108,{"id":783,"languages_code":48,"label":775},113,[785,791,801,808],{"id":73,"status":6,"sort":74,"label":75,"alternative_label":13,"slug":76,"description":77,"documentation_link":78,"loc_icon":76,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":786},[787,788,789,790],{"id":73,"languages_code":37,"label":75,"description":77,"slug":76},{"id":82,"languages_code":40,"label":75,"description":83,"slug":76},{"id":43,"languages_code":48,"label":75,"description":85,"slug":76},{"id":47,"languages_code":44,"label":75,"description":87,"slug":76},{"id":15,"status":6,"sort":29,"label":89,"alternative_label":13,"slug":90,"description":91,"documentation_link":92,"loc_icon":93,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":792},[793,794,795,796,797,798,799,800],{"id":15,"languages_code":37,"label":89,"description":91,"slug":90},{"id":97,"languages_code":40,"label":98,"description":99,"slug":13},{"id":101,"languages_code":48,"label":89,"description":91,"slug":90},{"id":68,"languages_code":44,"label":103,"description":104,"slug":13},{"id":106,"languages_code":40,"label":107,"description":108,"slug":90},{"id":110,"languages_code":48,"label":89,"description":91,"slug":90},{"id":112,"languages_code":44,"label":103,"description":104,"slug":90},{"id":114,"languages_code":115,"label":116,"description":117,"slug":13},{"id":30,"status":6,"sort":73,"label":119,"alternative_label":120,"slug":121,"description":122,"documentation_link":123,"loc_icon":124,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":802},[803,804,805,806,807],{"id":30,"languages_code":37,"label":119,"description":122,"slug":121},{"id":128,"languages_code":40,"label":129,"description":130,"slug":13},{"id":132,"languages_code":48,"label":119,"description":122,"slug":121},{"id":134,"languages_code":44,"label":135,"description":136,"slug":13},{"id":138,"languages_code":115,"label":139,"description":140,"slug":13},{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":809},[810,811,812,813,814],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[],{"id":142,"status":6,"sort":15,"label":143,"alternative_label":144,"slug":145,"description":146,"documentation_link":147,"loc_icon":145,"is_official_plugin":14,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":817},[818,819,820,821,822],{"id":142,"languages_code":37,"label":143,"description":146,"slug":145},{"id":151,"languages_code":40,"label":152,"description":153,"slug":145},{"id":155,"languages_code":48,"label":143,"description":146,"slug":145},{"id":157,"languages_code":44,"label":158,"description":159,"slug":145},{"id":161,"languages_code":115,"label":162,"description":163,"slug":13},[824],{"id":494,"status":6,"created_on":825,"sort":13,"slug":743,"label":742,"on_faq_index":13},"2022-08-01T16:44:06.000Z",[827],{"languages_code":37,"name":742,"slug":743,"description":744,"support_type":560,"meta_title":13,"meta_description":13,"marketing_subtitle":18,"tile_subtitle":747,"tile_description":748,"id":740,"platforms_id":740,"docs_link":745},{"id":829,"status":6,"created_on":830,"modified_on":831,"name":832,"slug":833,"description":834,"docs_link":835,"priority":13,"has_sdk":13,"sort":836,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":837,"show_in_spa":16,"is_file_format":13,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":837,"tile_subtitle":837,"tile_description":838,"is_enterprise":14,"is_popular":16,"primary_use_case":13,"hierarchy_handling":13,"best_for":13,"file_extension":13,"format_code_example":13,"format_to_extension":13,"upload_features":13,"icon":839,"meta_image":841,"primary_tag":843,"tags":856,"integration_methods":905,"recommended_methods":925,"default_integration_method":926,"faq_categories":933,"translations":936,"platforms_id":829},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":840},"cde7f1d0-f2e0-4243-929e-a3f8f9146e69",{"id":842},"5995b721-a2ea-487e-ad4b-298a489bbd24",{"id":382,"status":6,"sort":844,"created_on":61,"label":845,"hidden":14,"icon":846,"translations":848},11,"CMS",{"id":847},"1172a655-928c-4594-9263-d8afdfd9cd79",[849,850,852,854],{"id":382,"languages_code":37,"label":845},{"id":851,"languages_code":40,"label":845},73,{"id":853,"languages_code":44,"label":845},81,{"id":855,"languages_code":48,"label":845},84,[857,871,884,891],{"id":858,"status":6,"sort":859,"label":860,"hidden":14,"created_on":61,"icon":13,"translations":861},18,17,"Multilingual SEO",[862,863,866,869],{"id":858,"languages_code":37,"label":860},{"id":864,"languages_code":40,"label":865},89,"SEO multilingüe",{"id":867,"languages_code":44,"label":868},94,"Vícejazyčné SEO",{"id":870,"languages_code":48,"label":860},99,{"id":5,"status":6,"sort":5,"label":872,"hidden":14,"created_on":61,"icon":873,"translations":875},"E-commerce",{"id":874},"e782ed3f-d954-45ca-8b17-5bf5fe95f30a",[876,877,880,882],{"id":5,"languages_code":37,"label":872},{"id":878,"languages_code":40,"label":879},132,"Comercio electrónico",{"id":881,"languages_code":44,"label":872},137,{"id":883,"languages_code":48,"label":872},142,{"id":382,"status":6,"sort":844,"label":845,"hidden":14,"created_on":61,"icon":885,"translations":886},{"id":847},[887,888,889,890],{"id":382,"languages_code":37,"label":845},{"id":851,"languages_code":40,"label":845},{"id":853,"languages_code":44,"label":845},{"id":855,"languages_code":48,"label":845},{"id":30,"status":6,"sort":74,"label":892,"hidden":14,"created_on":61,"icon":893,"translations":895},"Marketing tools",{"id":894},"098fe6a4-dd2e-42d8-937e-2d8121e6e266",[896,897,900,903],{"id":30,"languages_code":37,"label":892},{"id":898,"languages_code":40,"label":899},43,"Herramientas de marketing",{"id":901,"languages_code":44,"label":902},48,"Marketingové nástroje",{"id":904,"languages_code":48,"label":892},58,[906],{"id":58,"status":6,"sort":13,"label":907,"alternative_label":908,"slug":909,"description":910,"documentation_link":911,"loc_icon":912,"is_official_plugin":16,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":913},"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",[914,915,918,919,922],{"id":58,"languages_code":37,"label":907,"description":910,"slug":909},{"id":898,"languages_code":40,"label":916,"description":917,"slug":13},"Complemento Oficial de Strapi","Nuestros desarrolladores mantienen un complemento oficial de localización de Strapi. ¡Empiece en unos pocos clics!",{"id":65,"languages_code":48,"label":907,"description":910,"slug":909},{"id":499,"languages_code":44,"label":920,"description":921,"slug":13},"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":864,"languages_code":115,"label":923,"description":924,"slug":13},"Offizielles Strapi-Plugin","Unsere Entwickler pflegen ein offizielles Strapi-Lokalisierungs-Plugin. Starten Sie mit ein paar Klicks!",[],{"id":58,"status":6,"sort":13,"label":907,"alternative_label":908,"slug":909,"description":910,"documentation_link":911,"loc_icon":912,"is_official_plugin":16,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":927},[928,929,930,931,932],{"id":58,"languages_code":37,"label":907,"description":910,"slug":909},{"id":898,"languages_code":40,"label":916,"description":917,"slug":13},{"id":65,"languages_code":48,"label":907,"description":910,"slug":909},{"id":499,"languages_code":44,"label":920,"description":921,"slug":13},{"id":864,"languages_code":115,"label":923,"description":924,"slug":13},[934],{"id":151,"status":6,"created_on":935,"sort":13,"slug":833,"label":832,"on_faq_index":13},"2022-06-16T09:24:13.000Z",[937],{"languages_code":37,"name":832,"slug":833,"description":834,"support_type":837,"meta_title":13,"meta_description":13,"marketing_subtitle":837,"tile_subtitle":837,"tile_description":838,"id":829,"platforms_id":829,"docs_link":835},{"id":68,"status":6,"created_on":376,"modified_on":939,"name":940,"slug":941,"description":13,"docs_link":942,"priority":13,"has_sdk":14,"sort":157,"highlighted":14,"in_menu":16,"changefreq":13,"support_type":943,"show_in_spa":16,"is_file_format":14,"meta_title":13,"meta_description":13,"featured_on_web":16,"marketing_subtitle":944,"tile_subtitle":945,"tile_description":946,"is_enterprise":14,"is_popular":16,"primary_use_case":13,"hierarchy_handling":13,"best_for":13,"file_extension":13,"format_code_example":13,"format_to_extension":13,"upload_features":947,"icon":948,"meta_image":950,"primary_tag":952,"tags":966,"integration_methods":974,"recommended_methods":990,"default_integration_method":991,"faq_categories":997,"translations":998,"platforms_id":68},"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":949},"813745a4-a77d-4735-93b7-e0dd731b2304",{"id":951},"7573fed6-8817-4cb4-84d2-be327e6c4891",{"id":15,"status":6,"sort":295,"created_on":61,"label":953,"hidden":14,"icon":954,"translations":956},"Design tools",{"id":955},"1053d863-b690-4fbd-aadf-dbf2ba282768",[957,958,961,964],{"id":15,"languages_code":37,"label":953},{"id":959,"languages_code":40,"label":960},42,"Herramientas de diseño",{"id":962,"languages_code":44,"label":963},49,"Nástroje pro návrh",{"id":965,"languages_code":48,"label":953},57,[967],{"id":15,"status":6,"sort":295,"label":953,"hidden":14,"created_on":61,"icon":968,"translations":969},{"id":955},[970,971,972,973],{"id":15,"languages_code":37,"label":953},{"id":959,"languages_code":40,"label":960},{"id":962,"languages_code":44,"label":963},{"id":965,"languages_code":48,"label":953},[975],{"id":295,"status":6,"sort":13,"label":908,"alternative_label":908,"slug":976,"description":977,"documentation_link":978,"loc_icon":912,"is_official_plugin":16,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":979},"official-plugin","Our developers maintain an official plugin for this integration. Start in a few clicks!","\u002Fdocs",[980,981,985,987],{"id":295,"languages_code":37,"label":908,"description":977,"slug":976},{"id":982,"languages_code":40,"label":983,"description":984,"slug":13},23,"Plugin Oficial","Nuestros desarrolladores mantienen un plugin oficial para esta integración. ¡Empiece con unos pocos clics!",{"id":986,"languages_code":48,"label":908,"description":977,"slug":976},29,{"id":463,"languages_code":44,"label":988,"description":989,"slug":13},"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":295,"status":6,"sort":13,"label":908,"alternative_label":908,"slug":976,"description":977,"documentation_link":978,"loc_icon":912,"is_official_plugin":16,"is_universal_plugin":14,"universal_plugin_vendor":13,"translations":992},[993,994,995,996],{"id":295,"languages_code":37,"label":908,"description":977,"slug":976},{"id":982,"languages_code":40,"label":983,"description":984,"slug":13},{"id":986,"languages_code":48,"label":908,"description":977,"slug":976},{"id":463,"languages_code":44,"label":988,"description":989,"slug":13},[],[999],{"languages_code":37,"name":940,"slug":941,"description":13,"support_type":943,"meta_title":13,"meta_description":13,"marketing_subtitle":944,"tile_subtitle":945,"tile_description":946,"id":68,"platforms_id":68,"docs_link":942},[1001,1182,1395,1498,1626,1630],{"id":30,"name":1002,"url":13,"url_text":13,"status":6,"groups":1003},"Solutions",[1004,1013,1080,1112],{"navigation_items_group_id":1005},{"id":15,"sort":29,"status":6,"name":1006,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":16,"show_all_url":13,"represent_as_tile":14,"items":1008},"Featured Article","top",[1009],{"collection":1010,"item":1011},"blog_post_navigation_item_type",{"id":73,"status":6,"sort":13,"show_author_img":16,"blog_post_tag":1012,"description":13},"nav",{"navigation_items_group_id":1014},{"id":29,"sort":142,"status":6,"name":1015,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":1016,"represent_as_tile":16,"items":1017},"Your Role","\u002Froles",[1018,1030,1040,1050,1060,1070],{"collection":1019,"item":1020},"relation_navigation_item_type",{"id":142,"status":6,"sort":13,"name":1021,"item":1022},"CMO",[1023],{"collection":1024,"item":1025},"personas",{"id":142,"status":6,"sort":13,"slug":1026,"icon":1027},"chief-marketing-officers",{"id":1028,"title":1029},"526097d8-176f-48e5-83d3-2fc4d77061f9","La Mail Bulk",{"collection":1019,"item":1031},{"id":15,"status":6,"sort":13,"name":1032,"item":1033},"CTO",[1034],{"collection":1024,"item":1035},{"id":73,"status":6,"sort":13,"slug":1036,"icon":1037},"chief-technical-officers",{"id":1038,"title":1039},"f808fdf0-c78b-4294-ba59-fe25f46fe825","La Mechanic",{"collection":1019,"item":1041},{"id":472,"status":6,"sort":13,"name":1042,"item":1043},"Product Manager",[1044],{"collection":1024,"item":1045},{"id":858,"status":6,"sort":13,"slug":1046,"icon":1047},"product-managers",{"id":1048,"title":1049},"ea39586a-21fc-4b34-ba87-496028e5198f","La Worker",{"collection":1019,"item":1051},{"id":151,"status":6,"sort":13,"name":1052,"item":1053},"Translator",[1054],{"collection":1024,"item":1055},{"id":472,"status":6,"sort":13,"slug":1056,"icon":1057},"professional-translators",{"id":1058,"title":1059},"07945171-d51d-4ca8-96c0-21cde9db258f","La Chat",{"collection":1019,"item":1061},{"id":128,"status":6,"sort":13,"name":1062,"item":1063},"Developer",[1064],{"collection":1024,"item":1065},{"id":321,"status":6,"sort":13,"slug":1066,"icon":1067},"software-developers",{"id":1068,"title":1069},"1806e46d-c551-4845-bf42-4407344d229e","La Terminal",{"collection":1019,"item":1071},{"id":746,"status":6,"sort":13,"name":1072,"item":1073},"Localization Manager",[1074],{"collection":1024,"item":1075},{"id":74,"status":6,"sort":13,"slug":1076,"icon":1077},"localization-managers",{"id":1078,"title":1079},"dac69bd1-bf5d-41d0-87d4-dd13e314698a","La Language",{"navigation_items_group_id":1081},{"id":59,"sort":15,"status":6,"name":1082,"render_show_all_url":14,"show_all_url_position":1083,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1084},"Use cases","bottom",[1085,1090,1094,1099,1103,1108],{"collection":1086,"item":1087},"simple_link_navigation_item_type",{"id":652,"status":6,"sort":13,"url":1088,"url_text":1089,"show_favorite_icon":14},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fsoftware-localization","Software localization",{"collection":1086,"item":1091},{"id":740,"status":6,"sort":13,"url":1092,"url_text":1093,"show_favorite_icon":14},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fmobile-app-localization","Mobile app localization",{"collection":1086,"item":1095},{"id":1096,"status":6,"sort":13,"url":1097,"url_text":1098,"show_favorite_icon":14},25,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fwebsite-localization","Website localization",{"collection":1086,"item":1100},{"id":746,"status":6,"sort":13,"url":1101,"url_text":1102,"show_favorite_icon":14},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fdesign-localization","Design localization",{"collection":1086,"item":1104},{"id":1105,"status":6,"sort":13,"url":1106,"url_text":1107,"show_favorite_icon":14},28,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fgame-localization","Game localization",{"collection":1086,"item":1109},{"id":986,"status":6,"sort":13,"url":1110,"url_text":1111,"show_favorite_icon":14},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fhelp-and-docs-localization","Help & docs localization",{"navigation_items_group_id":1113},{"id":58,"sort":30,"status":6,"name":1114,"render_show_all_url":14,"show_all_url_position":1083,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1115},"Industry",[1116,1126,1136,1145,1155,1164,1175],{"collection":1019,"item":1117},{"id":982,"status":6,"sort":13,"name":1118,"item":1119},"Digital Agencies",[1120],{"collection":1024,"item":1121},{"id":295,"status":6,"sort":13,"slug":1122,"icon":1123},"digital-agencies",{"id":1124,"title":1125},"547f5619-b21d-4b29-86f1-8b2200313cde","La Digi Agency",{"collection":1019,"item":1127},{"id":97,"status":6,"sort":13,"name":1128,"item":1129},"Startups & SaaS",[1130],{"collection":1024,"item":1131},{"id":30,"status":6,"sort":13,"slug":1132,"icon":1133},"startups",{"id":1134,"title":1135},"da1516e2-4afc-40a2-bcbf-a8161e2d610d","La Saa S",{"collection":1019,"item":1137},{"id":30,"status":6,"sort":13,"name":872,"item":1138},[1139],{"collection":1024,"item":1140},{"id":29,"status":6,"sort":13,"slug":1141,"icon":1142},"e-commerce",{"id":1143,"title":1144},"a3d09cd2-054f-4bb5-a0a2-d3d207db65df","La Ecommerce",{"collection":1019,"item":1146},{"id":181,"status":6,"sort":13,"name":1147,"item":1148},"FinTech Platforms",[1149],{"collection":1024,"item":1150},{"id":746,"status":6,"sort":13,"slug":1151,"icon":1152},"fintech",{"id":1153,"title":1154},"147339ba-07d1-4e5e-baad-23d27e60c919","La Money",{"collection":1019,"item":1156},{"id":652,"status":6,"sort":13,"name":1157,"item":1158},"Translation Agencies",[1159],{"collection":1024,"item":1160},{"id":652,"status":6,"sort":13,"slug":1161,"icon":1162},"translation-agencies",{"id":1163,"title":1079},"15d6fe33-2af8-4d6e-933d-5caa64394511",{"collection":1019,"item":1165},{"id":1166,"status":6,"sort":13,"name":1167,"item":1168},22,"Travel & Tourism",[1169],{"collection":1024,"item":1170},{"id":15,"status":6,"sort":13,"slug":1171,"icon":1172},"tourism",{"id":1173,"title":1174},"23a785e8-0ae5-4c4b-8452-aab1b58182a6","La Travel",{"collection":1019,"item":1176},{"id":1096,"status":6,"sort":13,"name":1177,"item":1178},"Nonprofit Causes",[1179],{"collection":1024,"item":1180},{"id":1105,"status":6,"sort":13,"slug":1181,"icon":13},"nonprofit",{"id":29,"name":1183,"url":13,"url_text":13,"status":6,"groups":1184},"Features",[1185,1245,1296,1342],{"navigation_items_group_id":1186},{"id":844,"sort":74,"status":6,"name":1187,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1188},"Localization",[1189,1197,1205,1213,1220,1224,1231,1238],{"collection":1019,"item":1190},{"id":494,"status":6,"sort":13,"name":1191,"item":1192},"Localization services",[1193],{"collection":1194,"item":1195},"products",{"id":59,"status":6,"slug":1196},"continuous-localization-team",{"collection":1019,"item":1198},{"id":39,"status":6,"sort":13,"name":1199,"item":1200},"Translation management",[1201],{"collection":1202,"item":1203},"term_landing_page",{"id":986,"status":6,"slug":1204},"translation-management-system",{"collection":1019,"item":1206},{"id":155,"status":6,"sort":13,"name":1207,"item":1208},"Context Screenshots",[1209],{"collection":1194,"item":1210},{"id":1211,"status":6,"slug":1212},13,"context-screenshots-ocr",{"collection":1019,"item":1214},{"id":132,"status":6,"sort":13,"name":1215,"item":1216},"Translation Glossary",[1217],{"collection":1194,"item":1218},{"id":859,"status":6,"slug":1219},"glossary",{"collection":1086,"item":1221},{"id":73,"status":6,"sort":13,"url":1222,"url_text":1223,"show_favorite_icon":14},"\u002Fdocs\u002Fgeneral\u002Freviewing-translations","Quality control",{"collection":1019,"item":1225},{"id":677,"status":6,"sort":13,"name":1226,"item":1227},"Connected Projects",[1228],{"collection":1194,"item":1229},{"id":142,"status":6,"slug":1230},"connected-projects",{"collection":1019,"item":1232},{"id":106,"status":6,"sort":13,"name":1233,"item":1234},"Plural handling",[1235],{"collection":1194,"item":1236},{"id":322,"status":6,"slug":1237},"plurals",{"collection":1019,"item":1239},{"id":110,"status":6,"sort":13,"name":1240,"item":1241},"Style guides",[1242],{"collection":1194,"item":1243},{"id":128,"status":6,"slug":1244},"style-guide",{"navigation_items_group_id":1246},{"id":382,"sort":295,"status":6,"name":1247,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1248},"Translation",[1249,1256,1263,1267,1274,1281,1289],{"collection":1019,"item":1250},{"id":549,"status":6,"sort":13,"name":1251,"item":1252},"Professional translations",[1253],{"collection":1202,"item":1254},{"id":321,"status":6,"slug":1255},"professional-translation-services",{"collection":1019,"item":1257},{"id":901,"status":6,"sort":13,"name":1258,"item":1259},"Crowdsourced translations",[1260],{"collection":1194,"item":1261},{"id":58,"status":6,"slug":1262},"share-tm",{"collection":1086,"item":1264},{"id":29,"status":6,"sort":13,"url":1265,"url_text":1266,"show_favorite_icon":14},"\u002Fdocs\u002Fgeneral\u002Ftranslating-strings","Translation interface",{"collection":1019,"item":1268},{"id":157,"status":6,"sort":13,"name":1269,"item":1270},"Machine translations",[1271],{"collection":1194,"item":1272},{"id":29,"status":6,"slug":1273},"machine-translation",{"collection":1019,"item":1275},{"id":68,"status":6,"sort":13,"name":1276,"item":1277},"Localazy AI translation",[1278],{"collection":1194,"item":1279},{"id":986,"status":6,"slug":1280},"localazy-ai",{"collection":1019,"item":1282},{"id":1283,"status":6,"sort":13,"name":1284,"item":1285},61,"Translation Memory",[1286],{"collection":1194,"item":1287},{"id":463,"status":6,"slug":1288},"translation-memory",{"collection":1019,"item":1290},{"id":400,"status":6,"sort":13,"name":1291,"item":1292},"Code & placeholders",[1293],{"collection":1194,"item":1294},{"id":321,"status":6,"slug":1295},"code-and-placeholders",{"navigation_items_group_id":1297},{"id":1211,"sort":58,"status":6,"name":1298,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1299},"Management",[1300,1304,1311,1319,1327,1334,1338],{"collection":1086,"item":1301},{"id":58,"status":6,"sort":13,"url":1302,"url_text":1303,"show_favorite_icon":14},"\u002Fdocs\u002Fgeneral\u002Fdefining-user-roles","User roles",{"collection":1019,"item":1305},{"id":101,"status":6,"sort":13,"name":1306,"item":1307},"Duplicity Linking",[1308],{"collection":1194,"item":1309},{"id":181,"status":6,"slug":1310},"duplicity-linking",{"collection":1019,"item":1312},{"id":1313,"status":6,"sort":13,"name":1314,"item":1315},52,"Language Permissions",[1316],{"collection":1194,"item":1317},{"id":554,"status":6,"slug":1318},"language-permissions",{"collection":1019,"item":1320},{"id":65,"status":1321,"sort":13,"name":1322,"item":1323},"draft","Automations",[1324],{"collection":1194,"item":1325},{"id":472,"status":6,"slug":1326},"automations",{"collection":1019,"item":1328},{"id":904,"status":6,"sort":13,"name":1329,"item":1330},"Branching",[1331],{"collection":1194,"item":1332},{"id":746,"status":6,"slug":1333},"branching",{"collection":1086,"item":1335},{"id":554,"status":1321,"sort":13,"url":1336,"url_text":1337,"show_favorite_icon":14},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fsso-configuration","SSO",{"collection":1086,"item":1339},{"id":1166,"status":1321,"sort":13,"url":1340,"url_text":1341,"show_favorite_icon":14},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Flanguage-statistics","Reporting",{"navigation_items_group_id":1343},{"id":1344,"sort":59,"status":6,"name":1345,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1346},14,"Development",[1347,1354,1360,1367,1374,1381,1388],{"collection":1019,"item":1348},{"id":986,"status":6,"sort":13,"name":1349,"item":1350},"Translation API",[1351],{"collection":1194,"item":1352},{"id":844,"status":6,"slug":1353},"translation-api",{"collection":1019,"item":1355},{"id":5,"status":6,"sort":13,"name":1356,"item":1357},"Localazy CLI",[1358],{"collection":1194,"item":1359},{"id":295,"status":6,"slug":145},{"collection":1019,"item":1361},{"id":322,"status":6,"sort":13,"name":1362,"item":1363},"Language CDN",[1364],{"collection":1194,"item":1365},{"id":73,"status":6,"slug":1366},"language-cdn",{"collection":1019,"item":1368},{"id":1105,"status":6,"sort":13,"name":1369,"item":1370},"Releases",[1371],{"collection":1194,"item":1372},{"id":74,"status":6,"slug":1373},"releases",{"collection":1019,"item":1375},{"id":965,"status":1321,"sort":13,"name":1376,"item":1377},"Format Conversions",[1378],{"collection":1194,"item":1379},{"id":30,"status":6,"slug":1380},"format-conversions",{"collection":1019,"item":1382},{"id":47,"status":6,"sort":13,"name":1383,"item":1384},"Webhooks",[1385],{"collection":1194,"item":1386},{"id":375,"status":6,"slug":1387},"webhooks",{"collection":1019,"item":1389},{"id":499,"status":6,"sort":13,"name":1390,"item":1391},"Export Aliases",[1392],{"collection":1194,"item":1393},{"id":5,"status":6,"slug":1394},"export-aliases",{"id":73,"name":1396,"url":13,"url_text":13,"status":6,"groups":1397},"Integrations",[1398,1488],{"navigation_items_group_id":1399},{"id":295,"sort":393,"status":6,"name":1400,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1401},"Most popular",[1402],{"collection":1019,"item":1403},{"id":382,"status":6,"sort":13,"name":1396,"item":1404},[1405,1413,1420,1424,1428,1435,1439,1446,1450,1454,1458,1462,1466,1473,1480],{"collection":1406,"item":1407},"platforms",{"id":74,"status":6,"sort":142,"slug":1408,"name":1409,"icon":1410},"android","Android",{"id":1411,"title":1412},"ff965add-53b0-44ad-b27c-ea4ef641d384","Ic Outline Android",{"collection":1406,"item":1414},{"id":295,"status":6,"sort":30,"slug":1415,"name":1416,"icon":1417},"ios","iOS",{"id":1418,"title":1419},"886285d7-816a-4430-b5a5-edfe307b238e","Ios",{"collection":1406,"item":1421},{"id":5,"status":6,"sort":15,"slug":10,"name":9,"icon":1422},{"id":25,"title":1423},"Logos React",{"collection":1406,"item":1425},{"id":181,"status":6,"sort":73,"slug":184,"name":183,"icon":1426},{"id":191,"title":1427},"Vue",{"collection":1406,"item":1429},{"id":1430,"status":6,"sort":29,"slug":1431,"name":1432,"icon":1433},16,"angular","Angular",{"id":1434,"title":1432},"2a31a97a-48c5-4531-aa36-41c9dd0bdbef",{"collection":1406,"item":1436},{"id":142,"status":6,"sort":74,"slug":265,"name":264,"icon":1437},{"id":279,"title":1438},"Logos Flutter",{"collection":1406,"item":1440},{"id":15,"status":6,"sort":844,"slug":1441,"name":1442,"icon":1443},"typescript","TypeScript",{"id":1444,"title":1445},"8d1319b5-8a96-4199-8407-00add3418b1f","Logos Typescript Icon",{"collection":1406,"item":1447},{"id":375,"status":6,"sort":382,"slug":379,"name":378,"icon":1448},{"id":389,"title":1449},"Logos Javascript",{"collection":1406,"item":1451},{"id":382,"status":6,"sort":472,"slug":22,"name":470,"icon":1452},{"id":484,"title":1453},"Logos Json",{"collection":1406,"item":1455},{"id":554,"status":6,"sort":554,"slug":557,"name":556,"icon":1456},{"id":572,"title":1457},"Format",{"collection":1406,"item":1459},{"id":829,"status":6,"sort":836,"slug":833,"name":832,"icon":1460},{"id":840,"title":1461},"Strapi Logo Purple",{"collection":1406,"item":1463},{"id":68,"status":6,"sort":157,"slug":941,"name":940,"icon":1464},{"id":949,"title":1465},"Figma Icon",{"collection":1406,"item":1467},{"id":101,"status":6,"sort":132,"slug":1468,"name":1469,"icon":1470},"microsoft-excel","Microsoft Excel",{"id":1471,"title":1472},"7a175955-7b96-4561-939f-a0e1924faa40","Excel",{"collection":1406,"item":1474},{"id":112,"status":6,"sort":1283,"slug":1475,"name":1476,"icon":1477},"github-actions","GitHub Actions",{"id":1478,"title":1479},"da17554f-ac6d-443d-9bac-1f29645ec1c6","Github Icon",{"collection":1406,"item":1481},{"id":1482,"status":6,"sort":1483,"slug":1484,"name":1485,"icon":1486},97,999,"webflow","Webflow",{"id":1487,"title":1485},"ff43a386-52f8-499f-b77c-ab9a30f4a77e",{"navigation_items_group_id":1489},{"id":73,"sort":844,"status":6,"name":1490,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1491},"Explore more",[1492],{"collection":1493,"item":1494},"text_link_navigation_item_type",{"id":142,"status":6,"sort":13,"text":1495,"url":1496,"url_text":1497},"Localazy is a technology-agnostic platform supporting 50+ frameworks, file formats & popular tools.","\u002Fintegrations","See all integrations",{"id":142,"name":1499,"url":13,"url_text":13,"status":6,"groups":1500},"Resources",[1501,1533,1539],{"navigation_items_group_id":1502},{"id":142,"sort":382,"status":6,"name":1503,"render_show_all_url":14,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":13,"represent_as_tile":14,"items":1504},"Helpful Links",[1505,1509,1512,1516,1520,1524,1529],{"collection":1086,"item":1506},{"id":1211,"status":6,"sort":13,"url":1507,"url_text":1508,"show_favorite_icon":16},"\u002Fblog","Localazy Blog",{"collection":1086,"item":1510},{"id":1344,"status":6,"sort":13,"url":978,"url_text":1511,"show_favorite_icon":16},"Documentation",{"collection":1086,"item":1513},{"id":142,"status":6,"sort":13,"url":1514,"url_text":1515,"show_favorite_icon":14},"https:\u002F\u002Fdiscuss.localazy.com\u002F","Discussion Forum",{"collection":1086,"item":1517},{"id":382,"status":6,"sort":13,"url":1518,"url_text":1519,"show_favorite_icon":14},"\u002Fcase-study","Case Studies",{"collection":1086,"item":1521},{"id":15,"status":6,"sort":13,"url":1522,"url_text":1523,"show_favorite_icon":14},"\u002Fpartnership","Become a Partner",{"collection":1086,"item":1525},{"id":1526,"status":6,"sort":13,"url":1527,"url_text":1528,"show_favorite_icon":14},15,"\u002Ffaq","FAQ",{"collection":1086,"item":1530},{"id":859,"status":6,"sort":13,"url":1531,"url_text":1532,"show_favorite_icon":14},"\u002Ftags\u002Frelease-update","Release Updates",{"navigation_items_group_id":1534},{"id":30,"sort":1344,"status":6,"name":1508,"render_show_all_url":16,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":1507,"represent_as_tile":14,"items":1535},[1536],{"collection":1010,"item":1537},{"id":15,"status":6,"sort":13,"show_author_img":14,"blog_post_tag":1538,"description":13},"[USE LATEST FEATURED]",{"navigation_items_group_id":1540},{"id":74,"sort":1211,"status":6,"name":1511,"render_show_all_url":16,"show_all_url_position":1007,"show_favorite_icon":14,"show_all_url":978,"represent_as_tile":14,"items":1541},[1542,1556,1567,1576,1587,1597,1608,1616],{"collection":1019,"item":1543},{"id":73,"status":6,"sort":13,"name":1544,"item":1545},"General",[1546],{"collection":1547,"item":1548},"docs_section",{"id":30,"status":6,"sort":142,"slug":1549,"name":1544,"icon":1550,"featured_icon":1553},"general",{"id":1551,"title":1552},"423101f1-308c-42f1-8dfe-53272019e7cb","Global",{"id":1554,"title":1555},"0f7ca4cb-dc3b-4f62-b476-132ed5c4931f","General Doc",{"collection":1019,"item":1557},{"id":29,"status":6,"sort":13,"name":144,"item":1558},[1559],{"collection":1547,"item":1560},{"id":15,"status":6,"sort":30,"slug":145,"name":144,"icon":1561,"featured_icon":1564},{"id":1562,"title":1563},"2f7a4573-8265-4d76-8d55-ce0cc79b8983","Cli",{"id":1565,"title":1566},"3f76ff7b-0e74-4046-bb03-4ca99c3b66d5","Doc Cat Cli",{"collection":1019,"item":1568},{"id":58,"status":6,"sort":13,"name":75,"item":1569},[1570],{"collection":1547,"item":1571},{"id":472,"status":6,"sort":15,"slug":76,"name":75,"icon":1572,"featured_icon":1573},{"id":1562,"title":1563},{"id":1574,"title":1575},"20866781-e69b-4e01-9456-05437487b75c","API Doc",{"collection":1019,"item":1577},{"id":43,"status":6,"sort":13,"name":1578,"item":1579},"CDN",[1580],{"collection":1547,"item":1581},{"id":740,"status":6,"sort":73,"slug":1582,"name":1578,"icon":1583,"featured_icon":1584},"cdn",{"id":1551,"title":1552},{"id":1585,"title":1586},"a8ee9cb7-4e02-41f0-b595-eb518c3085b6","Doc Cat Cdn",{"collection":1019,"item":1588},{"id":74,"status":6,"sort":13,"name":1409,"item":1589},[1590],{"collection":1547,"item":1591},{"id":142,"status":6,"sort":29,"slug":1408,"name":1409,"icon":1592,"featured_icon":1594},{"id":1593,"title":1409},"fb8329ae-0c0c-4fbc-bcdc-83f2eeda1039",{"id":1595,"title":1596},"f7c0dec8-5b42-4943-ab3a-e3665723ad6f","Doc Cat Android",{"collection":1019,"item":1598},{"id":295,"status":6,"sort":13,"name":1416,"item":1599},[1600],{"collection":1547,"item":1601},{"id":73,"status":6,"sort":74,"slug":1415,"name":1416,"icon":1602,"featured_icon":1605},{"id":1603,"title":1604},"289e136c-55df-4d51-847b-1782a2308ee4","Ios Blue",{"id":1606,"title":1607},"2968d3f0-14b5-4427-82e7-f1ea2de17846","Doc Cat Ios",{"collection":1019,"item":1609},{"id":59,"status":6,"sort":13,"name":940,"item":1610},[1611],{"collection":1547,"item":1612},{"id":554,"status":6,"sort":295,"slug":941,"name":940,"icon":1613,"featured_icon":1614},{"id":1562,"title":1563},{"id":1615,"title":940},"f5e66b5b-a439-47f6-af4a-6ad261de2e87",{"collection":1019,"item":1617},{"id":393,"status":6,"sort":13,"name":832,"item":1618},[1619],{"collection":1547,"item":1620},{"id":982,"status":6,"sort":58,"slug":833,"name":832,"icon":1621,"featured_icon":1623},{"id":1622,"title":832},"3b4b03c7-e131-49e6-a014-c8c2c8a2751e",{"id":1624,"title":1625},"1dd05c76-e517-4aea-a3d8-49cfddb40056","Strapi Doc",{"id":15,"name":1627,"url":1628,"url_text":1627,"status":6,"groups":1629},"Pricing","\u002Fpricing",[],{"id":74,"name":1631,"url":1632,"url_text":1631,"status":6,"groups":1633},"Book a demo","\u002Fbook-demo",[],{"id":142,"status":6,"security_section_title":1635,"loved_section_title":1636,"columns":1637,"social_links":1707,"policy_links":1737},"Secured & trusted","Loved by users",[1638,1650,1665,1686,1689],{"id":142,"status":6,"sort":13,"title":1639,"column_key":1640,"links":1641},"Localazy","connect",[1642,1644,1647],{"id":844,"status":6,"sort":142,"title":1631,"url":1643},"___LOCALAZY_MEETING_URL___",{"id":382,"status":6,"sort":30,"title":1645,"url":1646},"Contact","\u002Fcontact",{"id":554,"status":6,"sort":15,"title":1648,"url":1649},"About us","\u002Fabout-us",{"id":30,"status":6,"sort":13,"title":1651,"column_key":1652,"links":1653},"Programs","programs",[1654,1656,1659,1662],{"id":142,"status":6,"sort":73,"title":1655,"url":1522},"Partner Program",{"id":30,"status":6,"sort":29,"title":1657,"url":1658},"Ambassador Program","\u002Fambassador",{"id":15,"status":6,"sort":74,"title":1660,"url":1661},"Startup Program","\u002Ffor\u002Fstartups",{"id":73,"status":6,"sort":295,"title":1663,"url":1664},"Nonprofits","\u002Ffor\u002Fnonprofit",{"id":15,"status":6,"sort":13,"title":1666,"column_key":1667,"links":1668},"Use Cases","use_cases",[1669,1672,1675,1677,1680,1683],{"id":29,"status":6,"sort":58,"title":1670,"url":1671},"Software Localization","\u002Fterm\u002Fsoftware-localization",{"id":74,"status":6,"sort":59,"title":1673,"url":1674},"Machine Translation Services","\u002Ffeatures\u002Fmachine-translation",{"id":295,"status":6,"sort":393,"title":1349,"url":1676},"\u002Ffeatures\u002Ftranslation-api",{"id":58,"status":6,"sort":844,"title":1678,"url":1679},"Crowdsourced Translations","\u002Ffeatures\u002Fshare-tm",{"id":59,"status":6,"sort":382,"title":1681,"url":1682},"Figma i18n & localization","\u002Ffeatures\u002Ffigma-localization-plugin",{"id":393,"status":6,"sort":1211,"title":1684,"url":1685},"Translation as a Service","\u002Fterm\u002Ftranslation-service",{"id":73,"status":6,"sort":13,"title":1396,"column_key":1687,"links":1688},"integrations",[],{"id":29,"status":6,"sort":13,"title":1499,"column_key":1690,"links":1691},"resources",[1692,1693,1696,1697,1700,1702,1703,1704],{"id":1211,"status":6,"sort":1344,"title":1511,"url":978},{"id":1344,"status":6,"sort":1526,"title":1694,"url":1695},"Dictionary","\u002Fdictionary",{"id":1526,"status":6,"sort":1430,"title":1519,"url":1518},{"id":1430,"status":6,"sort":859,"title":1698,"url":1699},"Discussion forum","___DISCUSS_URL___",{"id":859,"status":6,"sort":858,"title":1701,"url":1507},"Localization Blog",{"id":858,"status":6,"sort":181,"title":1528,"url":1527},{"id":181,"status":6,"sort":472,"title":1627,"url":1628},{"id":472,"status":6,"sort":554,"title":1705,"url":1706},"Brand assets","https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Fu\u002F1\u002Ffolders\u002F1tZqsZHBlGelz7A2FwTsiwrs4j3sd9HTk",[1708,1713,1718,1723,1728,1733],{"id":142,"status":6,"sort":13,"platform":1709,"icon":1710,"url":1711,"label":1712},"feed","rss","\u002Ffeed.xml","Localazy RSS Feed",{"id":30,"status":6,"sort":13,"platform":1714,"icon":1715,"url":1716,"label":1717},"facebook","fb-logo","https:\u002F\u002Fwww.facebook.com\u002Flocalazy\u002F","Localazy facebook",{"id":15,"status":6,"sort":13,"platform":1719,"icon":1720,"url":1721,"label":1722},"github","github-logo","https:\u002F\u002Fgithub.com\u002Flocalazy","Localazy GitHub",{"id":73,"status":6,"sort":13,"platform":1724,"icon":1725,"url":1726,"label":1727},"x","x-twitter","https:\u002F\u002Fx.com\u002Flocalazy","Localazy X",{"id":29,"status":6,"sort":13,"platform":1729,"icon":1730,"url":1731,"label":1732},"linkedin","linkedin-logo","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002F37836599\u002F","Localazy LinkedIn",{"id":74,"status":6,"sort":13,"platform":1734,"icon":1735,"url":1699,"label":1736},"discourse","discourse-logo","Localazy Discourse",[1738,1741,1744],{"id":142,"status":6,"sort":13,"title":1739,"url":1740,"action":13},"Privacy policy","\u002Fprivacy-policy",{"id":30,"status":6,"sort":13,"title":1742,"url":1743,"action":13},"Terms & Conditions","\u002Fterms-and-conditions",{"id":15,"status":6,"sort":13,"title":1745,"url":13,"action":1746},"Cookies","cookie-consent",{"status":6,"header_badges":1748,"footer_badges":1766,"footer_secured_badges":1772,"slider_badges":1784},[1749,1756,1761],{"id":142,"status":6,"sort":13,"link":1750,"title":1751,"badgeType":1752,"badgeName":1753,"metadata":13,"image":1754},"https:\u002F\u002Fwww.g2.com\u002Fproducts\u002Flocalazy\u002Freviews","Best meets requirements","Other","G2-winter-24-best-meets-requirments",{"id":1755},"8d5dd6fd-6995-4c92-8219-a6ed5ba6acdc",{"id":30,"status":6,"sort":13,"link":1750,"title":1757,"badgeType":1752,"badgeName":1758,"metadata":13,"image":1759},"Best support","G2-winter-24-best-support",{"id":1760},"e59dd465-84d9-45c7-987d-dd4048fd6992",{"id":15,"status":6,"sort":13,"link":1750,"title":1762,"badgeType":1752,"badgeName":1763,"metadata":13,"image":1764},"Easiest admin","G2-winter-24-easiest-admin",{"id":1765},"5f12c4c8-bec0-47cf-87b4-a4502e9f1bd2",[1767],{"id":382,"status":6,"sort":13,"link":1750,"title":1768,"badgeType":1752,"badgeName":1769,"metadata":13,"image":1770},"Users love us","Users love us 25",{"id":1771},"232416a5-86ba-4be6-85a5-b88802003d53",[1773,1779],{"id":844,"status":6,"sort":13,"link":1774,"title":1775,"badgeType":1752,"badgeName":1776,"metadata":13,"image":1777},"https:\u002F\u002Fsprinto.com\u002Fget-iso-27001\u002F","Sprinto ISO 27001","Sprinto ISO 27001 certificate",{"id":1778},"c1c6c06c-6caf-4b78-8a7e-9606c395eb61",{"id":1211,"status":6,"sort":13,"link":1780,"title":1781,"badgeType":1752,"badgeName":1781,"metadata":13,"image":1782},"https:\u002F\u002Fwww.aicpa.org\u002Fsoc4so","SOC certificate",{"id":1783},"4f4bc0a6-09a0-41df-8295-8f990d96d941",[1785,1791,1795,1799,1803,1807,1812],{"id":29,"status":6,"sort":13,"link":1750,"title":1786,"badgeType":1752,"badgeName":1787,"metadata":1788,"image":1789},"Most likely to recommend","a","",{"id":1790},"da055731-3f11-4fc7-96f2-c11c0b84c831",{"id":74,"status":6,"sort":13,"link":1750,"title":1792,"badgeType":1752,"badgeName":13,"metadata":13,"image":1793},"EMEA High Performer",{"id":1794},"586fb488-81f2-41db-a4e8-ef309e50c0e6",{"id":295,"status":6,"sort":13,"link":1750,"title":1796,"badgeType":1752,"badgeName":13,"metadata":13,"image":1797},"Ease of Doing Business With",{"id":1798},"bfa26865-430e-463d-9886-cb56a8a8ecf6",{"id":58,"status":6,"sort":13,"link":1750,"title":1800,"badgeType":1752,"badgeName":13,"metadata":13,"image":1801},"High Performer",{"id":1802},"2cc1ba0f-c23a-4c97-ad4a-a655c97466fe",{"id":59,"status":6,"sort":13,"link":1750,"title":1804,"badgeType":1752,"badgeName":13,"metadata":13,"image":1805},"Fastest Implementation",{"id":1806},"6f297758-1c95-45f4-a6e9-528319897132",{"id":393,"status":6,"sort":13,"link":1808,"title":1809,"badgeType":1752,"badgeName":13,"metadata":13,"image":1810},"https:\u002F\u002Fwww.intercert.com\u002Fservices\u002Fgovernance-risk-compliance\u002Fiso-iec-27001","Intercert ISO 27001",{"id":1811},"0521a5f1-e1f2-4da6-a2bc-dc92773f2a7b",{"id":844,"status":6,"sort":13,"link":1774,"title":1775,"badgeType":1752,"badgeName":1776,"metadata":13,"image":1813},{"id":1778},{"id":1815,"owner":1816,"created_by":13,"sort":13,"title":1821,"slug":1822,"modified_on":1788,"created_on":1823,"pinned":14,"badge":13,"priority":1824,"main_image":1825,"status":6,"tags":1826,"dictionary":1834,"reading_time":1835,"excerpt":-1,"og_title":1788,"og_description":1788,"og_image":1788},"69d78a237ab1270001eddabf",{"id":1817,"first_name":1818,"last_name":1788,"slug":1819,"avatar":1820},"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","0.7","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F04\u002FLocalazy-AI-translation-api.png",[1827,1829,1832],{"id":68,"created_on":1828,"status":6,"label":75,"slug":76,"on_index_page":14},"2026-05-28 18:10:34",{"id":106,"created_on":1828,"status":6,"label":1830,"slug":1831,"on_index_page":16},"AI","ai",{"id":68,"created_on":1828,"status":6,"label":1187,"slug":1833,"on_index_page":16},"localization",[],0,{"id":1837,"owner":1838,"created_by":13,"sort":13,"title":1839,"slug":1840,"modified_on":1788,"created_on":1841,"pinned":14,"badge":13,"priority":1824,"main_image":1842,"status":6,"tags":1843,"dictionary":1850,"reading_time":1835,"excerpt":-1,"og_title":1788,"og_description":1788,"og_image":1788},"69ea1abb7ab1270001ede902",{"id":1817,"first_name":1818,"last_name":1788,"slug":1819,"avatar":1820},"You can just build things. But should you? The build vs. buy debate in localization","build-vs-buy-in-localization-you-can-build-things-but-should-you","2026-05-25T08:43:00.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F05\u002Flocalazy-Vibe-coding.png",[1844,1845,1849],{"id":106,"created_on":1828,"status":6,"label":1830,"slug":1831,"on_index_page":16},{"id":1846,"created_on":1828,"status":6,"label":1847,"slug":1848,"on_index_page":14},646,"Business Development","business-development",{"id":68,"created_on":1828,"status":6,"label":1187,"slug":1833,"on_index_page":16},[],{"post":1852,"relatedPosts":2055,"banner":2111},{"id":1853,"owner":1854,"created_by":13,"sort":13,"title":1859,"slug":1860,"modified_on":1861,"created_on":1861,"pinned":16,"badge":13,"priority":1824,"main_image":1862,"status":6,"tags":1863,"dictionary":1870,"reading_time":74,"excerpt":1976,"og_title":1788,"og_description":1788,"og_image":1788,"content":1977,"meta_title":1788,"meta_description":1788,"canonical":1788,"cta":1978,"fullGhostPost":1986},"67d99ff163350c0001d5801c",{"id":1855,"first_name":1856,"last_name":1788,"slug":1857,"avatar":1858},"1","Václav Hodek","vaclav-hodek","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fvasek.png","Beyond interpolation: multiple plurals, genders and building lists","beyond-interpolation-multiple-plurals-genders-and-building-lists","2025-04-09T13:07:55.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F04\u002Fbeyond-interpolation-1.png",[1864,1867,1868],{"id":68,"created_on":1828,"status":6,"label":1865,"slug":1866,"on_index_page":16},"DevTips","devtips",{"id":68,"created_on":1828,"status":6,"label":1187,"slug":1833,"on_index_page":16},{"id":68,"created_on":1828,"status":6,"label":1869,"slug":1237,"on_index_page":14},"Plurals",[1871,1892,1909,1929,1943,1960],{"id":1872,"status":6,"owner":1873,"created_on":1874,"title":1875,"excerpt":1876,"content":1877,"slug":1878,"meta_title":1788,"meta_description":1788,"canonical":1788,"related_terms":1879},90,"2bac48a8-b362-482f-b574-3bc71dca4c5b","2026-05-12T07:09:23.000Z","ICU","A robust set of C\u002FC++ and Java libraries designed to support Unicode and globalization features in software applications.","ICU is an [open-source](https:\u002F\u002Fwww.unicode.org\u002Fcopyright.html#License \"https:\u002F\u002Fwww.unicode.org\u002Fcopyright.html#License\") set of libraries that enables consistent behavior across platforms and languages, making it essential for internationalization (i18n) and localization (l10n) tasks. \n\nIt ensures that text, dates, numbers, and other culturally sensitive content are processed and displayed according to locale-specific rules.\n\nOriginally developed by IBM and now maintained by the Unicode Consortium, ICU is widely used in enterprise and open-source applications. Its integration with the [Common Locale Data Repository (CLDR)](https:\u002F\u002Fcldr.unicode.org\u002F) allows it to stay up to date with locale-specific conventions, supporting accurate formatting, sorting, and parsing across hundreds of languages and regions.\n\nThe ICU libraries are especially valuable in modern localization platforms and global software development, where linguistic precision and regional accuracy directly impact user experience. They are widely portable and gives applications the same results on all platforms and between C\u002FC++ and Java software.\n\n### 🛠️ What can ICU do?\n\n* Provides robust code page conversion between Unicode and legacy encodings\n* Enables language-sensitive string comparison with locale-specific collation rules\n* Formats numbers, dates, and currency according to regional conventions\n* Implements Unicode-aware regular expressions for global text processing\n* Handles bidirectional text (e.g., combining Arabic with English) accurately\n* Offers full access to Unicode properties and normalization functions\n* Supports multiple calendar systems and time zone calculations\n* Detects text boundaries for words, sentences, and line breaks\n* Integrates with the CLDR for up-to-date localization data\n\n> *📚 You can read more about ICU in their [official docs](https:\u002F\u002Ficu.unicode.org\u002F).*  ","icu",[1880,1883,1886,1889],{"id":1881,"slug":1882},272,"cldr",{"id":1884,"slug":1885},79,"internationalization",{"id":1887,"slug":1888},255,"icu-message-format",{"id":1890,"slug":1891},270,"unicode",{"id":1893,"status":6,"owner":1894,"created_on":1874,"title":1895,"excerpt":1896,"content":1897,"slug":1898,"meta_title":1788,"meta_description":1788,"canonical":1788,"related_terms":1899},171,"d8c4ae49-7239-4b85-abb6-d1fa80ba09ad","Strings","Strings are sequences of characters used in software and localization to represent text, such as words, sentences, or entire paragraphs.","In the context of software development and translation, strings are essential for ensuring that the user interface and other textual content can be easily translated and adapted to different languages and regions.\n\nStrings are often stored in resource files and referenced by unique keys in the code. This approach allows for easy updates and modifications without altering the underlying program logic.\n\n## 📝 Basic points about strings:\n\n* **Storage**: Strings are typically stored in resource files, such as JSON, XML, or PO files, making it easier to manage translations.\n* **Translation**: They are the primary units translated into different languages during the localization process.\n* **Context**: Providing context for strings is crucial to ensure accurate translations, as the same string can have different meanings in different contexts.\n* **Reusability**: Strings can be reused across different parts of an application, promoting consistency and reducing redundancy.\n* **String management**: Our platform helps to manage and automate the translation of strings, streamlining the localization process.\n\n> *Read more about the entire process and find out how [string translation](https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-strings) works in Localazy.*","strings",[1900,1901,1904,1906],{"id":1211,"slug":1273},{"id":1902,"slug":1903},129,"key-clustering",{"id":1905,"slug":1310},153,{"id":1907,"slug":1908},170,"key-count",{"id":1910,"status":1321,"owner":1911,"created_on":1912,"title":1913,"excerpt":1914,"content":1915,"slug":1916,"meta_title":13,"meta_description":13,"canonical":13,"related_terms":1917},192,"ceebb166-1990-467a-a514-56e71dfcf7a4","2026-05-12T07:09:24.000Z","i18n ","i18n is an abbreviation for internationalization, the practice of preparing software to be localized. ","i18n, or internationalization, is the process of designing software so it can be easily adapted for different languages, regions, and cultures without changing the core code. The name comes from the abbreviation \"i18n,\" where \"18\" represents the number of letters between \"i\" and \"n\" in the word \"internationalization.\"\n\n### Key points about i18n: 🌍\n- **Content Separate from Code.** i18n keeps language-specific content like text and dates separate from the code, making it easier to translate and adapt.\n- **Handles Plurals and Context.** It supports multiple plural forms, gender-specific words, and cultural context changes.\n- **Cross-Platform.** i18n can be applied to software, websites, and mobile apps, ensuring smooth localization across all platforms.\n- **Prepares for Globalization.** It sets up your product to handle different languages, date formats, currencies, and writing directions like left-to-right or right-to-left.\n\ni18n simplifies the localization process, making it easier to adapt software for global audiences.","i18n",[1918,1919,1921,1923,1925,1927],{"id":30,"slug":1833},{"id":73,"slug":1920},"translation",{"id":29,"slug":1922},"globalization",{"id":74,"slug":1924},"t9n",{"id":393,"slug":1926},"g11n",{"id":15,"slug":1928},"l10n",{"id":781,"status":6,"owner":1873,"created_on":1930,"title":470,"excerpt":1931,"content":1932,"slug":22,"meta_title":13,"meta_description":13,"canonical":13,"related_terms":1933},"2022-03-17T12:22:56.000Z","JSON stands for JavaScript Object Notation and it's a widely used file format.","JSON is a lightweight format for storing and transporting data originally specified by Douglas Crockford in the early 2000s. It is often used when data is sent from a server to a web page.  It is \"self-describing\" and highly understandable, as it is easy for humans to read and write and for machines to parse and generate.\n\nThis programming language is independent but it is derived from the JavaScript\u002FECMAScript programming language and uses the conventions familiar to programmers of the C series of languages ​​(including C, C++, C#, Java, JavaScript, Perl, and Python).\n\nJSON is one of the best localizable file formats you can use to store your project's externalized strings. Localazy fully supports and lets you manage and translate your JSON files. \n\n## Further reading:\n- [Quick Start - JSON](https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fquick-start-json)\n- [File Format - JSON](https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fjson-format)\n- [JavaScript app localization with i18next and Localazy](https:\u002F\u002Flocalazy.com\u002Fblog\u002Fjavascript-app-localization-i18next-localazy)",[1934,1936,1938,1940],{"id":740,"slug":1935},"java",{"id":68,"slug":1937},"externalized-string",{"id":1939,"slug":379},75,{"id":1941,"slug":1942},83,"python",{"id":1939,"status":6,"owner":1873,"created_on":1944,"title":378,"excerpt":1945,"content":1946,"slug":379,"meta_title":1788,"meta_description":13,"canonical":13,"related_terms":1947},"2022-03-17T12:22:55.000Z","JavaScript is a scripting language that allows developers to create interactive web interfaces.","JavaScript is a scripting language that makes it possible to dynamically update content, control multimedia, animate images, and achieve many other things. Most websites use JavaScript on the client-side to change how pages look and behave when users interact with them. JavaScript is most well-known as the scripting language for web interfaces, although many non-browser environments also use it, such as [Node.js](\u002Fdictionary\u002Fnodejs). \n\nJavaScript first appeared in 1995. Brendan Eich of Netscape initially designed it, but others have also contributed to the ECMAScript standard that forms the basis of JavaScript.\n\nJavaScript is the basis for many popular web development frameworks, such as:\n- [Vue.js](\u002Fdictionary\u002Fvuejs)\n- [Angular](\u002Fdictionary\u002Fangular)\n- [React](\u002Fdictionary\u002Freact)\n\nLocalazy supports [integrations](\u002Fintegrations) with many JavaScript frameworks and file formats.\n\n## Helpful resources:\n- [MDN Web Docs - JavaScript](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript) \n- [JavaScript.com Learning Resources](https:\u002F\u002Fwww.javascript.com\u002F)\n- [Tutorial: How to localize JavaScript project with Localazy](\u002Fblog\u002Fjavascript-app-localization-i18next-localazy)",[1948,1950,1951,1953,1954,1957],{"id":1949,"slug":1441},74,{"id":403,"slug":10},{"id":1952,"slug":1431},69,{"id":406,"slug":184},{"id":1955,"slug":1956},80,"nodejs",{"id":1958,"slug":1959},77,"nuxt",{"id":1961,"status":6,"owner":1962,"created_on":1963,"title":1964,"excerpt":1965,"content":1966,"slug":1967,"meta_title":1788,"meta_description":1788,"canonical":1788,"related_terms":1968},283,"a5e46ee7-1f50-4f81-ae2d-68a664c76aa2","2026-05-12T07:09:25.000Z","Variable","A text element that represents a value in programming and localization contexts.","In programming and localization, a variable is a named storage location that holds a value or piece of data. Its value can change during the execution of a program or workflow, which makes it possible to generate dynamic content instead of hardcoding fixed text.\n\nVariables are widely used to represent content that changes based on user actions, system settings, or locale. A variable might store a user name, selected language, product quantity, currency value, date, version number, or interface state.\n\nIn localization workflows, variables make it possible to adapt the same string to different users, languages, and regions without changing the underlying code. For example, a variable can store a user’s preferred locale, which the system then uses to display interface text, dates, and currencies in the correct regional format.\n\nVariables are especially important in translation because they preserve **dynamic content that must stay consistent across all language versions**, such as product names, prices, dates, software versions, or user-specific values. Translators may need to reposition these variables in the sentence to match grammar rules, but the variable itself must remain unchanged.\n\nVariables can represent many data types, including strings, integers, decimals, Booleans, arrays, and complex objects, which makes them useful across UI localization, backend workflows, and formatting logic.\n\n### 🔤 Key characteristics of variables\n\n* Proper naming conventions improve readability and maintainability\n* They are essential in languages such as JavaScript, Python, and C++\n* They support dynamic UI and content generation\n* They can store locale, user, and region-specific values\n* Variables have defined scope, such as local or global access\n* Most languages require declaration rules and supported data types\n\n### 📅 Variables in date and currency localization\n\nVariables frequently hold values that require **locale-aware formatting**, especially dates, times, prices, percentages, and currencies.\n\nThis is a major usability and localization concern because incorrect formatting can confuse users or create serious errors in **date interpretation, financial values, reporting, and data entry flows**.\n\nTeams should:\n\n* use locale-aware formatting libraries such as **Intl API, Luxon, or locale-aware date utilities**\n* avoid hardcoded formats like `MM\u002FDD\u002FYYYY`\n* never manually concatenate currency symbols\n* test with real device locale settings\n* validate edge cases such as timezone, decimal separators, and currency position\n\nLocalazy helps teams preserve variables during translation, preventing translators from accidentally changing dynamic values while still allowing the sentence structure to adapt naturally across languages.\n\n> *See how Localazy helps [protect placeholders, variables, and markup during translation](https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fcode-and-placeholders\u002F).*","variable",[1969,1971,1973],{"id":549,"slug":1970},"locale",{"id":327,"slug":1972},"placeholder",{"id":1974,"slug":1975},287,"a-b-testing","Relying on interpolation to structure your localization project is tempting, but it can lead to problems down the road. Learn how to deal with six common scenarios for variables — plus, get a few tips to handle placeholders, formatting, and HTML tags.","\u003Cp>We say it all the time, but we'll say it again: localization is much more than simply translating words — it involves handling grammar, context, and cultural nuances. 👀  For developers, this means that \u003Cstrong>relying on string concatenation or naïve interpolation can lead to issues that make your app sound awkward or even produce incorrect messages\u003C\u002Fstrong> in certain languages. \u003C\u002Fp>\u003Cp>In this article, we discuss common risks and how to solve them.\u003C\u002Fp>\u003Ch2 id=\"avoiding-string-concatenation\">✚ Avoiding string concatenation \u003Ca class=\"markdownit-header-anchor\" href=\"#avoiding-string-concatenation\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Building sentences by concatenating strings (e.g., \u003Ccode>\"Welcome, \" + username\u003C\u002Fcode>) forces a fixed word order that may work in one language (like English) but will break in languages with different syntax. Splitting sentences into fragments also deprives translators of context and produces less natural-sounding translations.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#solution\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Cstrong>Always externalize the entire sentence as a single translatable string \u003C\u002Fstrong>with \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fplaceholder\">placeholders\u003C\u002Fa>. This way, translators can reorder placeholders as needed.\u003C\u002Fp>\u003Ch3 id=\"example\">Example \u003Ca class=\"markdownit-header-anchor\" href=\"#example\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"greeting\": \"Welcome, {username}.\"\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Assume getString is a function that retrieves and formats the translation.\nconst username = \"Alice\";\nconst greeting = getString(\"greeting\", { username });\nconsole.log(greeting); \u002F\u002F \"Welcome, Alice.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"dealing-with-plurals-effectively\">👬 Dealing with plurals effectively \u003Ca class=\"markdownit-header-anchor\" href=\"#dealing-with-plurals-effectively\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Different languages have varied \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fpluralization\">pluralization\u003C\u002Fa> rules. A naïve approach like \u003Ccode>const message = count + \" file\" + (count !== 1 ? \"s\" : \"\");\u003C\u002Fcode> works in English, but fails for languages with a different number of plural forms. The Czech language has three of them, Arabic six, and in Japanese, there is only one form as they don't distinguish between singular and plural in language syntax.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#solution\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-plurals?srsltid=AfmBOoobGaGsyyinQHSU53G14V3JvzXPcWs-yZ22Xxef4M0bhYKmm4rV\">Define plural resources\u003C\u002Fa> in your localizable files and let the localization engine select the correct variant\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch3 id=\"example\">Example \u003Ca class=\"markdownit-header-anchor\" href=\"#example\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"file_count\": {\n    \"one\": \"{count} file\",\n    \"other\": \"{count} files\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Assume getPluralizedString is a function that retrieves and formats the pluralized translation.\nconst count = 3;\nconst fileMessage = getPluralizedString(\"file_count\", count, { count });\nconsole.log(fileMessage); \u002F\u002F \"3 files\" (assuming English rules)\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"handling-multiple-plurals-in-one-string\">🪢 Handling multiple plurals in one string \u003Ca class=\"markdownit-header-anchor\" href=\"#handling-multiple-plurals-in-one-string\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Some sentences contain more than one pluralized element (e.g., \u003Ccode>{count1} apples and {count2} oranges\u003C\u002Fcode>). Managing multiple plural forms in one sentence without bloating your code can be challenging.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#solution\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Cstrong>Define separate plural objects for each element and then combine them within a template string\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch3 id=\"examples\">Examples \u003Ca class=\"markdownit-header-anchor\" href=\"#examples\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"num_apples\": {\n    \"one\": \"{count} apple\",\n    \"other\": \"{count} apples\"\n  },\n  \"num_oranges\": {\n    \"one\": \"{count} orange\",\n    \"other\": \"{count} oranges\"\n  },\n  \"fruit_summary\": \"{apples} and {oranges}.\"\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>const appleCount = 2;\nconst orangeCount = 5;\nconst applesText = getPluralizedString(\"num_apples\", appleCount, { count: appleCount });\nconst orangesText = getPluralizedString(\"num_oranges\", orangeCount, { count: orangeCount });\nconst summary = getString(\"fruit_summary\", { apples: applesText, oranges: orangesText });\nconsole.log(summary); \u002F\u002F \"2 apples and 5 oranges.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"formatting-variable-lists\">✍️ Formatting variable lists \u003Ca class=\"markdownit-header-anchor\" href=\"#formatting-variable-lists\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Sometimes, you need to display a list of items that can vary in length — for example, \u003Ccode>\"Alice, Bob, and Charlie\"\u003C\u002Fcode>, or \u003Ccode>\"Alice and Bob\"\u003C\u002Fcode> (if only two names), or just \u003Ccode>\"Alice\"\u003C\u002Fcode> (if one name). Constructing such lists in a localization-friendly way is challenging. \u003Cstrong>Different languages have different conventions for list formatting\u003C\u002Fstrong>: the separator (comma, semicolon, etc.) and the word for “and” or “or” might change, and some languages don’t use the Oxford comma or use a different conjunction.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#solution\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>The safest approach is to \u003Cstrong>use localization libraries or APIs that know how to format lists for each locale\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>If such an option is unavailable, \u003Cstrong>building a list using patterns\u003C\u002Fstrong> is another possible solution:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>two\u003C\u002Fcode> = “{0} and {1}” \u003Cem>(for exactly two items)\u003C\u002Fem>\u003C\u002Fli>\u003Cli>\u003Ccode>start\u003C\u002Fcode> = “{0}, {1}” \u003Cem>(for the beginning of a list)\u003C\u002Fem>\u003C\u002Fli>\u003Cli>\u003Ccode>middle\u003C\u002Fcode> = “{0}, {1}” \u003Cem>(for the middle of a list)\u003C\u002Fem>\u003C\u002Fli>\u003Cli>\u003Ccode>end\u003C\u002Fcode> = “{0}, and {1}” \u003Cem>(for the end of a list)\u003C\u002Fem>\u003C\u002Fli>\u003C\u002Ful>\u003Ch3 id=\"example\">Example \u003Ca class=\"markdownit-header-anchor\" href=\"#example\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"listPattern\": {\n    \"two\": \"{0} and {1}\",\n    \"start\": \"{0}, {1}\",\n    \"middle\": \"{0}, {1}\",\n    \"end\": \"{0}, and {1}\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Helper function to replace placeholders {0} and {1} in a pattern.\nfunction formatWithPattern(pattern, a, b) {\n  return pattern.replace(\"{0}\", a).replace(\"{1}\", b);\n}\n\n\u002F\u002F Formats an array of items into a localized list string.\n\u002F\u002F Uses different patterns based on the number of items.\nfunction formatLocalizedList(items, locale = \"en\") {\n  const patterns = listPattern[locale] || listPattern[\"en\"];\n  const n = items.length;\n  if (n === 0) return \"\";\n  if (n === 1) return items[0];\n  if (n === 2) return formatWithPattern(patterns.two, items[0], items[1]);\n    \n  \u002F\u002F For three or more, we add start, all the middle items and then the last one.\n  let result = formatWithPattern(patterns.start, items[0], items[1]);\n  for (let i = 2; i &lt; n - 1; i++) {\n    result = formatWithPattern(patterns.middle, result, items[i]);\n  }\n  result = formatWithPattern(patterns.end, result, items[n - 1]);\n  \n  return result;\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"handling-overflow-counts-in-variable-lists\">📋 Handling overflow counts in variable lists \u003Ca class=\"markdownit-header-anchor\" href=\"#handling-overflow-counts-in-variable-lists\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Often, you may display a preview of items followed by an overflow count (e.g., “You have A, B, C and two more”). While in English “more” is uniform, other languages may require different forms depending on the number.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#solution\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Cstrong>Separate the preview list from the overflow count\u003C\u002Fstrong>. Define a plural resource for the overflow message so that plural logic is handled externally.\u003C\u002Fp>\u003Ch3 id=\"example\">Example \u003Ca class=\"markdownit-header-anchor\" href=\"#example\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"overflow_list\": \"You have {items} and {more}.\",\n  \"x_more\": {\n    \"one\": \"{count} more\",\n    \"other\": \"{count} more\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>cs.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"overflow_list\": \"Máte {items} a {more}.\",\n  \"x_more\": {\n    \"one\": \"{count} další\",\n    \"few\": \"{count} další\",\n    \"other\": \"{count} dalších\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>const itemsList = \"A, B, C\"; \u002F\u002F Pre-formatted - see \"Formatting Variable Lists\" above.\nconst extraCount = 5;\nconst moreText = getPluralizedString(\"x_more\", extraCount, { count: extraCount });\nconst overflowMessage = getTranslation(\"overflow_list\", { items: itemsList, more: moreText });\nconsole.log(overflowMessage); \n\u002F\u002F English: \"You have A, B, C and 5 more.\"\n\u002F\u002F Czech: \"Máte A, B, C a 5 dalších.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"gender-and-grammatical-agreement\">🤝 Gender and grammatical agreement \u003Ca class=\"markdownit-header-anchor\" href=\"#gender-and-grammatical-agreement\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Languages with grammatical gender require different word forms based on the subject’s gender. For example, a message like “{user} has updated his profile” must change if the user is female or if a gender-neutral term is needed. Simple concatenation does not allow for these variations.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution \u003Ca class=\"markdownit-header-anchor\" href=\"#solution\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Define gender-specific messages in your translation JSON. \u003Cstrong>Use separate keys for each gender variant\u003C\u002Fstrong> (e.g., \u003Ccode>male\u003C\u002Fcode>, \u003Ccode>female\u003C\u002Fcode>, \u003Ccode>other\u003C\u002Fcode>), and choose the correct one based on the context provided in your code.\u003C\u002Fp>\u003Ch3 id=\"example\">Example \u003Ca class=\"markdownit-header-anchor\" href=\"#example\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"profile_message\": {\n    \"male\": \"{user} has updated his profile.\",\n    \"female\": \"{user} has updated her profile.\",\n    \"other\": \"{user} has updated their profile.\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Function to get gender-specific translation based on a user's gender.\nfunction getProfileMessage(user, gender) {\n  \u002F\u002F Assume getStringByGender is a helper that selects the right message\n  return getStringByGender(\"profile_message\", gender, { user });\n}\n\n\u002F\u002F Example usage:\nconst user = \"Jordan\";\nconst gender = \"female\"; \u002F\u002F Could be 'male', 'female', or 'other'\nconst profileMessage = getProfileMessage(user, gender);\nconsole.log(profileMessage); \u002F\u002F \"Jordan has updated her profile.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"a-few-extra-tips\">💬 A few extra tips \u003Ca class=\"markdownit-header-anchor\" href=\"#a-few-extra-tips\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Ch3 id=\"ordering-and-positional-placeholders\">Ordering and positional placeholders \u003Ca class=\"markdownit-header-anchor\" href=\"#ordering-and-positional-placeholders\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Different languages may require dynamic parts in a different order. \u003Cstrong>Use named placeholders so that translators can reorder them without losing context\u003C\u002Fstrong>. If named, the placeholders carry the context.\u003C\u002Fp>\u003Ch3 id=\"inconsistent-formatting-of-numbers-dates-currencies-and-units\">Inconsistent formatting of numbers, dates, currencies, and units \u003Ca class=\"markdownit-header-anchor\" href=\"#inconsistent-formatting-of-numbers-dates-currencies-and-units\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Using interpolation with raw numbers or dates can lead to confusion since it bypasses locale-aware formatting. \u003Cstrong>Always format numbers, dates, and currencies using locale-specific utilities before insertion\u003C\u002Fstrong>. You should also consider how to display units (kilometers vs. miles, Celsius vs. Fahrenheit, etc.).\u003C\u002Fp>\u003Ch3 id=\"html-tags\">HTML tags \u003Ca class=\"markdownit-header-anchor\" href=\"#html-tags\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Avoid using HTML and other formatting tags if possible. It can be confusing for translators. \u003Cstrong>Prefer using non-translatable templates\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>templates.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"title\": \"&lt;h1&gt;{title}&lt;\u002Fh1&gt;\"\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"icu-message-format\">📚 ICU Message Format \u003Ca class=\"markdownit-header-anchor\" href=\"#icu-message-format\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>In addition to the approaches discussed above, \u003Cstrong>the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Ficu-message-format\u002F\">ICU Message Format\u003C\u002Fa> standard offers a powerful, cross-platform solution\u003C\u002Fstrong> for common interpolation issues. It allows you to \u003Cstrong>embed pluralization, gender variations, and argument reordering directly within a single message string\u003C\u002Fstrong>, ensuring that translations are grammatically correct and contextually appropriate. It simplifies the localization process and can be integrated into various platforms and programming environments to handle complex language rules.\u003C\u002Fp>\u003Cp>However, all the approaches discussed above apply, and it's important to remember them to use ICU Message Format correctly.\u003C\u002Fp>\u003Ch2 id=\"how-localazy-handles-placeholders\">💙 How Localazy handles placeholders \u003Ca class=\"markdownit-header-anchor\" href=\"#how-localazy-handles-placeholders\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Even when following best practices, \u003Cstrong>rules can be bent, and subtle issues can still arise\u003C\u002Fstrong>, like translating placeholder names literally by accident, which could break your code. \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fcode-and-placeholders\u002F\">Localazy's built-in validation\u003C\u002Fa> warns about missing or misplaced placeholders and potential issues before they reach your users.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F04\u002Fimage.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"738\" height=\"375\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F04\u002Fimage.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F04\u002Fimage.png 738w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Localazy \u003Cstrong>automatically identifies placeholders in various formats\u003C\u002Fstrong> (whether they're ICU-style \u003Ccode>{variable}\u003C\u002Fcode>, JavaScript template literals \u003Ccode>${variable}\u003C\u002Fcode>, or other common formats) and highlights them during translation. 🕵️‍♀️ This ensures that translators can see and maintain these elements while having the freedom to reorganize sentences as needed for their language.\u003C\u002Fp>\u003Cp>Plus, \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fplurals\u002F\">our support for pluralization\u003C\u002Fa> means you don't need to handle the complex plural rules discussed above manually. \u003Cstrong>The correct forms are automatically applied based on the target language and your i18n library\u003C\u002Fstrong>. This approach keeps your codebase clean while ensuring your app speaks naturally to users worldwide.\u003C\u002Fp>\u003Ch2 id=\"conclusion\">✔️ Conclusion \u003Ca class=\"markdownit-header-anchor\" href=\"#conclusion\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>As you can see, avoiding string concatenation and naïve interpolation with complete sentence externalization and placeholders frees you from unexpected problems in your localization project in the future. Your messages will be grammatically correct and contextually appropriate in every language — and, most importantly, \u003Cstrong>you will have an easier-to-maintain, cleaner codebase\u003C\u002Fstrong>. \u003C\u002Fp>\u003Cp>The end result will be \u003Cstrong>a more natural user experience for your international audience\u003C\u002Fstrong>. We hope these tips helped. Happy coding! 🧑‍💻\u003C\u002Fp>",{"id":15,"status":6,"created_on":1979,"modified_on":1980,"icon":1981,"header":1982,"description":1983,"button_label":1984,"link":1985},"2022-03-17T12:23:03.000Z","2025-01-20T13:25:27.000Z","app","Integrate with anything using Localazy CLI","Developers love our CLI! Localize your product using the most advanced command-line interface for i18n, l10n and translation management. ","Read more","features\u002Fcli\u002F",{"slug":1860,"id":1853,"uuid":1987,"title":1859,"html":1988,"comment_id":1853,"feature_image":1862,"featured":16,"visibility":1989,"email_recipient_filter":1990,"created_at":1991,"updated_at":1861,"published_at":1861,"custom_excerpt":1976,"codeinjection_head":13,"codeinjection_foot":13,"custom_template":13,"canonical_url":13,"authors":1992,"tags":1999,"primary_author":2052,"primary_tag":2053,"url":2054,"excerpt":1976,"reading_time":74,"access":16,"send_email_when_published":14,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"email_subject":13,"frontmatter":13,"dictionary":1870,"cta":1978,"plainTags":1863},"b38b8e69-cc75-46b3-9e40-56181ccd099c","\u003Cp>We say it all the time, but we'll say it again: localization is much more than simply translating words — it involves handling grammar, context, and cultural nuances. 👀  For developers, this means that \u003Cstrong>relying on string concatenation or naïve interpolation can lead to issues that make your app sound awkward or even produce incorrect messages\u003C\u002Fstrong> in certain languages. \u003C\u002Fp>\u003Cp>In this article, we discuss common risks and how to solve them.\u003C\u002Fp>\u003Ch2 id=\"%E2%9C%9A-avoiding-string-concatenation\">✚ Avoiding string concatenation\u003C\u002Fh2>\u003Cp>Building sentences by concatenating strings (e.g., \u003Ccode>\"Welcome, \" + username\u003C\u002Fcode>) forces a fixed word order that may work in one language (like English) but will break in languages with different syntax. Splitting sentences into fragments also deprives translators of context and produces less natural-sounding translations.\u003C\u002Fp>\u003Ch3 id=\"solution\">Solution\u003C\u002Fh3>\u003Cp>\u003Cstrong>Always externalize the entire sentence as a single translatable string \u003C\u002Fstrong>with \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fplaceholder\">placeholders\u003C\u002Fa>. This way, translators can reorder placeholders as needed.\u003C\u002Fp>\u003Ch3 id=\"example\">Example\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"greeting\": \"Welcome, {username}.\"\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Assume getString is a function that retrieves and formats the translation.\nconst username = \"Alice\";\nconst greeting = getString(\"greeting\", { username });\nconsole.log(greeting); \u002F\u002F \"Welcome, Alice.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%F0%9F%91%AC-dealing-with-plurals-effectively\">👬 Dealing with plurals effectively\u003C\u002Fh2>\u003Cp>Different languages have varied \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fpluralization\">pluralization\u003C\u002Fa> rules. A naïve approach like \u003Ccode>const message = count + \" file\" + (count !== 1 ? \"s\" : \"\");\u003C\u002Fcode> works in English, but fails for languages with a different number of plural forms. The Czech language has three of them, Arabic six, and in Japanese, there is only one form as they don't distinguish between singular and plural in language syntax.\u003C\u002Fp>\u003Ch3 id=\"solution-1\">Solution\u003C\u002Fh3>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-plurals?srsltid=AfmBOoobGaGsyyinQHSU53G14V3JvzXPcWs-yZ22Xxef4M0bhYKmm4rV\">Define plural resources\u003C\u002Fa> in your localizable files and let the localization engine select the correct variant\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch3 id=\"example-1\">Example\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"file_count\": {\n    \"one\": \"{count} file\",\n    \"other\": \"{count} files\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Assume getPluralizedString is a function that retrieves and formats the pluralized translation.\nconst count = 3;\nconst fileMessage = getPluralizedString(\"file_count\", count, { count });\nconsole.log(fileMessage); \u002F\u002F \"3 files\" (assuming English rules)\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%F0%9F%AA%A2-handling-multiple-plurals-in-one-string\">🪢 Handling multiple plurals in one string\u003C\u002Fh2>\u003Cp>Some sentences contain more than one pluralized element (e.g., \u003Ccode>{count1} apples and {count2} oranges\u003C\u002Fcode>). Managing multiple plural forms in one sentence without bloating your code can be challenging.\u003C\u002Fp>\u003Ch3 id=\"solution-2\">Solution\u003C\u002Fh3>\u003Cp>\u003Cstrong>Define separate plural objects for each element and then combine them within a template string\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch3 id=\"examples\">Examples\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"num_apples\": {\n    \"one\": \"{count} apple\",\n    \"other\": \"{count} apples\"\n  },\n  \"num_oranges\": {\n    \"one\": \"{count} orange\",\n    \"other\": \"{count} oranges\"\n  },\n  \"fruit_summary\": \"{apples} and {oranges}.\"\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>const appleCount = 2;\nconst orangeCount = 5;\nconst applesText = getPluralizedString(\"num_apples\", appleCount, { count: appleCount });\nconst orangesText = getPluralizedString(\"num_oranges\", orangeCount, { count: orangeCount });\nconst summary = getString(\"fruit_summary\", { apples: applesText, oranges: orangesText });\nconsole.log(summary); \u002F\u002F \"2 apples and 5 oranges.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%E2%9C%8D%EF%B8%8F-formatting-variable-lists\">✍️ Formatting variable lists\u003C\u002Fh2>\u003Cp>Sometimes, you need to display a list of items that can vary in length — for example, \u003Ccode>\"Alice, Bob, and Charlie\"\u003C\u002Fcode>, or \u003Ccode>\"Alice and Bob\"\u003C\u002Fcode> (if only two names), or just \u003Ccode>\"Alice\"\u003C\u002Fcode> (if one name). Constructing such lists in a localization-friendly way is challenging. \u003Cstrong>Different languages have different conventions for list formatting\u003C\u002Fstrong>: the separator (comma, semicolon, etc.) and the word for “and” or “or” might change, and some languages don’t use the Oxford comma or use a different conjunction.\u003C\u002Fp>\u003Ch3 id=\"solution-3\">Solution\u003C\u002Fh3>\u003Cp>The safest approach is to \u003Cstrong>use localization libraries or APIs that know how to format lists for each locale\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>If such an option is unavailable, \u003Cstrong>building a list using patterns\u003C\u002Fstrong> is another possible solution:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode>two\u003C\u002Fcode> = “{0} and {1}” \u003Cem>(for exactly two items)\u003C\u002Fem>\u003C\u002Fli>\u003Cli>\u003Ccode>start\u003C\u002Fcode> = “{0}, {1}” \u003Cem>(for the beginning of a list)\u003C\u002Fem>\u003C\u002Fli>\u003Cli>\u003Ccode>middle\u003C\u002Fcode> = “{0}, {1}” \u003Cem>(for the middle of a list)\u003C\u002Fem>\u003C\u002Fli>\u003Cli>\u003Ccode>end\u003C\u002Fcode> = “{0}, and {1}” \u003Cem>(for the end of a list)\u003C\u002Fem>\u003C\u002Fli>\u003C\u002Ful>\u003Ch3 id=\"example-2\">Example\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"listPattern\": {\n    \"two\": \"{0} and {1}\",\n    \"start\": \"{0}, {1}\",\n    \"middle\": \"{0}, {1}\",\n    \"end\": \"{0}, and {1}\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Helper function to replace placeholders {0} and {1} in a pattern.\nfunction formatWithPattern(pattern, a, b) {\n  return pattern.replace(\"{0}\", a).replace(\"{1}\", b);\n}\n\n\u002F\u002F Formats an array of items into a localized list string.\n\u002F\u002F Uses different patterns based on the number of items.\nfunction formatLocalizedList(items, locale = \"en\") {\n  const patterns = listPattern[locale] || listPattern[\"en\"];\n  const n = items.length;\n  if (n === 0) return \"\";\n  if (n === 1) return items[0];\n  if (n === 2) return formatWithPattern(patterns.two, items[0], items[1]);\n    \n  \u002F\u002F For three or more, we add start, all the middle items and then the last one.\n  let result = formatWithPattern(patterns.start, items[0], items[1]);\n  for (let i = 2; i &lt; n - 1; i++) {\n    result = formatWithPattern(patterns.middle, result, items[i]);\n  }\n  result = formatWithPattern(patterns.end, result, items[n - 1]);\n  \n  return result;\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%F0%9F%93%8B-handling-overflow-counts-in-variable-lists\">📋 Handling overflow counts in variable lists\u003C\u002Fh2>\u003Cp>Often, you may display a preview of items followed by an overflow count (e.g., “You have A, B, C and two more”). While in English “more” is uniform, other languages may require different forms depending on the number.\u003C\u002Fp>\u003Ch3 id=\"solution-4\">Solution\u003C\u002Fh3>\u003Cp>\u003Cstrong>Separate the preview list from the overflow count\u003C\u002Fstrong>. Define a plural resource for the overflow message so that plural logic is handled externally.\u003C\u002Fp>\u003Ch3 id=\"example-3\">Example\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"overflow_list\": \"You have {items} and {more}.\",\n  \"x_more\": {\n    \"one\": \"{count} more\",\n    \"other\": \"{count} more\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>cs.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"overflow_list\": \"Máte {items} a {more}.\",\n  \"x_more\": {\n    \"one\": \"{count} další\",\n    \"few\": \"{count} další\",\n    \"other\": \"{count} dalších\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.js\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>const itemsList = \"A, B, C\"; \u002F\u002F Pre-formatted - see \"Formatting Variable Lists\" above.\nconst extraCount = 5;\nconst moreText = getPluralizedString(\"x_more\", extraCount, { count: extraCount });\nconst overflowMessage = getTranslation(\"overflow_list\", { items: itemsList, more: moreText });\nconsole.log(overflowMessage); \n\u002F\u002F English: \"You have A, B, C and 5 more.\"\n\u002F\u002F Czech: \"Máte A, B, C a 5 dalších.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%F0%9F%A4%9D-gender-and-grammatical-agreement\">🤝 Gender and grammatical agreement\u003C\u002Fh2>\u003Cp>Languages with grammatical gender require different word forms based on the subject’s gender. For example, a message like “{user} has updated his profile” must change if the user is female or if a gender-neutral term is needed. Simple concatenation does not allow for these variations.\u003C\u002Fp>\u003Ch3 id=\"solution-5\">Solution\u003C\u002Fh3>\u003Cp>Define gender-specific messages in your translation JSON. \u003Cstrong>Use separate keys for each gender variant\u003C\u002Fstrong> (e.g., \u003Ccode>male\u003C\u002Fcode>, \u003Ccode>female\u003C\u002Fcode>, \u003Ccode>other\u003C\u002Fcode>), and choose the correct one based on the context provided in your code.\u003C\u002Fp>\u003Ch3 id=\"example-4\">Example\u003C\u002Fh3>\u003Cp>\u003Ccode>en.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"profile_message\": {\n    \"male\": \"{user} has updated his profile.\",\n    \"female\": \"{user} has updated her profile.\",\n    \"other\": \"{user} has updated their profile.\"\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode>code.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Function to get gender-specific translation based on a user's gender.\nfunction getProfileMessage(user, gender) {\n  \u002F\u002F Assume getStringByGender is a helper that selects the right message\n  return getStringByGender(\"profile_message\", gender, { user });\n}\n\n\u002F\u002F Example usage:\nconst user = \"Jordan\";\nconst gender = \"female\"; \u002F\u002F Could be 'male', 'female', or 'other'\nconst profileMessage = getProfileMessage(user, gender);\nconsole.log(profileMessage); \u002F\u002F \"Jordan has updated her profile.\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%F0%9F%92%AC-a-few-extra-tips\">💬 A few extra tips\u003C\u002Fh2>\u003Ch3 id=\"ordering-and-positional-placeholders\">Ordering and positional placeholders\u003C\u002Fh3>\u003Cp>Different languages may require dynamic parts in a different order. \u003Cstrong>Use named placeholders so that translators can reorder them without losing context\u003C\u002Fstrong>. If named, the placeholders carry the context.\u003C\u002Fp>\u003Ch3 id=\"inconsistent-formatting-of-numbers-dates-currencies-and-units\">Inconsistent formatting of numbers, dates, currencies, and units\u003C\u002Fh3>\u003Cp>Using interpolation with raw numbers or dates can lead to confusion since it bypasses locale-aware formatting. \u003Cstrong>Always format numbers, dates, and currencies using locale-specific utilities before insertion\u003C\u002Fstrong>. You should also consider how to display units (kilometers vs. miles, Celsius vs. Fahrenheit, etc.).\u003C\u002Fp>\u003Ch3 id=\"html-tags\">HTML tags\u003C\u002Fh3>\u003Cp>Avoid using HTML and other formatting tags if possible. It can be confusing for translators. \u003Cstrong>Prefer using non-translatable templates\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>templates.json\u003C\u002Fcode>\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"title\": \"&lt;h1&gt;{title}&lt;\u002Fh1&gt;\"\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2 id=\"%F0%9F%93%9A-icu-message-format\">📚 ICU Message Format\u003C\u002Fh2>\u003Cp>In addition to the approaches discussed above, \u003Cstrong>the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Ficu-message-format\u002F\">ICU Message Format\u003C\u002Fa> standard offers a powerful, cross-platform solution\u003C\u002Fstrong> for common interpolation issues. It allows you to \u003Cstrong>embed pluralization, gender variations, and argument reordering directly within a single message string\u003C\u002Fstrong>, ensuring that translations are grammatically correct and contextually appropriate. It simplifies the localization process and can be integrated into various platforms and programming environments to handle complex language rules.\u003C\u002Fp>\u003Cp>However, all the approaches discussed above apply, and it's important to remember them to use ICU Message Format correctly.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%92%99-how-localazy-handles-placeholders\">💙 How Localazy handles placeholders\u003C\u002Fh2>\u003Cp>Even when following best practices, \u003Cstrong>rules can be bent, and subtle issues can still arise\u003C\u002Fstrong>, like translating placeholder names literally by accident, which could break your code. \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fcode-and-placeholders\u002F\">Localazy's built-in validation\u003C\u002Fa> warns about missing or misplaced placeholders and potential issues before they reach your users.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F04\u002Fimage.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"738\" height=\"375\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2025\u002F04\u002Fimage.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F04\u002Fimage.png 738w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Localazy \u003Cstrong>automatically identifies placeholders in various formats\u003C\u002Fstrong> (whether they're ICU-style \u003Ccode>{variable}\u003C\u002Fcode>, JavaScript template literals \u003Ccode>${variable}\u003C\u002Fcode>, or other common formats) and highlights them during translation. 🕵️‍♀️ This ensures that translators can see and maintain these elements while having the freedom to reorganize sentences as needed for their language.\u003C\u002Fp>\u003Cp>Plus, \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fplurals\u002F\">our support for pluralization\u003C\u002Fa> means you don't need to handle the complex plural rules discussed above manually. \u003Cstrong>The correct forms are automatically applied based on the target language and your i18n library\u003C\u002Fstrong>. This approach keeps your codebase clean while ensuring your app speaks naturally to users worldwide.\u003C\u002Fp>\u003Ch2 id=\"%E2%9C%94%EF%B8%8F-conclusion\">✔️ Conclusion\u003C\u002Fh2>\u003Cp>As you can see, avoiding string concatenation and naïve interpolation with complete sentence externalization and placeholders frees you from unexpected problems in your localization project in the future. Your messages will be grammatically correct and contextually appropriate in every language — and, most importantly, \u003Cstrong>you will have an easier-to-maintain, cleaner codebase\u003C\u002Fstrong>. \u003C\u002Fp>\u003Cp>The end result will be \u003Cstrong>a more natural user experience for your international audience\u003C\u002Fstrong>. We hope these tips helped. Happy coding! 🧑‍💻\u003C\u002Fp>","public","none","2025-03-18T17:31:45.000+01:00",[1993],{"id":1855,"name":1856,"slug":1857,"profile_image":1858,"cover_image":13,"bio":1994,"website":1995,"location":1996,"facebook":13,"twitter":1997,"meta_title":13,"meta_description":13,"url":1998},"Entrepreneur, idea maker, developer, SaaS & mobile enthusiast. Building a localization solution for developers at Localazy.","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fvaclavhodek\u002F","Slavkov u Brna, Czech Republic","@vaclavhodek","https:\u002F\u002Fghost.localazy.com\u002Fauthor\u002Fvaclav-hodek\u002F",[2000,2003,2006,2009,2014,2020,2026,2031,2036,2042,2047],{"id":2001,"name":1865,"slug":1866,"description":1865,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2002},"60a37fc7cf7b6a0001d1f0ea","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fdevtips\u002F",{"id":2004,"name":1187,"slug":1833,"description":1187,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2005},"60a37fc7cf7b6a0001d1f0f9","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Flocalization\u002F",{"id":2007,"name":1869,"slug":1237,"description":1869,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2008},"60a37fc7cf7b6a0001d1f0ec","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fplurals\u002F",{"id":2010,"name":2011,"slug":2012,"description":13,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2013},"60fffb486f8ebe0001bd8ddd","[COMSHARE]","comshare","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcomshare\u002F",{"id":2015,"name":2016,"slug":2017,"description":2018,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2019},"60a37fc7cf7b6a0001d1f111","[CTA] CLI friendly app localization","cta-3","Make sure you do not miss this update. Whether it is iOS or TypeScript app, you can localize your app using brand new Localazy CLI.","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcta-3\u002F",{"id":2021,"name":2022,"slug":2023,"description":2024,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2025},"60ba4141cf7b6a0001d1f946","[DICT] ICU","term-90","ICU stands for International Components for Unicode","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-90\u002F",{"id":2027,"name":2028,"slug":2029,"description":1896,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2030},"668f7d2b34f1ce00011a1c0a","[DICT] Strings","term-171","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-171\u002F",{"id":2032,"name":2033,"slug":2034,"description":1914,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2035},"66e40c7034f1ce00011a32cf","[DICT] i18n ","term-192","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-192\u002F",{"id":2037,"name":2038,"slug":2039,"description":2040,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2041},"61af9d57df4bcb00010bc95b","[DICT] JSON","term-108","JSON stands for JavaScript Object Notation and it's a widely used File Format.","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-108\u002F",{"id":2043,"name":2044,"slug":2045,"description":1945,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2046},"60a37fc7cf7b6a0001d1f168","[DICT] JavaScript","term-75","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-75\u002F",{"id":2048,"name":2049,"slug":2050,"description":1965,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2051},"680238e063350c0001d5953a","[DICT] Variable","term-283","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-283\u002F",{"id":1855,"name":1856,"slug":1857,"profile_image":1858,"cover_image":13,"bio":1994,"website":1995,"location":1996,"facebook":13,"twitter":1997,"meta_title":13,"meta_description":13,"url":1998},{"id":2001,"name":1865,"slug":1866,"description":1865,"feature_image":13,"visibility":1989,"og_image":13,"og_title":13,"og_description":13,"twitter_image":13,"twitter_title":13,"twitter_description":13,"meta_title":13,"meta_description":13,"codeinjection_head":13,"codeinjection_foot":13,"canonical_url":13,"accent_color":13,"url":2002},"https:\u002F\u002Fghost.localazy.com\u002Fbeyond-interpolation-multiple-plurals-genders-and-building-lists\u002F",[2056,2073,2095],{"id":2057,"owner":2058,"created_by":13,"sort":13,"title":2063,"slug":2064,"modified_on":1788,"created_on":2065,"pinned":14,"badge":13,"priority":1824,"main_image":2066,"status":6,"tags":2067,"dictionary":2072,"reading_time":1835,"excerpt":-1,"og_title":1788,"og_description":1788,"og_image":1788},"665d9cb634f1ce00011a0d19",{"id":2059,"first_name":2060,"last_name":1788,"slug":2061,"avatar":2062},"65647a510470910001942873","Simona Rahmanova","simona-rahmanova","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2024\u002F03\u002Fsimona.png","Localization 101 | Basic concepts for newcomers","localization-101-basic-concepts-a-beginner-needs-to-know","2024-07-29T15:24:00.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2024\u002F06\u002Flocalization-101.png",[2068,2069],{"id":68,"created_on":1828,"status":6,"label":1187,"slug":1833,"on_index_page":16},{"id":68,"created_on":1828,"status":6,"label":2070,"slug":2071,"on_index_page":14},"Guide","guide",[],{"id":2074,"owner":2075,"created_by":13,"sort":13,"title":2080,"slug":2081,"modified_on":1788,"created_on":2082,"pinned":14,"badge":13,"priority":1824,"main_image":2083,"status":6,"tags":2084,"dictionary":2094,"reading_time":1835,"excerpt":-1,"og_title":1788,"og_description":1788,"og_image":1788},"6372308e04709100019374c9",{"id":2076,"first_name":2077,"last_name":1788,"slug":2078,"avatar":2079},"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",[2085,2087,2090,2091],{"id":2086,"created_on":1828,"status":6,"label":940,"slug":941,"on_index_page":16},6183,{"id":68,"created_on":1828,"status":6,"label":2088,"slug":2089,"on_index_page":14},"HowTo","howto",{"id":68,"created_on":1828,"status":6,"label":1865,"slug":1866,"on_index_page":16},{"id":110,"created_on":1828,"status":6,"label":2092,"slug":2093,"on_index_page":14},"Design","design",[],{"id":2096,"owner":2097,"created_by":13,"sort":13,"title":2102,"slug":2103,"modified_on":1788,"created_on":2104,"pinned":14,"badge":13,"priority":1824,"main_image":2105,"status":6,"tags":2106,"dictionary":2110,"reading_time":1835,"excerpt":-1,"og_title":1788,"og_description":1788,"og_image":1788},"67cec8e634f1ce00011a908c",{"id":2098,"first_name":2099,"last_name":1788,"slug":2100,"avatar":2101},"60a37d0bcf7b6a0001d1eca7","Localazy Team","localazy-team","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F11\u002FLogo-Gradient.png","A beginner's guide to pluralization in software localization","pluralization-in-software-localization-beginners-guide","2025-07-21T08:47:00.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F06\u002FPluralization-2.png",[2107,2108,2109],{"id":68,"created_on":1828,"status":6,"label":1869,"slug":1237,"on_index_page":14},{"id":68,"created_on":1828,"status":6,"label":1865,"slug":1866,"on_index_page":16},{"id":68,"created_on":1828,"status":6,"label":2070,"slug":2071,"on_index_page":14},[],{"id":142,"sort":13,"created_on":2112,"name":2113,"cta_link":2114,"banner_image":2115},"2022-03-17T12:23:14.000Z","default","https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Flocalazy-ai",{"id":2116},"72defd59-a21d-44b9-822c-4e183ca62b99"]