[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"main-navigation":3,"footer-homepage":723,"footer-settings":790,"footer-integrations":903,"blog-post-nav-nav":1814,"blog-post-nav-[USE LATEST FEATURED]":1836,"blog-string-externalization-and-testing-with-qodana":1850},[4,211,451,582,715,719],{"id":5,"name":6,"url":7,"url_text":7,"status":8,"groups":9},2,"Solutions",null,"published",[10,24,99,135],{"navigation_items_group_id":11},{"id":12,"sort":13,"status":8,"name":14,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":17,"show_all_url":7,"represent_as_tile":15,"items":18},3,5,"Featured Article",false,"top",true,[19],{"collection":20,"item":21},"blog_post_navigation_item_type",{"id":22,"status":8,"sort":7,"show_author_img":17,"blog_post_tag":23,"description":7},4,"nav",{"navigation_items_group_id":25},{"id":13,"sort":26,"status":8,"name":27,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":28,"represent_as_tile":17,"items":29},1,"Your Role","\u002Froles",[30,42,52,64,75,87],{"collection":31,"item":32},"relation_navigation_item_type",{"id":26,"status":8,"sort":7,"name":33,"item":34},"CMO",[35],{"collection":36,"item":37},"personas",{"id":26,"status":8,"sort":7,"slug":38,"icon":39},"chief-marketing-officers",{"id":40,"title":41},"526097d8-176f-48e5-83d3-2fc4d77061f9","La Mail Bulk",{"collection":31,"item":43},{"id":12,"status":8,"sort":7,"name":44,"item":45},"CTO",[46],{"collection":36,"item":47},{"id":22,"status":8,"sort":7,"slug":48,"icon":49},"chief-technical-officers",{"id":50,"title":51},"f808fdf0-c78b-4294-ba59-fe25f46fe825","La Mechanic",{"collection":31,"item":53},{"id":54,"status":8,"sort":7,"name":55,"item":56},20,"Product Manager",[57],{"collection":36,"item":58},{"id":59,"status":8,"sort":7,"slug":60,"icon":61},18,"product-managers",{"id":62,"title":63},"ea39586a-21fc-4b34-ba87-496028e5198f","La Worker",{"collection":31,"item":65},{"id":66,"status":8,"sort":7,"name":67,"item":68},37,"Translator",[69],{"collection":36,"item":70},{"id":54,"status":8,"sort":7,"slug":71,"icon":72},"professional-translators",{"id":73,"title":74},"07945171-d51d-4ca8-96c0-21cde9db258f","La Chat",{"collection":31,"item":76},{"id":77,"status":8,"sort":7,"name":78,"item":79},38,"Developer",[80],{"collection":36,"item":81},{"id":82,"status":8,"sort":7,"slug":83,"icon":84},30,"software-developers",{"id":85,"title":86},"1806e46d-c551-4845-bf42-4407344d229e","La Terminal",{"collection":31,"item":88},{"id":89,"status":8,"sort":7,"name":90,"item":91},27,"Localization Manager",[92],{"collection":36,"item":93},{"id":94,"status":8,"sort":7,"slug":95,"icon":96},6,"localization-managers",{"id":97,"title":98},"dac69bd1-bf5d-41d0-87d4-dd13e314698a","La Language",{"navigation_items_group_id":100},{"id":101,"sort":12,"status":8,"name":102,"render_show_all_url":15,"show_all_url_position":103,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":104},9,"Use cases","bottom",[105,111,116,121,125,130],{"collection":106,"item":107},"simple_link_navigation_item_type",{"id":108,"status":8,"sort":7,"url":109,"url_text":110,"show_favorite_icon":15},24,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fsoftware-localization","Software localization",{"collection":106,"item":112},{"id":113,"status":8,"sort":7,"url":114,"url_text":115,"show_favorite_icon":15},26,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fmobile-app-localization","Mobile app localization",{"collection":106,"item":117},{"id":118,"status":8,"sort":7,"url":119,"url_text":120,"show_favorite_icon":15},25,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fwebsite-localization","Website localization",{"collection":106,"item":122},{"id":89,"status":8,"sort":7,"url":123,"url_text":124,"show_favorite_icon":15},"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fdesign-localization","Design localization",{"collection":106,"item":126},{"id":127,"status":8,"sort":7,"url":128,"url_text":129,"show_favorite_icon":15},28,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fgame-localization","Game localization",{"collection":106,"item":131},{"id":132,"status":8,"sort":7,"url":133,"url_text":134,"show_favorite_icon":15},29,"https:\u002F\u002Flocalazy.com\u002Fuse-cases\u002Fhelp-and-docs-localization","Help & docs localization",{"navigation_items_group_id":136},{"id":137,"sort":5,"status":8,"name":138,"render_show_all_url":15,"show_all_url_position":103,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":139},8,"Industry",[140,152,163,173,184,193,204],{"collection":31,"item":141},{"id":142,"status":8,"sort":7,"name":143,"item":144},23,"Digital Agencies",[145],{"collection":36,"item":146},{"id":147,"status":8,"sort":7,"slug":148,"icon":149},7,"digital-agencies",{"id":150,"title":151},"547f5619-b21d-4b29-86f1-8b2200313cde","La Digi Agency",{"collection":31,"item":153},{"id":154,"status":8,"sort":7,"name":155,"item":156},39,"Startups & SaaS",[157],{"collection":36,"item":158},{"id":5,"status":8,"sort":7,"slug":159,"icon":160},"startups",{"id":161,"title":162},"da1516e2-4afc-40a2-bcbf-a8161e2d610d","La Saa S",{"collection":31,"item":164},{"id":5,"status":8,"sort":7,"name":165,"item":166},"E-commerce",[167],{"collection":36,"item":168},{"id":13,"status":8,"sort":7,"slug":169,"icon":170},"e-commerce",{"id":171,"title":172},"a3d09cd2-054f-4bb5-a0a2-d3d207db65df","La Ecommerce",{"collection":31,"item":174},{"id":175,"status":8,"sort":7,"name":176,"item":177},19,"FinTech Platforms",[178],{"collection":36,"item":179},{"id":89,"status":8,"sort":7,"slug":180,"icon":181},"fintech",{"id":182,"title":183},"147339ba-07d1-4e5e-baad-23d27e60c919","La Money",{"collection":31,"item":185},{"id":108,"status":8,"sort":7,"name":186,"item":187},"Translation Agencies",[188],{"collection":36,"item":189},{"id":108,"status":8,"sort":7,"slug":190,"icon":191},"translation-agencies",{"id":192,"title":98},"15d6fe33-2af8-4d6e-933d-5caa64394511",{"collection":31,"item":194},{"id":195,"status":8,"sort":7,"name":196,"item":197},22,"Travel & Tourism",[198],{"collection":36,"item":199},{"id":12,"status":8,"sort":7,"slug":200,"icon":201},"tourism",{"id":202,"title":203},"23a785e8-0ae5-4c4b-8452-aab1b58182a6","La Travel",{"collection":31,"item":205},{"id":118,"status":8,"sort":7,"name":206,"item":207},"Nonprofit Causes",[208],{"collection":36,"item":209},{"id":127,"status":8,"sort":7,"slug":210,"icon":7},"nonprofit",{"id":13,"name":212,"url":7,"url_text":7,"status":8,"groups":213},"Features",[214,284,342,392],{"navigation_items_group_id":215},{"id":216,"sort":94,"status":8,"name":217,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":218},11,"Localization",[219,228,237,246,255,259,267,276],{"collection":31,"item":220},{"id":221,"status":8,"sort":7,"name":222,"item":223},44,"Localization services",[224],{"collection":225,"item":226},"products",{"id":101,"status":8,"slug":227},"continuous-localization-team",{"collection":31,"item":229},{"id":230,"status":8,"sort":7,"name":231,"item":232},45,"Translation management",[233],{"collection":234,"item":235},"term_landing_page",{"id":132,"status":8,"slug":236},"translation-management-system",{"collection":31,"item":238},{"id":239,"status":8,"sort":7,"name":240,"item":241},46,"Context Screenshots",[242],{"collection":225,"item":243},{"id":244,"status":8,"slug":245},13,"context-screenshots-ocr",{"collection":31,"item":247},{"id":248,"status":8,"sort":7,"name":249,"item":250},47,"Translation Glossary",[251],{"collection":225,"item":252},{"id":253,"status":8,"slug":254},17,"glossary",{"collection":106,"item":256},{"id":22,"status":8,"sort":7,"url":257,"url_text":258,"show_favorite_icon":15},"\u002Fdocs\u002Fgeneral\u002Freviewing-translations","Quality control",{"collection":31,"item":260},{"id":261,"status":8,"sort":7,"name":262,"item":263},34,"Connected Projects",[264],{"collection":225,"item":265},{"id":26,"status":8,"slug":266},"connected-projects",{"collection":31,"item":268},{"id":269,"status":8,"sort":7,"name":270,"item":271},64,"Plural handling",[272],{"collection":225,"item":273},{"id":274,"status":8,"slug":275},32,"plurals",{"collection":31,"item":277},{"id":278,"status":8,"sort":7,"name":279,"item":280},65,"Style guides",[281],{"collection":225,"item":282},{"id":77,"status":8,"slug":283},"style-guide",{"navigation_items_group_id":285},{"id":286,"sort":147,"status":8,"name":287,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":288},12,"Translation",[289,297,305,309,317,325,334],{"collection":31,"item":290},{"id":291,"status":8,"sort":7,"name":292,"item":293},36,"Professional translations",[294],{"collection":234,"item":295},{"id":82,"status":8,"slug":296},"professional-translation-services",{"collection":31,"item":298},{"id":299,"status":8,"sort":7,"name":300,"item":301},48,"Crowdsourced translations",[302],{"collection":225,"item":303},{"id":137,"status":8,"slug":304},"share-tm",{"collection":106,"item":306},{"id":13,"status":8,"sort":7,"url":307,"url_text":308,"show_favorite_icon":15},"\u002Fdocs\u002Fgeneral\u002Ftranslating-strings","Translation interface",{"collection":31,"item":310},{"id":311,"status":8,"sort":7,"name":312,"item":313},55,"Machine translations",[314],{"collection":225,"item":315},{"id":13,"status":8,"slug":316},"machine-translation",{"collection":31,"item":318},{"id":319,"status":8,"sort":7,"name":320,"item":321},60,"Localazy AI translation",[322],{"collection":225,"item":323},{"id":132,"status":8,"slug":324},"localazy-ai",{"collection":31,"item":326},{"id":327,"status":8,"sort":7,"name":328,"item":329},61,"Translation Memory",[330],{"collection":225,"item":331},{"id":332,"status":8,"slug":333},35,"translation-memory",{"collection":31,"item":335},{"id":336,"status":8,"sort":7,"name":337,"item":338},63,"Code & placeholders",[339],{"collection":225,"item":340},{"id":82,"status":8,"slug":341},"code-and-placeholders",{"navigation_items_group_id":343},{"id":244,"sort":137,"status":8,"name":344,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":345},"Management",[346,350,358,367,376,384,388],{"collection":106,"item":347},{"id":137,"status":8,"sort":7,"url":348,"url_text":349,"show_favorite_icon":15},"\u002Fdocs\u002Fgeneral\u002Fdefining-user-roles","User roles",{"collection":31,"item":351},{"id":352,"status":8,"sort":7,"name":353,"item":354},51,"Duplicity Linking",[355],{"collection":225,"item":356},{"id":175,"status":8,"slug":357},"duplicity-linking",{"collection":31,"item":359},{"id":360,"status":8,"sort":7,"name":361,"item":362},52,"Language Permissions",[363],{"collection":225,"item":364},{"id":365,"status":8,"slug":366},21,"language-permissions",{"collection":31,"item":368},{"id":369,"status":370,"sort":7,"name":371,"item":372},53,"draft","Automations",[373],{"collection":225,"item":374},{"id":54,"status":8,"slug":375},"automations",{"collection":31,"item":377},{"id":378,"status":8,"sort":7,"name":379,"item":380},58,"Branching",[381],{"collection":225,"item":382},{"id":89,"status":8,"slug":383},"branching",{"collection":106,"item":385},{"id":365,"status":370,"sort":7,"url":386,"url_text":387,"show_favorite_icon":15},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fsso-configuration","SSO",{"collection":106,"item":389},{"id":195,"status":370,"sort":7,"url":390,"url_text":391,"show_favorite_icon":15},"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Flanguage-statistics","Reporting",{"navigation_items_group_id":393},{"id":394,"sort":101,"status":8,"name":395,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":396},14,"Development",[397,404,412,419,426,434,443],{"collection":31,"item":398},{"id":132,"status":8,"sort":7,"name":399,"item":400},"Translation API",[401],{"collection":225,"item":402},{"id":216,"status":8,"slug":403},"translation-api",{"collection":31,"item":405},{"id":406,"status":8,"sort":7,"name":407,"item":408},33,"Localazy CLI",[409],{"collection":225,"item":410},{"id":147,"status":8,"slug":411},"cli",{"collection":31,"item":413},{"id":274,"status":8,"sort":7,"name":414,"item":415},"Language CDN",[416],{"collection":225,"item":417},{"id":22,"status":8,"slug":418},"language-cdn",{"collection":31,"item":420},{"id":127,"status":8,"sort":7,"name":421,"item":422},"Releases",[423],{"collection":225,"item":424},{"id":94,"status":8,"slug":425},"releases",{"collection":31,"item":427},{"id":428,"status":370,"sort":7,"name":429,"item":430},57,"Format Conversions",[431],{"collection":225,"item":432},{"id":5,"status":8,"slug":433},"format-conversions",{"collection":31,"item":435},{"id":436,"status":8,"sort":7,"name":437,"item":438},59,"Webhooks",[439],{"collection":225,"item":440},{"id":441,"status":8,"slug":442},31,"webhooks",{"collection":31,"item":444},{"id":445,"status":8,"sort":7,"name":446,"item":447},62,"Export Aliases",[448],{"collection":225,"item":449},{"id":406,"status":8,"slug":450},"export-aliases",{"id":22,"name":452,"url":7,"url_text":7,"status":8,"groups":453},"Integrations",[454,572],{"navigation_items_group_id":455},{"id":147,"sort":456,"status":8,"name":457,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":458},10,"Most popular",[459],{"collection":31,"item":460},{"id":286,"status":8,"sort":7,"name":452,"item":461},[462,470,477,484,491,498,505,512,519,526,533,542,549,556,564],{"collection":463,"item":464},"platforms",{"id":94,"status":8,"sort":26,"slug":465,"name":466,"icon":467},"android","Android",{"id":468,"title":469},"ff965add-53b0-44ad-b27c-ea4ef641d384","Ic Outline Android",{"collection":463,"item":471},{"id":147,"status":8,"sort":5,"slug":472,"name":473,"icon":474},"ios","iOS",{"id":475,"title":476},"886285d7-816a-4430-b5a5-edfe307b238e","Ios",{"collection":463,"item":478},{"id":406,"status":8,"sort":12,"slug":479,"name":480,"icon":481},"react","React",{"id":482,"title":483},"26757a90-88a3-4a94-b587-9f38614ed3bd","Logos React",{"collection":463,"item":485},{"id":175,"status":8,"sort":22,"slug":486,"name":487,"icon":488},"vuejs","Vue.js",{"id":489,"title":490},"6180b41f-3249-47d3-adcd-50fe1cf11bf1","Vue",{"collection":463,"item":492},{"id":493,"status":8,"sort":13,"slug":494,"name":495,"icon":496},16,"angular","Angular",{"id":497,"title":495},"2a31a97a-48c5-4531-aa36-41c9dd0bdbef",{"collection":463,"item":499},{"id":26,"status":8,"sort":94,"slug":500,"name":501,"icon":502},"flutter","Flutter",{"id":503,"title":504},"b9f13a11-9328-4a03-86cf-b20de0685606","Logos Flutter",{"collection":463,"item":506},{"id":12,"status":8,"sort":216,"slug":507,"name":508,"icon":509},"typescript","TypeScript",{"id":510,"title":511},"8d1319b5-8a96-4199-8407-00add3418b1f","Logos Typescript Icon",{"collection":463,"item":513},{"id":441,"status":8,"sort":286,"slug":514,"name":515,"icon":516},"javascript","JavaScript",{"id":517,"title":518},"4218d0c9-7e6b-494d-9663-37ceaf93ee8c","Logos Javascript",{"collection":463,"item":520},{"id":286,"status":8,"sort":54,"slug":521,"name":522,"icon":523},"json","JSON",{"id":524,"title":525},"99ac3b7c-dba5-4693-a4f4-1f27a6d7782d","Logos Json",{"collection":463,"item":527},{"id":365,"status":8,"sort":365,"slug":528,"name":529,"icon":530},"xliff","XLIFF",{"id":531,"title":532},"ca424cc8-e8a7-4aef-8dca-ef4a4d1334fc","Format",{"collection":463,"item":534},{"id":535,"status":8,"sort":536,"slug":537,"name":538,"icon":539},72,54,"strapi","Strapi",{"id":540,"title":541},"cde7f1d0-f2e0-4243-929e-a3f8f9146e69","Strapi Logo Purple",{"collection":463,"item":543},{"id":319,"status":8,"sort":311,"slug":544,"name":545,"icon":546},"figma","Figma",{"id":547,"title":548},"813745a4-a77d-4735-93b7-e0dd731b2304","Figma Icon",{"collection":463,"item":550},{"id":352,"status":8,"sort":248,"slug":551,"name":552,"icon":553},"microsoft-excel","Microsoft Excel",{"id":554,"title":555},"7a175955-7b96-4561-939f-a0e1924faa40","Excel",{"collection":463,"item":557},{"id":558,"status":8,"sort":327,"slug":559,"name":560,"icon":561},66,"github-actions","GitHub Actions",{"id":562,"title":563},"da17554f-ac6d-443d-9bac-1f29645ec1c6","Github Icon",{"collection":463,"item":565},{"id":566,"status":8,"sort":567,"slug":568,"name":569,"icon":570},97,999,"webflow","Webflow",{"id":571,"title":569},"ff43a386-52f8-499f-b77c-ab9a30f4a77e",{"navigation_items_group_id":573},{"id":22,"sort":216,"status":8,"name":574,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":575},"Explore more",[576],{"collection":577,"item":578},"text_link_navigation_item_type",{"id":26,"status":8,"sort":7,"text":579,"url":580,"url_text":581},"Localazy is a technology-agnostic platform supporting 50+ frameworks, file formats & popular tools.","\u002Fintegrations","See all integrations",{"id":26,"name":583,"url":7,"url_text":7,"status":8,"groups":584},"Resources",[585,618,624],{"navigation_items_group_id":586},{"id":26,"sort":286,"status":8,"name":587,"render_show_all_url":15,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":7,"represent_as_tile":15,"items":588},"Helpful Links",[589,593,597,601,605,609,614],{"collection":106,"item":590},{"id":244,"status":8,"sort":7,"url":591,"url_text":592,"show_favorite_icon":17},"\u002Fblog","Localazy Blog",{"collection":106,"item":594},{"id":394,"status":8,"sort":7,"url":595,"url_text":596,"show_favorite_icon":17},"\u002Fdocs","Documentation",{"collection":106,"item":598},{"id":26,"status":8,"sort":7,"url":599,"url_text":600,"show_favorite_icon":15},"https:\u002F\u002Fdiscuss.localazy.com\u002F","Discussion Forum",{"collection":106,"item":602},{"id":286,"status":8,"sort":7,"url":603,"url_text":604,"show_favorite_icon":15},"\u002Fcase-study","Case Studies",{"collection":106,"item":606},{"id":12,"status":8,"sort":7,"url":607,"url_text":608,"show_favorite_icon":15},"\u002Fpartnership","Become a Partner",{"collection":106,"item":610},{"id":611,"status":8,"sort":7,"url":612,"url_text":613,"show_favorite_icon":15},15,"\u002Ffaq","FAQ",{"collection":106,"item":615},{"id":253,"status":8,"sort":7,"url":616,"url_text":617,"show_favorite_icon":15},"\u002Ftags\u002Frelease-update","Release Updates",{"navigation_items_group_id":619},{"id":5,"sort":394,"status":8,"name":592,"render_show_all_url":17,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":591,"represent_as_tile":15,"items":620},[621],{"collection":20,"item":622},{"id":12,"status":8,"sort":7,"show_author_img":15,"blog_post_tag":623,"description":7},"[USE LATEST FEATURED]",{"navigation_items_group_id":625},{"id":94,"sort":244,"status":8,"name":596,"render_show_all_url":17,"show_all_url_position":16,"show_favorite_icon":15,"show_all_url":595,"represent_as_tile":15,"items":626},[627,641,653,664,676,686,697,705],{"collection":31,"item":628},{"id":22,"status":8,"sort":7,"name":629,"item":630},"General",[631],{"collection":632,"item":633},"docs_section",{"id":5,"status":8,"sort":26,"slug":634,"name":629,"icon":635,"featured_icon":638},"general",{"id":636,"title":637},"423101f1-308c-42f1-8dfe-53272019e7cb","Global",{"id":639,"title":640},"0f7ca4cb-dc3b-4f62-b476-132ed5c4931f","General Doc",{"collection":31,"item":642},{"id":13,"status":8,"sort":7,"name":643,"item":644},"CLI",[645],{"collection":632,"item":646},{"id":12,"status":8,"sort":5,"slug":411,"name":643,"icon":647,"featured_icon":650},{"id":648,"title":649},"2f7a4573-8265-4d76-8d55-ce0cc79b8983","Cli",{"id":651,"title":652},"3f76ff7b-0e74-4046-bb03-4ca99c3b66d5","Doc Cat Cli",{"collection":31,"item":654},{"id":137,"status":8,"sort":7,"name":655,"item":656},"API",[657],{"collection":632,"item":658},{"id":54,"status":8,"sort":12,"slug":659,"name":655,"icon":660,"featured_icon":661},"api",{"id":648,"title":649},{"id":662,"title":663},"20866781-e69b-4e01-9456-05437487b75c","API Doc",{"collection":31,"item":665},{"id":666,"status":8,"sort":7,"name":667,"item":668},50,"CDN",[669],{"collection":632,"item":670},{"id":113,"status":8,"sort":22,"slug":671,"name":667,"icon":672,"featured_icon":673},"cdn",{"id":636,"title":637},{"id":674,"title":675},"a8ee9cb7-4e02-41f0-b595-eb518c3085b6","Doc Cat Cdn",{"collection":31,"item":677},{"id":94,"status":8,"sort":7,"name":466,"item":678},[679],{"collection":632,"item":680},{"id":26,"status":8,"sort":13,"slug":465,"name":466,"icon":681,"featured_icon":683},{"id":682,"title":466},"fb8329ae-0c0c-4fbc-bcdc-83f2eeda1039",{"id":684,"title":685},"f7c0dec8-5b42-4943-ab3a-e3665723ad6f","Doc Cat Android",{"collection":31,"item":687},{"id":147,"status":8,"sort":7,"name":473,"item":688},[689],{"collection":632,"item":690},{"id":22,"status":8,"sort":94,"slug":472,"name":473,"icon":691,"featured_icon":694},{"id":692,"title":693},"289e136c-55df-4d51-847b-1782a2308ee4","Ios Blue",{"id":695,"title":696},"2968d3f0-14b5-4427-82e7-f1ea2de17846","Doc Cat Ios",{"collection":31,"item":698},{"id":101,"status":8,"sort":7,"name":545,"item":699},[700],{"collection":632,"item":701},{"id":365,"status":8,"sort":147,"slug":544,"name":545,"icon":702,"featured_icon":703},{"id":648,"title":649},{"id":704,"title":545},"f5e66b5b-a439-47f6-af4a-6ad261de2e87",{"collection":31,"item":706},{"id":456,"status":8,"sort":7,"name":538,"item":707},[708],{"collection":632,"item":709},{"id":142,"status":8,"sort":137,"slug":537,"name":538,"icon":710,"featured_icon":712},{"id":711,"title":538},"3b4b03c7-e131-49e6-a014-c8c2c8a2751e",{"id":713,"title":714},"1dd05c76-e517-4aea-a3d8-49cfddb40056","Strapi Doc",{"id":12,"name":716,"url":717,"url_text":716,"status":8,"groups":718},"Pricing","\u002Fpricing",[],{"id":94,"name":720,"url":721,"url_text":720,"status":8,"groups":722},"Book a demo","\u002Fbook-demo",[],{"status":8,"header_badges":724,"footer_badges":742,"footer_secured_badges":748,"slider_badges":760},[725,732,737],{"id":26,"status":8,"sort":7,"link":726,"title":727,"badgeType":728,"badgeName":729,"metadata":7,"image":730},"https:\u002F\u002Fwww.g2.com\u002Fproducts\u002Flocalazy\u002Freviews","Best meets requirements","Other","G2-winter-24-best-meets-requirments",{"id":731},"8d5dd6fd-6995-4c92-8219-a6ed5ba6acdc",{"id":5,"status":8,"sort":7,"link":726,"title":733,"badgeType":728,"badgeName":734,"metadata":7,"image":735},"Best support","G2-winter-24-best-support",{"id":736},"e59dd465-84d9-45c7-987d-dd4048fd6992",{"id":12,"status":8,"sort":7,"link":726,"title":738,"badgeType":728,"badgeName":739,"metadata":7,"image":740},"Easiest admin","G2-winter-24-easiest-admin",{"id":741},"5f12c4c8-bec0-47cf-87b4-a4502e9f1bd2",[743],{"id":286,"status":8,"sort":7,"link":726,"title":744,"badgeType":728,"badgeName":745,"metadata":7,"image":746},"Users love us","Users love us 25",{"id":747},"232416a5-86ba-4be6-85a5-b88802003d53",[749,755],{"id":216,"status":8,"sort":7,"link":750,"title":751,"badgeType":728,"badgeName":752,"metadata":7,"image":753},"https:\u002F\u002Fsprinto.com\u002Fget-iso-27001\u002F","Sprinto ISO 27001","Sprinto ISO 27001 certificate",{"id":754},"c1c6c06c-6caf-4b78-8a7e-9606c395eb61",{"id":244,"status":8,"sort":7,"link":756,"title":757,"badgeType":728,"badgeName":757,"metadata":7,"image":758},"https:\u002F\u002Fwww.aicpa.org\u002Fsoc4so","SOC certificate",{"id":759},"4f4bc0a6-09a0-41df-8295-8f990d96d941",[761,767,771,775,779,783,788],{"id":13,"status":8,"sort":7,"link":726,"title":762,"badgeType":728,"badgeName":763,"metadata":764,"image":765},"Most likely to recommend","a","",{"id":766},"da055731-3f11-4fc7-96f2-c11c0b84c831",{"id":94,"status":8,"sort":7,"link":726,"title":768,"badgeType":728,"badgeName":7,"metadata":7,"image":769},"EMEA High Performer",{"id":770},"586fb488-81f2-41db-a4e8-ef309e50c0e6",{"id":147,"status":8,"sort":7,"link":726,"title":772,"badgeType":728,"badgeName":7,"metadata":7,"image":773},"Ease of Doing Business With",{"id":774},"bfa26865-430e-463d-9886-cb56a8a8ecf6",{"id":137,"status":8,"sort":7,"link":726,"title":776,"badgeType":728,"badgeName":7,"metadata":7,"image":777},"High Performer",{"id":778},"2cc1ba0f-c23a-4c97-ad4a-a655c97466fe",{"id":101,"status":8,"sort":7,"link":726,"title":780,"badgeType":728,"badgeName":7,"metadata":7,"image":781},"Fastest Implementation",{"id":782},"6f297758-1c95-45f4-a6e9-528319897132",{"id":456,"status":8,"sort":7,"link":784,"title":785,"badgeType":728,"badgeName":7,"metadata":7,"image":786},"https:\u002F\u002Fwww.intercert.com\u002Fservices\u002Fgovernance-risk-compliance\u002Fiso-iec-27001","Intercert ISO 27001",{"id":787},"0521a5f1-e1f2-4da6-a2bc-dc92773f2a7b",{"id":216,"status":8,"sort":7,"link":750,"title":751,"badgeType":728,"badgeName":752,"metadata":7,"image":789},{"id":754},{"id":26,"status":8,"security_section_title":791,"loved_section_title":792,"columns":793,"social_links":863,"policy_links":893},"Secured & trusted","Loved by users",[794,806,821,842,845],{"id":26,"status":8,"sort":7,"title":795,"column_key":796,"links":797},"Localazy","connect",[798,800,803],{"id":216,"status":8,"sort":26,"title":720,"url":799},"___LOCALAZY_MEETING_URL___",{"id":286,"status":8,"sort":5,"title":801,"url":802},"Contact","\u002Fcontact",{"id":365,"status":8,"sort":12,"title":804,"url":805},"About us","\u002Fabout-us",{"id":5,"status":8,"sort":7,"title":807,"column_key":808,"links":809},"Programs","programs",[810,812,815,818],{"id":26,"status":8,"sort":22,"title":811,"url":607},"Partner Program",{"id":5,"status":8,"sort":13,"title":813,"url":814},"Ambassador Program","\u002Fambassador",{"id":12,"status":8,"sort":94,"title":816,"url":817},"Startup Program","\u002Ffor\u002Fstartups",{"id":22,"status":8,"sort":147,"title":819,"url":820},"Nonprofits","\u002Ffor\u002Fnonprofit",{"id":12,"status":8,"sort":7,"title":822,"column_key":823,"links":824},"Use Cases","use_cases",[825,828,831,833,836,839],{"id":13,"status":8,"sort":137,"title":826,"url":827},"Software Localization","\u002Fterm\u002Fsoftware-localization",{"id":94,"status":8,"sort":101,"title":829,"url":830},"Machine Translation Services","\u002Ffeatures\u002Fmachine-translation",{"id":147,"status":8,"sort":456,"title":399,"url":832},"\u002Ffeatures\u002Ftranslation-api",{"id":137,"status":8,"sort":216,"title":834,"url":835},"Crowdsourced Translations","\u002Ffeatures\u002Fshare-tm",{"id":101,"status":8,"sort":286,"title":837,"url":838},"Figma i18n & localization","\u002Ffeatures\u002Ffigma-localization-plugin",{"id":456,"status":8,"sort":244,"title":840,"url":841},"Translation as a Service","\u002Fterm\u002Ftranslation-service",{"id":22,"status":8,"sort":7,"title":452,"column_key":843,"links":844},"integrations",[],{"id":13,"status":8,"sort":7,"title":583,"column_key":846,"links":847},"resources",[848,849,852,853,856,858,859,860],{"id":244,"status":8,"sort":394,"title":596,"url":595},{"id":394,"status":8,"sort":611,"title":850,"url":851},"Dictionary","\u002Fdictionary",{"id":611,"status":8,"sort":493,"title":604,"url":603},{"id":493,"status":8,"sort":253,"title":854,"url":855},"Discussion forum","___DISCUSS_URL___",{"id":253,"status":8,"sort":59,"title":857,"url":591},"Localization Blog",{"id":59,"status":8,"sort":175,"title":613,"url":612},{"id":175,"status":8,"sort":54,"title":716,"url":717},{"id":54,"status":8,"sort":365,"title":861,"url":862},"Brand assets","https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Fu\u002F1\u002Ffolders\u002F1tZqsZHBlGelz7A2FwTsiwrs4j3sd9HTk",[864,869,874,879,884,889],{"id":26,"status":8,"sort":7,"platform":865,"icon":866,"url":867,"label":868},"feed","rss","\u002Ffeed.xml","Localazy RSS Feed",{"id":5,"status":8,"sort":7,"platform":870,"icon":871,"url":872,"label":873},"facebook","fb-logo","https:\u002F\u002Fwww.facebook.com\u002Flocalazy\u002F","Localazy facebook",{"id":12,"status":8,"sort":7,"platform":875,"icon":876,"url":877,"label":878},"github","github-logo","https:\u002F\u002Fgithub.com\u002Flocalazy","Localazy GitHub",{"id":22,"status":8,"sort":7,"platform":880,"icon":881,"url":882,"label":883},"x","x-twitter","https:\u002F\u002Fx.com\u002Flocalazy","Localazy X",{"id":13,"status":8,"sort":7,"platform":885,"icon":886,"url":887,"label":888},"linkedin","linkedin-logo","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002F37836599\u002F","Localazy LinkedIn",{"id":94,"status":8,"sort":7,"platform":890,"icon":891,"url":855,"label":892},"discourse","discourse-logo","Localazy Discourse",[894,897,900],{"id":26,"status":8,"sort":7,"title":895,"url":896,"action":7},"Privacy policy","\u002Fprivacy-policy",{"id":5,"status":8,"sort":7,"title":898,"url":899,"action":7},"Terms & Conditions","\u002Fterms-and-conditions",{"id":12,"status":8,"sort":7,"title":901,"url":7,"action":902},"Cookies","cookie-consent",[904,1044,1122,1228,1314,1393,1482,1573,1660,1759],{"id":406,"status":8,"created_on":905,"modified_on":906,"name":480,"slug":479,"description":907,"docs_link":908,"priority":7,"has_sdk":15,"sort":12,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":909,"show_in_spa":17,"is_file_format":15,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":910,"tile_subtitle":911,"tile_description":912,"is_enterprise":15,"is_popular":15,"primary_use_case":7,"hierarchy_handling":7,"best_for":7,"file_extension":7,"format_code_example":7,"format_to_extension":913,"upload_features":914,"icon":915,"meta_image":916,"primary_tag":918,"tags":934,"integration_methods":952,"recommended_methods":1028,"default_integration_method":1029,"faq_categories":1036,"translations":1042,"platforms_id":406},"2022-03-18T08:09:24.000Z","2025-02-26T13:36:08.000Z","Manage your React app translations with Localazy, a continuous localization tool. React i18n done right. ","\u002Fdocs\u002Fcli\u002Fjson-format","JSON format support","CLI support","react-i18next and more","Use Localazy to translate your React projects with your favorite i18n library.",{"json":521},[],{"id":482},{"id":917},"a97492ec-ee8d-429c-bf66-d0fe59b6e5c9",{"id":13,"status":8,"sort":5,"created_on":919,"label":920,"hidden":15,"icon":921,"translations":923},"2022-03-17T12:23:44.000Z","Web apps",{"id":922},"c9e70e4f-8136-432a-8d82-53c3501a9eb4",[924,926,929,932],{"id":13,"languages_code":925,"label":920},"xxa",{"id":230,"languages_code":927,"label":928},"es","Aplicaciones web",{"id":666,"languages_code":930,"label":931},"cs","Webové aplikace",{"id":436,"languages_code":933,"label":920},"en",[935,942],{"id":13,"status":8,"sort":5,"label":920,"hidden":15,"created_on":919,"icon":936,"translations":937},{"id":922},[938,939,940,941],{"id":13,"languages_code":925,"label":920},{"id":230,"languages_code":927,"label":928},{"id":666,"languages_code":930,"label":931},{"id":436,"languages_code":933,"label":920},{"id":137,"status":8,"sort":101,"label":943,"hidden":15,"created_on":944,"icon":7,"translations":945},"Framework","2022-03-17T12:23:45.000Z",[946,947,949,950],{"id":137,"languages_code":925,"label":943},{"id":369,"languages_code":927,"label":948},"Marco",{"id":319,"languages_code":930,"label":943},{"id":951,"languages_code":933,"label":943},67,[953,965,990,1011],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":956},"Translate strings directly or upload them into your Localazy project.","\u002Fdocs\u002Fapi\u002Fintroduction",[957,958,961,963],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},40,"Utilice la API para exportar traducciones e importar contenido de\u002Fa Localazy mediante programación.",{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},"Choose between translating strings directly or uploading them into Localazy.",{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},"Pomocí rozhraní API můžete programovaně exportovat překlady a importovat obsah z\u002Fdo Localazy.",{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":971},"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",[972,973,976,977,980,983,984,985],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},"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":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},"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":269,"languages_code":927,"label":981,"description":982,"slug":967},"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":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},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":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":997},"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",[998,999,1002,1003,1007],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},"Carga directa de archivos","Cargue sus textos y traducciones existentes en cualquier formato directamente para empezar rápidamente.",{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},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":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},85,"Direkter Datei-Upload","Laden Sie Ihre Texte und vorhandenen Übersetzungen in einem beliebigen Format direkt hoch, um schnell loszulegen.",{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1015},"Command Line Interface","The best option for developers that want to make localization an automated part of their workflow.","\u002Fdocs\u002Fcli\u002Fthe-basics",[1016,1017,1020,1021,1024],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},"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":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},"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":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},87,"Befehlszeilenschnittstelle","Die beste Option für Entwickler, die die Lokalisierung zu einem automatisierten Teil ihres Arbeitsablaufs machen möchten.",[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1030},[1031,1032,1033,1034,1035],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[1037],{"id":1038,"status":8,"created_on":1039,"sort":7,"slug":1040,"label":1041,"on_faq_index":7},76,"2025-02-26T12:44:29.000Z","front-end-common","Front-end Common",[1043],{"languages_code":925,"name":480,"slug":479,"description":907,"support_type":909,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":911,"tile_description":912,"id":406,"platforms_id":406,"docs_link":908},{"id":175,"status":8,"created_on":905,"modified_on":1045,"name":487,"slug":486,"description":1046,"docs_link":908,"priority":7,"has_sdk":15,"sort":22,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":909,"show_in_spa":17,"is_file_format":15,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":910,"tile_subtitle":1047,"tile_description":1048,"is_enterprise":15,"is_popular":15,"primary_use_case":7,"hierarchy_handling":7,"best_for":7,"file_extension":7,"format_code_example":7,"format_to_extension":1049,"upload_features":1050,"icon":1051,"meta_image":1052,"primary_tag":1054,"tags":1061,"integration_methods":1075,"recommended_methods":1106,"default_integration_method":1107,"faq_categories":1114,"translations":1120,"platforms_id":175},"2025-02-26T13:35:41.000Z","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":521},[],{"id":489},{"id":1053},"8171b836-d6b8-4354-8db3-34ccd384970d",{"id":13,"status":8,"sort":5,"created_on":919,"label":920,"hidden":15,"icon":1055,"translations":1056},{"id":922},[1057,1058,1059,1060],{"id":13,"languages_code":925,"label":920},{"id":230,"languages_code":927,"label":928},{"id":666,"languages_code":930,"label":931},{"id":436,"languages_code":933,"label":920},[1062,1069],{"id":13,"status":8,"sort":5,"label":920,"hidden":15,"created_on":919,"icon":1063,"translations":1064},{"id":922},[1065,1066,1067,1068],{"id":13,"languages_code":925,"label":920},{"id":230,"languages_code":927,"label":928},{"id":666,"languages_code":930,"label":931},{"id":436,"languages_code":933,"label":920},{"id":137,"status":8,"sort":101,"label":943,"hidden":15,"created_on":944,"icon":7,"translations":1070},[1071,1072,1073,1074],{"id":137,"languages_code":925,"label":943},{"id":369,"languages_code":927,"label":948},{"id":319,"languages_code":930,"label":943},{"id":951,"languages_code":933,"label":943},[1076,1082,1092,1099],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1077},[1078,1079,1080,1081],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1083},[1084,1085,1086,1087,1088,1089,1090,1091],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1093},[1094,1095,1096,1097,1098],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1100},[1101,1102,1103,1104,1105],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1108},[1109,1110,1111,1112,1113],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[1115,1119],{"id":1004,"status":8,"created_on":1116,"sort":7,"slug":1117,"label":1118,"on_faq_index":7},"2023-03-01T11:21:41.000Z","vue-localization","Vue.js Localization",{"id":1038,"status":8,"created_on":1039,"sort":7,"slug":1040,"label":1041,"on_faq_index":7},[1121],{"languages_code":925,"name":487,"slug":486,"description":1046,"support_type":909,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1047,"tile_description":1048,"id":175,"platforms_id":175,"docs_link":908},{"id":26,"status":8,"created_on":905,"modified_on":1123,"name":501,"slug":500,"description":1124,"docs_link":1125,"priority":7,"has_sdk":15,"sort":94,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1126,"show_in_spa":17,"is_file_format":15,"meta_title":7,"meta_description":7,"featured_on_web":15,"marketing_subtitle":910,"tile_subtitle":1126,"tile_description":1127,"is_enterprise":15,"is_popular":15,"primary_use_case":1128,"hierarchy_handling":1129,"best_for":1130,"file_extension":1131,"format_code_example":1132,"format_to_extension":1133,"upload_features":1135,"icon":1136,"meta_image":1137,"primary_tag":1139,"tags":1150,"integration_methods":1186,"recommended_methods":1217,"default_integration_method":1218,"faq_categories":1225,"translations":1226,"platforms_id":26},"2025-07-03T14:21:42.000Z","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":1134},"arb",[],{"id":503},{"id":1138},"c2674666-4371-4aa4-9a65-438c7363fafe",{"id":94,"status":8,"sort":137,"created_on":944,"label":1140,"hidden":15,"icon":1141,"translations":1143},"Mobile apps",{"id":1142},"c9c7e1f5-8b59-4016-ae0c-6fba9469cd55",[1144,1145,1147,1149],{"id":94,"languages_code":925,"label":1140},{"id":239,"languages_code":927,"label":1146},"Aplicaciones móviles",{"id":311,"languages_code":930,"label":1148},"Mobilní aplikace",{"id":278,"languages_code":933,"label":1140},[1151,1162,1169,1176],{"id":147,"status":8,"sort":175,"label":1152,"hidden":15,"created_on":944,"icon":1153,"translations":1155},"Desktop & Games",{"id":1154},"65b04533-5b4c-430c-b8a4-ecce84754200",[1156,1157,1159,1161],{"id":147,"languages_code":925,"label":1152},{"id":248,"languages_code":927,"label":1158},"Escritorio y Juegos",{"id":1004,"languages_code":930,"label":1160},"Stolní počítače & Hry",{"id":558,"languages_code":933,"label":1152},{"id":13,"status":8,"sort":5,"label":920,"hidden":15,"created_on":919,"icon":1163,"translations":1164},{"id":922},[1165,1166,1167,1168],{"id":13,"languages_code":925,"label":920},{"id":230,"languages_code":927,"label":928},{"id":666,"languages_code":930,"label":931},{"id":436,"languages_code":933,"label":920},{"id":94,"status":8,"sort":137,"label":1140,"hidden":15,"created_on":944,"icon":1170,"translations":1171},{"id":1142},[1172,1173,1174,1175],{"id":94,"languages_code":925,"label":1140},{"id":239,"languages_code":927,"label":1146},{"id":311,"languages_code":930,"label":1148},{"id":278,"languages_code":933,"label":1140},{"id":82,"status":8,"sort":274,"label":1177,"hidden":17,"created_on":944,"icon":7,"translations":1178},"ARB",[1179,1180,1182,1184],{"id":82,"languages_code":925,"label":1177},{"id":1181,"languages_code":927,"label":1177},120,{"id":1183,"languages_code":930,"label":1177},125,{"id":1185,"languages_code":933,"label":1177},130,[1187,1193,1203,1210],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1188},[1189,1190,1191,1192],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1194},[1195,1196,1197,1198,1199,1200,1201,1202],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1204},[1205,1206,1207,1208,1209],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1211},[1212,1213,1214,1215,1216],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1219},[1220,1221,1222,1223,1224],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],[1227],{"languages_code":925,"name":501,"slug":500,"description":1124,"support_type":1126,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1126,"tile_description":1127,"id":26,"platforms_id":26,"docs_link":1125},{"id":441,"status":8,"created_on":1229,"modified_on":1230,"name":515,"slug":514,"description":1231,"docs_link":1232,"priority":7,"has_sdk":15,"sort":286,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1233,"show_in_spa":17,"is_file_format":15,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":910,"tile_subtitle":1233,"tile_description":1234,"is_enterprise":15,"is_popular":15,"primary_use_case":7,"hierarchy_handling":7,"best_for":7,"file_extension":7,"format_code_example":7,"format_to_extension":1235,"upload_features":1237,"icon":1238,"meta_image":1239,"primary_tag":1241,"tags":1254,"integration_methods":1269,"recommended_methods":1300,"default_integration_method":1301,"faq_categories":1308,"translations":1312,"platforms_id":441},"2022-03-18T08:09:25.000Z","2024-07-17T07:43:22.000Z","Localize your app with JavaScript localizations and Localazy CLI.\nUpload JavaScript files with strings to Localazy and manage your translations easily. Download translated files back.","\u002Fdocs\u002Fcli\u002Fjavascript-format","JS file support","Translating JS files is easy as a pie with Localazy!",{"js":1236},"js",[],{"id":517},{"id":1240},"2c6699eb-1d80-4772-8268-5597dbcead8c",{"id":456,"status":8,"sort":456,"created_on":944,"label":1242,"hidden":15,"icon":1243,"translations":1245},"Programming Languages",{"id":1244},"8c5836bb-1fbe-49c5-9330-8f931838c457",[1246,1247,1249,1252],{"id":456,"languages_code":925,"label":1242},{"id":336,"languages_code":927,"label":1248},"Lenguajes de Programación",{"id":1250,"languages_code":930,"label":1251},68,"Programovací Jazyky",{"id":1253,"languages_code":933,"label":1242},70,[1255,1262],{"id":13,"status":8,"sort":5,"label":920,"hidden":15,"created_on":919,"icon":1256,"translations":1257},{"id":922},[1258,1259,1260,1261],{"id":13,"languages_code":925,"label":920},{"id":230,"languages_code":927,"label":928},{"id":666,"languages_code":930,"label":931},{"id":436,"languages_code":933,"label":920},{"id":456,"status":8,"sort":456,"label":1242,"hidden":15,"created_on":944,"icon":1263,"translations":1264},{"id":1244},[1265,1266,1267,1268],{"id":456,"languages_code":925,"label":1242},{"id":336,"languages_code":927,"label":1248},{"id":1250,"languages_code":930,"label":1251},{"id":1253,"languages_code":933,"label":1242},[1270,1276,1286,1293],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1271},[1272,1273,1274,1275],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1277},[1278,1279,1280,1281,1282,1283,1284,1285],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1287},[1288,1289,1290,1291,1292],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1294},[1295,1296,1297,1298,1299],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1302},[1303,1304,1305,1306,1307],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[1309],{"id":332,"status":8,"created_on":1310,"sort":7,"slug":1311,"label":515,"on_faq_index":15},"2022-06-10T09:49:33.000Z","javascript-i18n-localization",[1313],{"languages_code":925,"name":515,"slug":514,"description":1231,"support_type":1233,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1233,"tile_description":1234,"id":441,"platforms_id":441,"docs_link":1232},{"id":286,"status":8,"created_on":1229,"modified_on":1315,"name":522,"slug":521,"description":1316,"docs_link":908,"priority":7,"has_sdk":15,"sort":54,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1317,"show_in_spa":17,"is_file_format":17,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":910,"tile_subtitle":1318,"tile_description":1319,"is_enterprise":15,"is_popular":17,"primary_use_case":1320,"hierarchy_handling":1321,"best_for":1322,"file_extension":1323,"format_code_example":1324,"format_to_extension":1325,"upload_features":1326,"icon":1327,"meta_image":1328,"primary_tag":1330,"tags":1341,"integration_methods":1349,"recommended_methods":1380,"default_integration_method":1381,"faq_categories":1388,"translations":1391,"platforms_id":286},"2025-10-14T11:22:29.000Z","Online JSON translator you will love. Comfortable JSON language files editor with powerful CLI under your fingers for continuous localization.","Advanced format support","{Objectively the best}","Translate any JSON files with Localazy, with the best in class plural and array support.","Used for structured data storage and APIs","Uses key-value pairs","Web & mobile apps, APIs",".json","```\n{\n  \"parent\": {\n    \"child\": {\n      \"another_nested_level\": \"All is supported.\"\n    }\n  }\n}\n```",{"json":521},[],{"id":524},{"id":1329},"8d614c20-667e-4bee-a64d-7d7ce9c0ee0a",{"id":22,"status":8,"sort":13,"created_on":944,"label":1331,"hidden":15,"icon":1332,"translations":1334},"File formats",{"id":1333},"ab7c8f89-dcce-45ab-9e21-8605aef289c3",[1335,1336,1338,1340],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},"Formatos de archivo",{"id":352,"languages_code":930,"label":1339},"Formáty souborů",{"id":445,"languages_code":933,"label":1331},[1342],{"id":22,"status":8,"sort":13,"label":1331,"hidden":15,"created_on":944,"icon":1343,"translations":1344},{"id":1333},[1345,1346,1347,1348],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},[1350,1356,1366,1373],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1351},[1352,1353,1354,1355],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1357},[1358,1359,1360,1361,1362,1363,1364,1365],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1367},[1368,1369,1370,1371,1372],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1374},[1375,1376,1377,1378,1379],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1382},[1383,1384,1385,1386,1387],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[1389],{"id":291,"status":8,"created_on":1390,"sort":7,"slug":521,"label":522,"on_faq_index":15},"2022-06-10T10:49:07.000Z",[1392],{"languages_code":925,"name":522,"slug":521,"description":1316,"support_type":1317,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1318,"tile_description":1319,"id":286,"platforms_id":286,"docs_link":908},{"id":365,"status":8,"created_on":1229,"modified_on":1394,"name":529,"slug":528,"description":1395,"docs_link":1396,"priority":7,"has_sdk":15,"sort":365,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1397,"show_in_spa":15,"is_file_format":17,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":910,"tile_subtitle":1398,"tile_description":1399,"is_enterprise":15,"is_popular":17,"primary_use_case":1400,"hierarchy_handling":1401,"best_for":1402,"file_extension":1403,"format_code_example":1404,"format_to_extension":1405,"upload_features":1407,"icon":1408,"meta_image":1409,"primary_tag":1411,"tags":1418,"integration_methods":1440,"recommended_methods":1471,"default_integration_method":1472,"faq_categories":1479,"translations":1480,"platforms_id":365},"2025-07-03T14:28:31.000Z","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":1406},"xlf",[],{"id":531},{"id":1410},"889970a6-cce8-4055-b96a-9c3f292aa67f",{"id":22,"status":8,"sort":13,"created_on":944,"label":1331,"hidden":15,"icon":1412,"translations":1413},{"id":1333},[1414,1415,1416,1417],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},[1419,1426,1433],{"id":22,"status":8,"sort":13,"label":1331,"hidden":15,"created_on":944,"icon":1420,"translations":1421},{"id":1333},[1422,1423,1424,1425],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},{"id":22,"status":8,"sort":13,"label":1331,"hidden":15,"created_on":944,"icon":1427,"translations":1428},{"id":1333},[1429,1430,1431,1432],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},{"id":22,"status":8,"sort":13,"label":1331,"hidden":15,"created_on":944,"icon":1434,"translations":1435},{"id":1333},[1436,1437,1438,1439],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},[1441,1447,1457,1464],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1442},[1443,1444,1445,1446],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1448},[1449,1450,1451,1452,1453,1454,1455,1456],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1458},[1459,1460,1461,1462,1463],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1465},[1466,1467,1468,1469,1470],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1473},[1474,1475,1476,1477,1478],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],[1481],{"languages_code":925,"name":529,"slug":528,"description":1395,"support_type":1397,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1398,"tile_description":1399,"id":365,"platforms_id":365,"docs_link":1396},{"id":54,"status":8,"created_on":1483,"modified_on":1483,"name":1484,"slug":1485,"description":1486,"docs_link":1487,"priority":7,"has_sdk":15,"sort":108,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1397,"show_in_spa":17,"is_file_format":17,"meta_title":7,"meta_description":7,"featured_on_web":15,"marketing_subtitle":910,"tile_subtitle":1488,"tile_description":1489,"is_enterprise":15,"is_popular":17,"primary_use_case":7,"hierarchy_handling":7,"best_for":7,"file_extension":7,"format_code_example":7,"format_to_extension":1490,"upload_features":1491,"icon":1492,"meta_image":1494,"primary_tag":1496,"tags":1503,"integration_methods":1531,"recommended_methods":1562,"default_integration_method":1563,"faq_categories":1570,"translations":1571,"platforms_id":54},"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","Seamless integration","Upload, edit and translate PO files with Localazy.",{"po":1485},[],{"id":1493},"25f317fe-0c10-4f0b-92cd-f80d1f3c6a67",{"id":1495},"490022f9-d91a-4e1a-9e79-db374ec997c2",{"id":22,"status":8,"sort":13,"created_on":944,"label":1331,"hidden":15,"icon":1497,"translations":1498},{"id":1333},[1499,1500,1501,1502],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},[1504,1511,1521],{"id":22,"status":8,"sort":13,"label":1331,"hidden":15,"created_on":944,"icon":1505,"translations":1506},{"id":1333},[1507,1508,1509,1510],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},{"id":261,"status":8,"sort":261,"label":1512,"hidden":17,"created_on":944,"icon":7,"translations":1513},"C++",[1514,1515,1517,1519],{"id":261,"languages_code":925,"label":1512},{"id":1516,"languages_code":927,"label":1512},135,{"id":1518,"languages_code":930,"label":1512},140,{"id":1520,"languages_code":933,"label":1512},144,{"id":365,"status":8,"sort":108,"label":1522,"hidden":17,"created_on":944,"icon":7,"translations":1523},"Gettext",[1524,1525,1527,1529],{"id":365,"languages_code":925,"label":1522},{"id":1526,"languages_code":927,"label":1522},101,{"id":1528,"languages_code":930,"label":1522},106,{"id":1530,"languages_code":933,"label":1522},111,[1532,1538,1548,1555],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1533},[1534,1535,1536,1537],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1539},[1540,1541,1542,1543,1544,1545,1546,1547],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1549},[1550,1551,1552,1553,1554],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1556},[1557,1558,1559,1560,1561],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1564},[1565,1566,1567,1568,1569],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],[1572],{"languages_code":925,"name":1484,"slug":1485,"description":1486,"support_type":1397,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1488,"tile_description":1489,"id":54,"platforms_id":54,"docs_link":1487},{"id":113,"status":8,"created_on":1229,"modified_on":1574,"name":1575,"slug":1576,"description":1577,"docs_link":1578,"priority":7,"has_sdk":15,"sort":89,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1397,"show_in_spa":17,"is_file_format":17,"meta_title":7,"meta_description":7,"featured_on_web":15,"marketing_subtitle":910,"tile_subtitle":1579,"tile_description":1580,"is_enterprise":15,"is_popular":15,"primary_use_case":1581,"hierarchy_handling":1582,"best_for":1583,"file_extension":1584,"format_code_example":1585,"format_to_extension":1586,"upload_features":1587,"icon":1588,"meta_image":1589,"primary_tag":1591,"tags":1598,"integration_methods":1616,"recommended_methods":1647,"default_integration_method":1648,"faq_categories":1655,"translations":1658,"platforms_id":113},"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",".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":1576},[],{"id":1493},{"id":1590},"1f07bf83-9363-47d6-b21b-a5121c0efaf6",{"id":22,"status":8,"sort":13,"created_on":944,"label":1331,"hidden":15,"icon":1592,"translations":1593},{"id":1333},[1594,1595,1596,1597],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},[1599,1606],{"id":22,"status":8,"sort":13,"label":1331,"hidden":15,"created_on":944,"icon":1600,"translations":1601},{"id":1333},[1602,1603,1604,1605],{"id":22,"languages_code":925,"label":1331},{"id":221,"languages_code":927,"label":1337},{"id":352,"languages_code":930,"label":1339},{"id":445,"languages_code":933,"label":1331},{"id":108,"status":8,"sort":113,"label":1607,"hidden":17,"created_on":944,"icon":7,"translations":1608},"C#",[1609,1610,1612,1614],{"id":108,"languages_code":925,"label":1607},{"id":1611,"languages_code":927,"label":1607},103,{"id":1613,"languages_code":930,"label":1607},108,{"id":1615,"languages_code":933,"label":1607},113,[1617,1623,1633,1640],{"id":22,"status":8,"sort":94,"label":655,"alternative_label":7,"slug":659,"description":954,"documentation_link":955,"loc_icon":659,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1618},[1619,1620,1621,1622],{"id":22,"languages_code":925,"label":655,"description":954,"slug":659},{"id":959,"languages_code":927,"label":655,"description":960,"slug":659},{"id":666,"languages_code":933,"label":655,"description":962,"slug":659},{"id":436,"languages_code":930,"label":655,"description":964,"slug":659},{"id":12,"status":8,"sort":13,"label":966,"alternative_label":7,"slug":967,"description":968,"documentation_link":969,"loc_icon":970,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1624},[1625,1626,1627,1628,1629,1630,1631,1632],{"id":12,"languages_code":925,"label":966,"description":968,"slug":967},{"id":154,"languages_code":927,"label":974,"description":975,"slug":7},{"id":352,"languages_code":933,"label":966,"description":968,"slug":967},{"id":319,"languages_code":930,"label":978,"description":979,"slug":7},{"id":269,"languages_code":927,"label":981,"description":982,"slug":967},{"id":278,"languages_code":933,"label":966,"description":968,"slug":967},{"id":558,"languages_code":930,"label":978,"description":979,"slug":967},{"id":986,"languages_code":987,"label":988,"description":989,"slug":7},{"id":5,"status":8,"sort":22,"label":991,"alternative_label":992,"slug":993,"description":994,"documentation_link":995,"loc_icon":996,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1634},[1635,1636,1637,1638,1639],{"id":5,"languages_code":925,"label":991,"description":994,"slug":993},{"id":77,"languages_code":927,"label":1000,"description":1001,"slug":7},{"id":248,"languages_code":933,"label":991,"description":994,"slug":993},{"id":1004,"languages_code":930,"label":1005,"description":1006,"slug":7},{"id":1008,"languages_code":987,"label":1009,"description":1010,"slug":7},{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1641},[1642,1643,1644,1645,1646],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[],{"id":26,"status":8,"sort":12,"label":1012,"alternative_label":643,"slug":411,"description":1013,"documentation_link":1014,"loc_icon":411,"is_official_plugin":15,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1649},[1650,1651,1652,1653,1654],{"id":26,"languages_code":925,"label":1012,"description":1013,"slug":411},{"id":66,"languages_code":927,"label":1018,"description":1019,"slug":411},{"id":239,"languages_code":933,"label":1012,"description":1013,"slug":411},{"id":311,"languages_code":930,"label":1022,"description":1023,"slug":411},{"id":1025,"languages_code":987,"label":1026,"description":1027,"slug":7},[1656],{"id":221,"status":8,"created_on":1657,"sort":7,"slug":1576,"label":1575,"on_faq_index":7},"2022-08-01T16:44:06.000Z",[1659],{"languages_code":925,"name":1575,"slug":1576,"description":1577,"support_type":1397,"meta_title":7,"meta_description":7,"marketing_subtitle":910,"tile_subtitle":1579,"tile_description":1580,"id":113,"platforms_id":113,"docs_link":1578},{"id":535,"status":8,"created_on":1661,"modified_on":1662,"name":538,"slug":537,"description":1663,"docs_link":1664,"priority":7,"has_sdk":7,"sort":536,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1665,"show_in_spa":17,"is_file_format":7,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":1665,"tile_subtitle":1665,"tile_description":1666,"is_enterprise":15,"is_popular":17,"primary_use_case":7,"hierarchy_handling":7,"best_for":7,"file_extension":7,"format_code_example":7,"format_to_extension":7,"upload_features":7,"icon":1667,"meta_image":1668,"primary_tag":1670,"tags":1682,"integration_methods":1726,"recommended_methods":1746,"default_integration_method":1747,"faq_categories":1754,"translations":1757,"platforms_id":535},"2022-06-16T09:08:11.000Z","2026-04-27T18:16:54.000Z","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","Localization Plugin","Localize your Strapi website with our official localization plugin. Easy setup and installation.",{"id":540},{"id":1669},"5995b721-a2ea-487e-ad4b-298a489bbd24",{"id":286,"status":8,"sort":216,"created_on":944,"label":1671,"hidden":15,"icon":1672,"translations":1674},"CMS",{"id":1673},"1172a655-928c-4594-9263-d8afdfd9cd79",[1675,1676,1678,1680],{"id":286,"languages_code":925,"label":1671},{"id":1677,"languages_code":927,"label":1671},73,{"id":1679,"languages_code":930,"label":1671},81,{"id":1681,"languages_code":933,"label":1671},84,[1683,1695,1707,1714],{"id":59,"status":8,"sort":253,"label":1684,"hidden":15,"created_on":944,"icon":7,"translations":1685},"Multilingual SEO",[1686,1687,1690,1693],{"id":59,"languages_code":925,"label":1684},{"id":1688,"languages_code":927,"label":1689},89,"SEO multilingüe",{"id":1691,"languages_code":930,"label":1692},94,"Vícejazyčné SEO",{"id":1694,"languages_code":933,"label":1684},99,{"id":406,"status":8,"sort":406,"label":165,"hidden":15,"created_on":944,"icon":1696,"translations":1698},{"id":1697},"e782ed3f-d954-45ca-8b17-5bf5fe95f30a",[1699,1700,1703,1705],{"id":406,"languages_code":925,"label":165},{"id":1701,"languages_code":927,"label":1702},132,"Comercio electrónico",{"id":1704,"languages_code":930,"label":165},137,{"id":1706,"languages_code":933,"label":165},142,{"id":286,"status":8,"sort":216,"label":1671,"hidden":15,"created_on":944,"icon":1708,"translations":1709},{"id":1673},[1710,1711,1712,1713],{"id":286,"languages_code":925,"label":1671},{"id":1677,"languages_code":927,"label":1671},{"id":1679,"languages_code":930,"label":1671},{"id":1681,"languages_code":933,"label":1671},{"id":5,"status":8,"sort":94,"label":1715,"hidden":15,"created_on":944,"icon":1716,"translations":1718},"Marketing tools",{"id":1717},"098fe6a4-dd2e-42d8-937e-2d8121e6e266",[1719,1720,1723,1725],{"id":5,"languages_code":925,"label":1715},{"id":1721,"languages_code":927,"label":1722},43,"Herramientas de marketing",{"id":299,"languages_code":930,"label":1724},"Marketingové nástroje",{"id":378,"languages_code":933,"label":1715},[1727],{"id":137,"status":8,"sort":7,"label":1728,"alternative_label":1729,"slug":1730,"description":1731,"documentation_link":1732,"loc_icon":1733,"is_official_plugin":17,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1734},"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",[1735,1736,1739,1740,1743],{"id":137,"languages_code":925,"label":1728,"description":1731,"slug":1730},{"id":1721,"languages_code":927,"label":1737,"description":1738,"slug":7},"Complemento Oficial de Strapi","Nuestros desarrolladores mantienen un complemento oficial de localización de Strapi. ¡Empiece en unos pocos clics!",{"id":369,"languages_code":933,"label":1728,"description":1731,"slug":1730},{"id":445,"languages_code":930,"label":1741,"description":1742,"slug":7},"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":1688,"languages_code":987,"label":1744,"description":1745,"slug":7},"Offizielles Strapi-Plugin","Unsere Entwickler pflegen ein offizielles Strapi-Lokalisierungs-Plugin. Starten Sie mit ein paar Klicks!",[],{"id":137,"status":8,"sort":7,"label":1728,"alternative_label":1729,"slug":1730,"description":1731,"documentation_link":1732,"loc_icon":1733,"is_official_plugin":17,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1748},[1749,1750,1751,1752,1753],{"id":137,"languages_code":925,"label":1728,"description":1731,"slug":1730},{"id":1721,"languages_code":927,"label":1737,"description":1738,"slug":7},{"id":369,"languages_code":933,"label":1728,"description":1731,"slug":1730},{"id":445,"languages_code":930,"label":1741,"description":1742,"slug":7},{"id":1688,"languages_code":987,"label":1744,"description":1745,"slug":7},[1755],{"id":66,"status":8,"created_on":1756,"sort":7,"slug":537,"label":538,"on_faq_index":7},"2022-06-16T09:24:13.000Z",[1758],{"languages_code":925,"name":538,"slug":537,"description":1663,"support_type":1665,"meta_title":7,"meta_description":7,"marketing_subtitle":1665,"tile_subtitle":1665,"tile_description":1666,"id":535,"platforms_id":535,"docs_link":1664},{"id":319,"status":8,"created_on":1229,"modified_on":1760,"name":545,"slug":544,"description":7,"docs_link":1761,"priority":7,"has_sdk":15,"sort":311,"highlighted":15,"in_menu":17,"changefreq":7,"support_type":1762,"show_in_spa":17,"is_file_format":15,"meta_title":7,"meta_description":7,"featured_on_web":17,"marketing_subtitle":1763,"tile_subtitle":1764,"tile_description":1765,"is_enterprise":15,"is_popular":17,"primary_use_case":7,"hierarchy_handling":7,"best_for":7,"file_extension":7,"format_code_example":7,"format_to_extension":7,"upload_features":1766,"icon":1767,"meta_image":1768,"primary_tag":1770,"tags":1783,"integration_methods":1791,"recommended_methods":1804,"default_integration_method":1805,"faq_categories":1811,"translations":1812,"platforms_id":319},"2024-12-20T15:00:22.000Z","\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":547},{"id":1769},"7573fed6-8817-4cb4-84d2-be327e6c4891",{"id":12,"status":8,"sort":147,"created_on":944,"label":1771,"hidden":15,"icon":1772,"translations":1774},"Design tools",{"id":1773},"1053d863-b690-4fbd-aadf-dbf2ba282768",[1775,1776,1779,1782],{"id":12,"languages_code":925,"label":1771},{"id":1777,"languages_code":927,"label":1778},42,"Herramientas de diseño",{"id":1780,"languages_code":930,"label":1781},49,"Nástroje pro návrh",{"id":428,"languages_code":933,"label":1771},[1784],{"id":12,"status":8,"sort":147,"label":1771,"hidden":15,"created_on":944,"icon":1785,"translations":1786},{"id":1773},[1787,1788,1789,1790],{"id":12,"languages_code":925,"label":1771},{"id":1777,"languages_code":927,"label":1778},{"id":1780,"languages_code":930,"label":1781},{"id":428,"languages_code":933,"label":1771},[1792],{"id":147,"status":8,"sort":7,"label":1729,"alternative_label":1729,"slug":1793,"description":1794,"documentation_link":595,"loc_icon":1733,"is_official_plugin":17,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1795},"official-plugin","Our developers maintain an official plugin for this integration. Start in a few clicks!",[1796,1797,1800,1801],{"id":147,"languages_code":925,"label":1729,"description":1794,"slug":1793},{"id":142,"languages_code":927,"label":1798,"description":1799,"slug":7},"Plugin Oficial","Nuestros desarrolladores mantienen un plugin oficial para esta integración. ¡Empiece con unos pocos clics!",{"id":132,"languages_code":933,"label":1729,"description":1794,"slug":1793},{"id":332,"languages_code":930,"label":1802,"description":1803,"slug":7},"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":147,"status":8,"sort":7,"label":1729,"alternative_label":1729,"slug":1793,"description":1794,"documentation_link":595,"loc_icon":1733,"is_official_plugin":17,"is_universal_plugin":15,"universal_plugin_vendor":7,"translations":1806},[1807,1808,1809,1810],{"id":147,"languages_code":925,"label":1729,"description":1794,"slug":1793},{"id":142,"languages_code":927,"label":1798,"description":1799,"slug":7},{"id":132,"languages_code":933,"label":1729,"description":1794,"slug":1793},{"id":332,"languages_code":930,"label":1802,"description":1803,"slug":7},[],[1813],{"languages_code":925,"name":545,"slug":544,"description":7,"support_type":1762,"meta_title":7,"meta_description":7,"marketing_subtitle":1763,"tile_subtitle":1764,"tile_description":1765,"id":319,"platforms_id":319,"docs_link":1761},{"id":1815,"owner":1816,"created_by":7,"sort":7,"title":1821,"slug":1822,"modified_on":764,"created_on":1823,"pinned":15,"badge":7,"priority":1824,"main_image":1825,"status":8,"tags":1826,"dictionary":1834,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"69d78a237ab1270001eddabf",{"id":1817,"first_name":1818,"last_name":764,"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":319,"created_on":1828,"status":8,"label":655,"slug":659,"on_index_page":15},"2026-06-03 21:27:16",{"id":269,"created_on":1828,"status":8,"label":1830,"slug":1831,"on_index_page":17},"AI","ai",{"id":319,"created_on":1828,"status":8,"label":217,"slug":1833,"on_index_page":17},"localization",[],0,{"id":1837,"owner":1838,"created_by":7,"sort":7,"title":1839,"slug":1840,"modified_on":764,"created_on":1841,"pinned":15,"badge":7,"priority":1824,"main_image":1842,"status":8,"tags":1843,"dictionary":1849,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"6a1eb1ef8550a30001408466",{"id":1817,"first_name":1818,"last_name":764,"slug":1819,"avatar":1820},"Release Update: New features in CLI & API, revamped glossary, Strapi plugin updates, and more!","release-update-june-2026-new-features-localazy-cli-glossary-strapi-plugin","2026-06-02T16:10:29.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F06\u002FRelease-update-Localazy-may-2026.png",[1844,1847,1848],{"id":319,"created_on":1828,"status":8,"label":1845,"slug":1846,"on_index_page":17},"Release Update","release-update",{"id":319,"created_on":1828,"status":8,"label":643,"slug":411,"on_index_page":15},{"id":319,"created_on":1828,"status":8,"label":655,"slug":659,"on_index_page":15},[],{"post":1851,"relatedPosts":1977,"banner":2032},{"id":1852,"owner":1853,"created_by":7,"sort":7,"title":1858,"slug":1859,"modified_on":1860,"created_on":1861,"pinned":17,"badge":7,"priority":1824,"main_image":1862,"status":8,"tags":1863,"dictionary":1875,"reading_time":101,"excerpt":1912,"og_title":764,"og_description":764,"og_image":764,"content":1913,"meta_title":764,"meta_description":764,"canonical":764,"cta":1914,"fullGhostPost":1922},"645d280f047091000193b9fe",{"id":1854,"first_name":1855,"last_name":764,"slug":1856,"avatar":1857},"61dc4e87df4bcb00010bd508","Mary Okosun","mary-okosun","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fokosun.png","i18n Tutorial: String Externalization and Testing with Qodana","string-externalization-and-testing-with-qodana","2023-07-26T11:31:27.000+02:00","2023-07-26T11:30:47.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F07\u002FQoodana.png",[1864,1867,1869,1872],{"id":269,"created_on":1828,"status":8,"label":1865,"slug":1866,"on_index_page":15},"Qodana","qodana",{"id":319,"created_on":1828,"status":8,"label":1868,"slug":1868,"on_index_page":17},"i18n",{"id":319,"created_on":1828,"status":8,"label":1870,"slug":1871,"on_index_page":17},"DevTips","devtips",{"id":319,"created_on":1828,"status":8,"label":1873,"slug":1874,"on_index_page":15},"HowTo","howto",[1876,1890,1898],{"id":336,"status":8,"owner":1877,"created_on":1878,"title":1879,"excerpt":1880,"content":1881,"slug":1882,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":1883},"2bac48a8-b362-482f-b574-3bc71dca4c5b","2026-05-12T07:09:23.000Z","Integrated Development Environment (IDE)","A software application that provides developers with a complete set of tools for writing, testing, and debugging code in one place.","An IDE (Integrated Development Environment) typically includes a source code editor, compiler or interpreter, build automation tools (such as Gradle for Android), a debugger, and a system for managing libraries and plugins.\n\nThese features let the IDEs streamline the software development process and reduce the need to switch between multiple standalone tools.\n\n### 🧩 What are the core features of IDEs?\n\n* **Source code editor**: Syntax highlighting, auto-completion, and error detection.\n* **Compiler\u002FInterpreter**: Translates code into executable programs.\n* **Build automation**: Tools like Gradle or Maven to manage builds and dependencies.\n* **Debugger**: Identifies and resolves code errors step by step.\n* **Plugin & library support**: Extend functionality for specific frameworks or languages.\n* **Version control integration**: Built-in Git support for collaboration.\n\n### ⚙️ Examples of IDEs\n\n* [**Android Studio**](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fandroid-studio): The official IDE for Android development.\n* [**IntelliJ IDEA**](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fintellij-idea): Popular for Java, Kotlin, and multi-language support.\n* [**NetBeans**](https:\u002F\u002Fwww.oracle.com\u002Ftools\u002Ftechnologies\u002Fnetbeans-ide.html): Open-source, focused on Java and PHP development.\n* [**Eclipse**](https:\u002F\u002Feclipseide.org\u002F): Widely used, extensible through plugins, especially in enterprise projects.\n\nPlacing the full toolkit in one environment allows IDEs to accelerate coding tasks, simplify project management, and raise code consistency.","integrated-development-kit-ide",[1884,1886,1888],{"id":195,"slug":1885},"gradle",{"id":118,"slug":1887},"android-studio",{"id":445,"slug":1889},"intellij-idea",{"id":445,"status":8,"owner":1877,"created_on":1891,"title":1892,"excerpt":1893,"content":1894,"slug":1889,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":1895},"2022-03-17T12:22:55.000Z","IntelliJ IDEA","An integrated development environment (IDE) written in Java for developing computer software. ","IntelliJ IDEA by \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\" rel=\"nofollow\" target=\"\\_blank\">JetBrains\u003C\u002Fa> is famous IDE used by developers worldwide via both community of commercial licence editions. It provides coding assistance, built-in tools and integrations, and a rich plugin ecosystem that supports a wide range of programming languages.\n\nAnother popular IDE, [Android Studio](\u002Fdictionary\u002Fandroid-studio), is based on IntelliJ IDEA.",[1896,1897],{"id":118,"slug":1887},{"id":336,"slug":1882},{"id":1899,"status":8,"owner":1877,"created_on":1878,"title":1900,"excerpt":1901,"content":1902,"slug":1903,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":1904},79,"Internationalization (i18n)","The process of making your software localizable.","Internationalization (i18n) is the process of preparing software, digital products, and content so they can be easily adapted for various languages, regions, and cultures without requiring extensive reengineering.\n\nThis foundational step ensures that a product can be efficiently localized to meet the needs of different global markets. To internationalize your software, you need to pay attention to technical requirements. The code structure and design has to be prepared to allow for [localization](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Flocalization).\n\nIt involves considering various linguistic and cultural factors during the initial design and development phases. This process should start, ideally, in the design phase. For example, you may want to have externalised strings so you can bring your strings to the translation management tool.\n\nEvery business looking to expand their reach and provide User Experiences (UX) across diverse markets needs to consider internationalization and then localization.\n\n## 🌐 Key points about internationalization (i18n): \n\n* Internationalization involves creating flexible and adaptable designs that accommodate various languages, scripts, and cultural norms.\n* By preparing content and software for localization, internationalization simplifies the process of translating and adapting products for specific markets.\n* This process includes using Unicode, supporting different character sets, and ensuring compatibility with various regional formats (dates, currencies, etc.).\n* Investing in internationalization upfront reduces the time and cost associated with localizing products for multiple markets.\n\nBy prioritizing internationalization, companies can create products that are more versatile and ready for global distribution, ensuring they meet the needs of international users effectively.","internationalization",[1905,1906,1908,1910],{"id":5,"slug":1833},{"id":22,"slug":1907},"translation",{"id":13,"slug":1909},"globalization",{"id":101,"slug":1911},"gilt","Learn how to utilize the code quality platform Qodana by JetBrains to externalize strings and test your localizations in this tutorial by Mary Okosun.","\u003Ch2 id=\"what-is-qodana\">🤔 What is Qodana? \u003Ca class=\"markdownit-header-anchor\" href=\"#what-is-qodana\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Qodana is a platform for monitoring code quality and evaluating code integrity. It incorporates all of the innovative features found in the JetBrains IDE into your CI\u002FCD pipelines. It helps development teams consistently deliver code that meets quality and industry standards.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F07\u002Fimage-41.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1089\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F07\u002Fimage-41.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F07\u002Fimage-41.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F07\u002Fimage-41.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F07\u002Fimage-41.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>\u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fqodana\u002F\">jetbrains.com\u002Fqodana\u003C\u002Fa>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch3 id=\"why-use-it\">Why use it? \u003Ca class=\"markdownit-header-anchor\" href=\"#why-use-it\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Qodana provides a high-level overview of project quality, establishes quality checks, and monitors progress on these various checks. Qodana can perform three different types of analysis components.\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Static analysis\u003C\u002Fstrong>: This performs an automated codebase analysis.\u003C\u002Fli>\u003Cli>\u003Cstrong>Linters\u003C\u002Fstrong>: This component allows you to analyze code and identify duplicate functions or licenses that are incompatible.\u003C\u002Fli>\u003Cli>\u003Cstrong>Code inspections\u003C\u002Fstrong>: This linter component instantly analyzes code for specific issues.\u003Cbr>\u003C\u002Fli>\u003C\u002Fol>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1386\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 2044w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>The diagram above depicts a typical workflow for Qodana.\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Install Qodana\u003C\u002Fstrong>: Qodana is integrated into JetBrains IDE, so installing the Qodana plugin within your IDE is necessary.\u003C\u002Fli>\u003Cli>\u003Cstrong>Software configuration\u003C\u002Fstrong>: Qodana can be configured following your project's specifications.\u003C\u002Fli>\u003Cli>\u003Cstrong>Inspect code\u003C\u002Fstrong>: Inspections can be performed using the code analysis available.\u003C\u002Fli>\u003Cli>\u003Cstrong>Improve code\u003C\u002Fstrong>: Codes can be improved further based on the results of a Qodana inspection to meet project requirements and standards.\u003C\u002Fli>\u003Cli>\u003Cstrong>Repeat inspection\u003C\u002Fstrong>: Code inspection and improvement are both iterative processes.\u003C\u002Fli>\u003C\u002Fol>\u003Ch2 id=\"installation\">🔌 Installation \u003Ca class=\"markdownit-header-anchor\" href=\"#installation\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Qodana can be run locally on a PC or server or as part of a building or deployment process within a \u003Ca href=\"\u002Ftags\u002Fci\">CI\u002FCD pipeline\u003C\u002Fa>.  Qodana can analyze projects written in Java, \u003Ca href=\"\u002Ftags\u002Fkotlin\">Kotlin\u003C\u002Fa>, \u003Ca href=\"\u002Ftags\u002Fphp\">PHP\u003C\u002Fa>, Python, TypeScript, \u003Ca href=\"\u002Ftags\u002Fjavascript\">JavaScript\u003C\u002Fa>, .NET, and Golang. However, in this article, we will be analyzing a project written in Java programming language.\u003C\u002Fp>\u003Cp>Before installing Qodana, configuring the Java Development Kit (JDK) is essential, as Qodana runs only on certain versions. Qodana JVM Community's default version is JDK 17. Qodana JVM uses JDK 17, while Qodana for Community Android uses Amazon Corretto 11. Aside from these default versions, Qodana can run on various other versions, which can be found in the \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fqodana\u002Fconfigure-jdk.html\">documentation\u003C\u002Fa>.\u003C\u002Fp>\u003Cp> Qodana offers two options for installation:\u003C\u002Fp>\u003Col>\u003Cli>Using the Qodana Command Line Interface (CLI)\u003C\u002Fli>\u003Cli>The use of a Docker image\u003C\u002Fli>\u003C\u002Fol>\u003Cp>We will use the CLI in our project because it is the simplest way to get started. We would install Qodana CLI using Homebrew for macOS, but other installation options are available in the \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fqodana\u002F2023.1\u002Fquick-start.html\">official documentation\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>Enter the following command into your terminal:\u003C\u002Fp>\u003Cpre>\u003Ccode>brew install jetbrains\u002Futils\u002Fqodana\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Following installation, we will start the process by running the command in the root directory of the project you intend to analyze. This command generates a .\u003Cem>yaml\u003C\u002Fem> file containing all configuration files.\u003C\u002Fp>\u003Cpre>\u003Ccode>qodana init\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You would get a few prompts along the way, and you'd be able to choose the linter based on the IntelliJ edition you're using. The \u003Cem>\u003Ccode>jetbrains\u002Fqodana-jvm-community:2023.1\u003C\u002Fcode>\u003C\u002Fem> linter is based on the Intellij community edition, whereas the \u003Cem>\u003Ccode>jetbrains\u002Fqodana-jvm:2023.1\u003C\u002Fcode>\u003C\u002Fem> linter is based on the Intellij Ultimate edition. A \u003Cem>qodana.yaml\u003C\u002Fem> file is generated.\u003C\u002Fp>\u003Cp>When initialization is complete, the command below can be used to inspect the code. \u003C\u002Fp>\u003Cpre>\u003Ccode>qodana scan --show-report\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>A sample of the screenshot of the report page can be seen below:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1450\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"lessbrgreater-what-is-string-externalization\">\u003Cbr>✂️ What is String Externalization? \u003Ca class=\"markdownit-header-anchor\" href=\"#lessbrgreater-what-is-string-externalization\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>String externalization is a technique used to manage a project's textual content.\u003Cstrong> \u003C\u002Fstrong>It is the process of loading strings from an external source, such as a \u003Cem>.json\u003C\u002Fem> or\u003Cem> .properties\u003C\u002Fem> file. Software translation is a common practice among developers because it maintains translation effectively. This is due to the ease with which strings that are not hardcoded can be localized and translated into other languages.\u003C\u002Fp>\u003Ch3 id=\"how-to-perform-string-externalization\">How to perform string externalization? \u003Ca class=\"markdownit-header-anchor\" href=\"#how-to-perform-string-externalization\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>String externalization differs by programming language. The Java programming language will be the focus of this article. String externalization entails the following steps:\u003C\u002Fp>\u003Col>\u003Cli>The first step in this process is identifying\u003Cstrong> hardcoded strings\u003C\u002Fstrong> in your project. These strings could be user output or error messages, among other formats. Content visible from a user interface can be identified as an externalizable string.\u003C\u002Fli>\u003Cli>\u003Cstrong>Create an external file\u003C\u002Fstrong>: According to our definition of string externalization, we must load strings from an external source. This is where we create the external source to load strings. The external file varies depending on the programming language; for example, Javascript uses a.json file with an object within it, whereas in Java, the external source is the resource bundles. The resource bundle contains.properties files for each language supported by the application. This concept will be discussed in depth in the subsequent section.\u003C\u002Fli>\u003Cli>\u003Cstrong>String Extraction\u003C\u002Fstrong>: String extraction is the process of extracting hardcoded strings into the default language.properties file. Strings are typically stored as a key-value pair. For instance, if the string \"Please input your correct credentials\" is hard coded, it is externalized as \u003Ccode>credential.message=Please input your correct credentials\u003C\u002Fcode> in the.properties file. The hard-coded string is subsequently replaced with \u003Ccode>credential.message\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Cstrong>Handle translation\u003C\u002Fstrong>: IntelliJ has an interesting feature that allows easy translation to other languages via an \u003Cem>en.properties\u003C\u002Fem> file. The value of the key \u003Ccode>credential.message\u003C\u002Fcode> is translated into the content of other languages using the other locales properties file.\u003C\u002Fli>\u003Cli>\u003Cstrong>Testing\u003C\u002Fstrong>: After making changes to the properties file, check that the application is working properly and that all externalized strings have been loaded correctly.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>When using Qodana as a code analysis tool, these procedures are simplified. The following section explains how Qodana guarantees proper externalization and localization of our project while also ensuring high-quality checks and code inspection.\u003C\u002Fp>\u003Ch2 id=\"how-to-use-qodana-for-localization\">🚩 How to use Qodana for Localization? \u003Ca class=\"markdownit-header-anchor\" href=\"#how-to-use-qodana-for-localization\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Qodana is not a \u003Ca href=\"\u002Fterm\u002Fsoftware-localization\">localization tool\u003C\u002Fa>, but it facilitates seamless localization management. The strings to be translated are stored in properties files, which can then be bundled into a resource bundle. \u003C\u002Fp>\u003Cp>IntelliJ can then easily detect strings that require localization. Properties are text files with the \u003Ca href=\"\u002Fproperties\">.\u003C\u002Fa>\u003Cem>\u003Ca href=\"\u002Fproperties\">properties\u003C\u002Fa>\u003C\u002Fem> extension that contain localized key-value pairs. These localized strings can be accessed and rendered in the user interface.\u003C\u002Fp>\u003Cp>You can use this \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fidea\u002Fcreating-and-running-your-first-java-application.html#write-code\">official documentation\u003C\u002Fa> to create a simple Java application that prints \"Hello, world!\" to the system output by following the instructions. If you have an existing Java application, we can proceed to the next section. \u003C\u002Fp>\u003Ch3 id=\"setup\">Setup \u003Ca class=\"markdownit-header-anchor\" href=\"#setup\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>In the subsequent steps, the \u003Cstrong>Resource Bundle Editor Plugin\u003C\u002Fstrong> will be installed.\u003C\u002Fp>\u003Col>\u003Cli>In the settings menu (command+comma), choose plugins\u003C\u002Fli>\u003Cli>Go to the marketplace and search for \u003Cstrong>Resource Bundle Editor Plugin\u003C\u002Fstrong>\u003C\u002Fli>\u003Cli>Install this plugin, apply the changes, and click OK to close the dialog box. \u003Cbr>\u003C\u002Fli>\u003C\u002Fol>\u003Cp>In the following section, we will create our properties file. Create a new file with the \u003Cem>.properties\u003C\u002Fem> extension in the directory of your project, which in our case, is the src folder of the HelloWorld application. Our file would be called \u003Cem>locales_en.properties\u003C\u002Fem>. Repeat the process for \u003Cem>locales_fr.properties\u003C\u002Fem>. We can see that both property files have been merged into a \u003Cstrong>Resource Bundle&lt;locales&gt;.  \u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>A resource bundle is a collection of properties files with the same base name but distinct locale suffixes. Due to the similarity in their names, IntelliJ merged the two properties files into a resource bundle in our example.\u003C\u002Fp>\u003Ch3 id=\"finding-hardcoded-strings\">Finding hardcoded strings \u003Ca class=\"markdownit-header-anchor\" href=\"#finding-hardcoded-strings\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Our project includes literal strings that are hard-coded, so we would enable the inspection for hard-coded strings to highlight them. These strings can be extracted and stored in the properties files.\u003C\u002Fp>\u003Cp>Open the settings (command+comma), expand Editor, and then click on inspections.  Navigate to \u003Cstrong>Java\u003C\u002Fstrong> and select and expand \u003Cstrong>Internationalization\u003C\u002Fstrong>. Select \u003Cstrong>Hardcoded strings\u003C\u002Fstrong> and apply the changes before clicking OK to close the dialog.\u003C\u002Fp>\u003Cp>The hard-coded strings should be highlighted in your code editor and displayed as a warning at the top right of the editor.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1886\" height=\"404\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 1886w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Now that IntelliJ has assisted with code analysis and inspection of hard-coded literals, we want to extract the hard-coded strings into the properties file. Using an action called \u003Cem>i18n hard-coded string literal\u003C\u002Fem>, IntelliJ has made this possible.\u003C\u002Fp>\u003Ch3 id=\"externalize-hardcoded-strings\">Externalize hardcoded strings \u003Ca class=\"markdownit-header-anchor\" href=\"#externalize-hardcoded-strings\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Include the following code snippets just above the System.out.print() method in your source code. The snippets specify the resource bundle in which extracted strings will be stored.\u003C\u002Fp>\u003Cpre>\u003Ccode>ResourceBundle &lt;name&gt; = ResourceBundle.getBundle(\"&lt;bundle name&gt;\");\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Where name is a variable name and bundle name is the resource bundle's base name, which in our Java application is \u003Cem>locales\u003C\u002Fem>. \u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-java\">ResourceBundle myBundle = ResourceBundle.getBundle(\"locales\");\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Click on the hard-coded string and press the option key + enter key. You should see a list of actions. Choose the \u003Cstrong>i18nize hardcoded string literal\u003C\u002Fstrong>, and a dialog box appears.\u003C\u002Fp>\u003Cp>The fields are usually prefilled, but the property key and value can be changed to match our desired naming conventions.  Check that the properties file points to the locales_en.properties file and that \"Update all properties files\" is unchecked. This ensures that only the English strings are internationalized. We would manually translate the French string content. A screenshot is provided below.\u003Cbr>\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.11.25-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"442\" height=\"763\">\u003C\u002Ffigure>\u003Cp>Click OK, and you'll see that the hardcoded string has been replaced by\u003C\u002Fp>\u003Cpre>\u003Ccode>System.out.println(myBundle.getString(\"hello.world\"));\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Here, we will manually edit the French translation's keys and values. Click on the Resource Bundle 'locales' and then press the command + arrow down keys to bring up a screen where you can include the French translation for the content, as shown below.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.18.54-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"915\" height=\"276\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.18.54-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.18.54-PM.png 915w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>In the next section, we'll use the locale class to get the default locale and then use that information to show the extracted strings. Locale.getDefault() would be added as a second parameter to the Resource.getBundle() method. \u003C\u002Fp>\u003Cpre>\u003Ccode>ResourceBundle myBundle = ResourceBundle.getBundle(\"locales\", Locale.getDefault());\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"setting-the-locale\">Setting the locale \u003Ca class=\"markdownit-header-anchor\" href=\"#setting-the-locale\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>According to \u003Ca href=\"https:\u002F\u002Fwww.oracle.com\u002Ftechnical-resources\u002Farticles\u002Fjavase\u002Flocale.html#using\">Oracle documentation\u003C\u002Fa>, Locale.getDefault() retrieves the default locale and returns the locale determined by the Java Virtual Machine (JVM) when it was first loaded. That is, the default locale is determined by the JVM based on the host environment.\u003C\u002Fp>\u003Cp>As shown in the screenshot, running the code returns the \u003Ccode>en\u003C\u002Fcode> locale of our properties. We can manually set our locale by using the Locale.setDefault() function at the top of our source code within the main function.\u003C\u002Fp>\u003Cpre>\u003Ccode>Locale.setDefault(new Locale(\"fr\", \"NG\"));\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>If we run the code again, we should see the \u003Ccode>fr\u003C\u002Fcode> translated strings as shown below. \u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.25.50-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"894\" height=\"446\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.25.50-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.25.50-PM.png 894w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"conclusion\">✔️ Conclusion \u003Ca class=\"markdownit-header-anchor\" href=\"#conclusion\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>In this article, we learned how string externalization works and the difference between localization and internationalization. We also learned how Qodana, a tool for analyzing code, helps IntelliJ localize software for a wider and more international audience. A Java application was utilized to test string externalization with Qodana. \u003C\u002Fp>\u003Cblockquote>The source code can be found in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMarienoir\u002FLocalazy-Blog\u002Ftree\u002Fmain\u002FQodana-HelloWorld\">GitHub repository\u003C\u002Fa>.\u003C\u002Fblockquote>",{"id":493,"status":8,"created_on":1915,"modified_on":1916,"icon":1917,"header":1918,"description":1919,"button_label":1920,"link":1921},"2022-03-17T12:23:03.000Z","2023-01-19T11:50:20.000Z","member","Enjoy localization on autopilot! 🚀","Grab the Autopilot plan and let Localazy translate your projects while you sleep. Automatically.","Take off","register",{"slug":1859,"id":1852,"uuid":1923,"title":1858,"html":1924,"comment_id":1852,"feature_image":1862,"featured":17,"visibility":1925,"email_recipient_filter":1926,"created_at":1927,"updated_at":1860,"published_at":1861,"custom_excerpt":1912,"codeinjection_head":7,"codeinjection_foot":7,"custom_template":7,"canonical_url":7,"authors":1928,"tags":1935,"primary_author":1974,"primary_tag":1975,"url":1976,"excerpt":1912,"reading_time":147,"access":17,"send_email_when_published":15,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"email_subject":7,"frontmatter":7,"dictionary":1875,"cta":1914,"plainTags":1863},"c91a60cc-620b-4683-91bd-022b4d48e9ba","\u003Ch2 id=\"%F0%9F%A4%94-what-is-qodana\">🤔 What is Qodana?\u003C\u002Fh2>\u003Cp>Qodana is a platform for monitoring code quality and evaluating code integrity. It incorporates all of the innovative features found in the JetBrains IDE into your CI\u002FCD pipelines. It helps development teams consistently deliver code that meets quality and industry standards.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F07\u002Fimage-41.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1089\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F07\u002Fimage-41.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F07\u002Fimage-41.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F07\u002Fimage-41.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F07\u002Fimage-41.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>\u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fqodana\u002F\">jetbrains.com\u002Fqodana\u003C\u002Fa>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch3 id=\"why-use-it\">Why use it?\u003C\u002Fh3>\u003Cp>Qodana provides a high-level overview of project quality, establishes quality checks, and monitors progress on these various checks. Qodana can perform three different types of analysis components.\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Static analysis\u003C\u002Fstrong>: This performs an automated codebase analysis.\u003C\u002Fli>\u003Cli>\u003Cstrong>Linters\u003C\u002Fstrong>: This component allows you to analyze code and identify duplicate functions or licenses that are incompatible.\u003C\u002Fli>\u003Cli>\u003Cstrong>Code inspections\u003C\u002Fstrong>: This linter component instantly analyzes code for specific issues.\u003Cbr>\u003C\u002Fli>\u003C\u002Fol>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1386\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-9.32.21-PM.png 2044w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>The diagram above depicts a typical workflow for Qodana.\u003C\u002Fp>\u003Col>\u003Cli>\u003Cstrong>Install Qodana\u003C\u002Fstrong>: Qodana is integrated into JetBrains IDE, so installing the Qodana plugin within your IDE is necessary.\u003C\u002Fli>\u003Cli>\u003Cstrong>Software configuration\u003C\u002Fstrong>: Qodana can be configured following your project's specifications.\u003C\u002Fli>\u003Cli>\u003Cstrong>Inspect code\u003C\u002Fstrong>: Inspections can be performed using the code analysis available.\u003C\u002Fli>\u003Cli>\u003Cstrong>Improve code\u003C\u002Fstrong>: Codes can be improved further based on the results of a Qodana inspection to meet project requirements and standards.\u003C\u002Fli>\u003Cli>\u003Cstrong>Repeat inspection\u003C\u002Fstrong>: Code inspection and improvement are both iterative processes.\u003C\u002Fli>\u003C\u002Fol>\u003Ch2 id=\"%F0%9F%94%8C-installation\">🔌 Installation\u003C\u002Fh2>\u003Cp>Qodana can be run locally on a PC or server or as part of a building or deployment process within a \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Ftags\u002Fci\">CI\u002FCD pipeline\u003C\u002Fa>.  Qodana can analyze projects written in Java, \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Ftags\u002Fkotlin\">Kotlin\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Ftags\u002Fphp\">PHP\u003C\u002Fa>, Python, TypeScript, \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Ftags\u002Fjavascript\">JavaScript\u003C\u002Fa>, .NET, and Golang. However, in this article, we will be analyzing a project written in Java programming language.\u003C\u002Fp>\u003Cp>Before installing Qodana, configuring the Java Development Kit (JDK) is essential, as Qodana runs only on certain versions. Qodana JVM Community's default version is JDK 17. Qodana JVM uses JDK 17, while Qodana for Community Android uses Amazon Corretto 11. Aside from these default versions, Qodana can run on various other versions, which can be found in the \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fqodana\u002Fconfigure-jdk.html\">documentation\u003C\u002Fa>.\u003C\u002Fp>\u003Cp> Qodana offers two options for installation:\u003C\u002Fp>\u003Col>\u003Cli>Using the Qodana Command Line Interface (CLI)\u003C\u002Fli>\u003Cli>The use of a Docker image\u003C\u002Fli>\u003C\u002Fol>\u003Cp>We will use the CLI in our project because it is the simplest way to get started. We would install Qodana CLI using Homebrew for macOS, but other installation options are available in the \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fqodana\u002F2023.1\u002Fquick-start.html\">official documentation\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>Enter the following command into your terminal:\u003C\u002Fp>\u003Cpre>\u003Ccode>brew install jetbrains\u002Futils\u002Fqodana\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Following installation, we will start the process by running the command in the root directory of the project you intend to analyze. This command generates a .\u003Cem>yaml\u003C\u002Fem> file containing all configuration files.\u003C\u002Fp>\u003Cpre>\u003Ccode>qodana init\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You would get a few prompts along the way, and you'd be able to choose the linter based on the IntelliJ edition you're using. The \u003Cem>\u003Ccode>jetbrains\u002Fqodana-jvm-community:2023.1\u003C\u002Fcode>\u003C\u002Fem> linter is based on the Intellij community edition, whereas the \u003Cem>\u003Ccode>jetbrains\u002Fqodana-jvm:2023.1\u003C\u002Fcode>\u003C\u002Fem> linter is based on the Intellij Ultimate edition. A \u003Cem>qodana.yaml\u003C\u002Fem> file is generated.\u003C\u002Fp>\u003Cp>When initialization is complete, the command below can be used to inspect the code. \u003C\u002Fp>\u003Cpre>\u003Ccode>qodana scan --show-report\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>A sample of the screenshot of the report page can be seen below:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1450\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F05\u002FScreenshot-2023-05-25-at-4.45.27-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"%E2%9C%82%EF%B8%8F-what-is-string-externalization\">\u003Cbr>✂️ What is String Externalization?\u003C\u002Fh2>\u003Cp>String externalization is a technique used to manage a project's textual content.\u003Cstrong> \u003C\u002Fstrong>It is the process of loading strings from an external source, such as a \u003Cem>.json\u003C\u002Fem> or\u003Cem> .properties\u003C\u002Fem> file. Software translation is a common practice among developers because it maintains translation effectively. This is due to the ease with which strings that are not hardcoded can be localized and translated into other languages.\u003C\u002Fp>\u003Ch3 id=\"how-to-perform-string-externalization\">How to perform string externalization?\u003C\u002Fh3>\u003Cp>String externalization differs by programming language. The Java programming language will be the focus of this article. String externalization entails the following steps:\u003C\u002Fp>\u003Col>\u003Cli>The first step in this process is identifying\u003Cstrong> hardcoded strings\u003C\u002Fstrong> in your project. These strings could be user output or error messages, among other formats. Content visible from a user interface can be identified as an externalizable string.\u003C\u002Fli>\u003Cli>\u003Cstrong>Create an external file\u003C\u002Fstrong>: According to our definition of string externalization, we must load strings from an external source. This is where we create the external source to load strings. The external file varies depending on the programming language; for example, Javascript uses a.json file with an object within it, whereas in Java, the external source is the resource bundles. The resource bundle contains.properties files for each language supported by the application. This concept will be discussed in depth in the subsequent section.\u003C\u002Fli>\u003Cli>\u003Cstrong>String Extraction\u003C\u002Fstrong>: String extraction is the process of extracting hardcoded strings into the default language.properties file. Strings are typically stored as a key-value pair. For instance, if the string \"Please input your correct credentials\" is hard coded, it is externalized as \u003Ccode>credential.message=Please input your correct credentials\u003C\u002Fcode> in the.properties file. The hard-coded string is subsequently replaced with \u003Ccode>credential.message\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Cstrong>Handle translation\u003C\u002Fstrong>: IntelliJ has an interesting feature that allows easy translation to other languages via an \u003Cem>en.properties\u003C\u002Fem> file. The value of the key \u003Ccode>credential.message\u003C\u002Fcode> is translated into the content of other languages using the other locales properties file.\u003C\u002Fli>\u003Cli>\u003Cstrong>Testing\u003C\u002Fstrong>: After making changes to the properties file, check that the application is working properly and that all externalized strings have been loaded correctly.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>When using Qodana as a code analysis tool, these procedures are simplified. The following section explains how Qodana guarantees proper externalization and localization of our project while also ensuring high-quality checks and code inspection.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%9A%A9-how-to-use-qodana-for-localization\">🚩 How to use Qodana for Localization?\u003C\u002Fh2>\u003Cp>Qodana is not a \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fterm\u002Fsoftware-localization\">localization tool\u003C\u002Fa>, but it facilitates seamless localization management. The strings to be translated are stored in properties files, which can then be bundled into a resource bundle. \u003C\u002Fp>\u003Cp>IntelliJ can then easily detect strings that require localization. Properties are text files with the \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fproperties\">.\u003C\u002Fa>\u003Cem>\u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fproperties\">properties\u003C\u002Fa>\u003C\u002Fem> extension that contain localized key-value pairs. These localized strings can be accessed and rendered in the user interface.\u003C\u002Fp>\u003Cp>You can use this \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fhelp\u002Fidea\u002Fcreating-and-running-your-first-java-application.html#write-code\">official documentation\u003C\u002Fa> to create a simple Java application that prints \"Hello, world!\" to the system output by following the instructions. If you have an existing Java application, we can proceed to the next section. \u003C\u002Fp>\u003Ch3 id=\"setup\">Setup\u003C\u002Fh3>\u003Cp>In the subsequent steps, the \u003Cstrong>Resource Bundle Editor Plugin\u003C\u002Fstrong> will be installed.\u003C\u002Fp>\u003Col>\u003Cli>In the settings menu (command+comma), choose plugins\u003C\u002Fli>\u003Cli>Go to the marketplace and search for \u003Cstrong>Resource Bundle Editor Plugin\u003C\u002Fstrong>\u003C\u002Fli>\u003Cli>Install this plugin, apply the changes, and click OK to close the dialog box. \u003Cbr>\u003C\u002Fli>\u003C\u002Fol>\u003Cp>In the following section, we will create our properties file. Create a new file with the \u003Cem>.properties\u003C\u002Fem> extension in the directory of your project, which in our case, is the src folder of the HelloWorld application. Our file would be called \u003Cem>locales_en.properties\u003C\u002Fem>. Repeat the process for \u003Cem>locales_fr.properties\u003C\u002Fem>. We can see that both property files have been merged into a \u003Cstrong>Resource Bundle&lt;locales&gt;.  \u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>A resource bundle is a collection of properties files with the same base name but distinct locale suffixes. Due to the similarity in their names, IntelliJ merged the two properties files into a resource bundle in our example.\u003C\u002Fp>\u003Ch3 id=\"finding-hardcoded-strings\">Finding hardcoded strings\u003C\u002Fh3>\u003Cp>Our project includes literal strings that are hard-coded, so we would enable the inspection for hard-coded strings to highlight them. These strings can be extracted and stored in the properties files.\u003C\u002Fp>\u003Cp>Open the settings (command+comma), expand Editor, and then click on inspections.  Navigate to \u003Cstrong>Java\u003C\u002Fstrong> and select and expand \u003Cstrong>Internationalization\u003C\u002Fstrong>. Select \u003Cstrong>Hardcoded strings\u003C\u002Fstrong> and apply the changes before clicking OK to close the dialog.\u003C\u002Fp>\u003Cp>The hard-coded strings should be highlighted in your code editor and displayed as a warning at the top right of the editor.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1886\" height=\"404\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.02.13-PM.png 1886w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Now that IntelliJ has assisted with code analysis and inspection of hard-coded literals, we want to extract the hard-coded strings into the properties file. Using an action called \u003Cem>i18n hard-coded string literal\u003C\u002Fem>, IntelliJ has made this possible.\u003C\u002Fp>\u003Ch3 id=\"externalize-hardcoded-strings\">Externalize hardcoded strings\u003C\u002Fh3>\u003Cp>Include the following code snippets just above the System.out.print() method in your source code. The snippets specify the resource bundle in which extracted strings will be stored.\u003C\u002Fp>\u003Cpre>\u003Ccode>ResourceBundle &lt;name&gt; = ResourceBundle.getBundle(\"&lt;bundle name&gt;\");\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Where name is a variable name and bundle name is the resource bundle's base name, which in our Java application is \u003Cem>locales\u003C\u002Fem>. \u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-java\">ResourceBundle myBundle = ResourceBundle.getBundle(\"locales\");\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Click on the hard-coded string and press the option key + enter key. You should see a list of actions. Choose the \u003Cstrong>i18nize hardcoded string literal\u003C\u002Fstrong>, and a dialog box appears.\u003C\u002Fp>\u003Cp>The fields are usually prefilled, but the property key and value can be changed to match our desired naming conventions.  Check that the properties file points to the locales_en.properties file and that \"Update all properties files\" is unchecked. This ensures that only the English strings are internationalized. We would manually translate the French string content. A screenshot is provided below.\u003Cbr>\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.11.25-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"442\" height=\"763\">\u003C\u002Ffigure>\u003Cp>Click OK, and you'll see that the hardcoded string has been replaced by\u003C\u002Fp>\u003Cpre>\u003Ccode>System.out.println(myBundle.getString(\"hello.world\"));\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Here, we will manually edit the French translation's keys and values. Click on the Resource Bundle 'locales' and then press the command + arrow down keys to bring up a screen where you can include the French translation for the content, as shown below.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.18.54-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"915\" height=\"276\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.18.54-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.18.54-PM.png 915w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>In the next section, we'll use the locale class to get the default locale and then use that information to show the extracted strings. Locale.getDefault() would be added as a second parameter to the Resource.getBundle() method. \u003C\u002Fp>\u003Cpre>\u003Ccode>ResourceBundle myBundle = ResourceBundle.getBundle(\"locales\", Locale.getDefault());\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"setting-the-locale\">Setting the locale\u003C\u002Fh3>\u003Cp>According to \u003Ca href=\"https:\u002F\u002Fwww.oracle.com\u002Ftechnical-resources\u002Farticles\u002Fjavase\u002Flocale.html#using\">Oracle documentation\u003C\u002Fa>, Locale.getDefault() retrieves the default locale and returns the locale determined by the Java Virtual Machine (JVM) when it was first loaded. That is, the default locale is determined by the JVM based on the host environment.\u003C\u002Fp>\u003Cp>As shown in the screenshot, running the code returns the \u003Ccode>en\u003C\u002Fcode> locale of our properties. We can manually set our locale by using the Locale.setDefault() function at the top of our source code within the main function.\u003C\u002Fp>\u003Cpre>\u003Ccode>Locale.setDefault(new Locale(\"fr\", \"NG\"));\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>If we run the code again, we should see the \u003Ccode>fr\u003C\u002Fcode> translated strings as shown below. \u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.25.50-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"894\" height=\"446\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.25.50-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002FScreenshot-2023-05-23-at-11.25.50-PM.png 894w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Ch2 id=\"%E2%9C%94%EF%B8%8F-conclusion\">✔️ Conclusion\u003C\u002Fh2>\u003Cp>In this article, we learned how string externalization works and the difference between localization and internationalization. We also learned how Qodana, a tool for analyzing code, helps IntelliJ localize software for a wider and more international audience. A Java application was utilized to test string externalization with Qodana. \u003C\u002Fp>\u003Cblockquote>The source code can be found in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMarienoir\u002FLocalazy-Blog\u002Ftree\u002Fmain\u002FQodana-HelloWorld\">GitHub repository\u003C\u002Fa>.\u003C\u002Fblockquote>","public","none","2023-05-11T19:38:23.000+02:00",[1929],{"id":1854,"name":1855,"slug":1856,"profile_image":1857,"cover_image":7,"bio":1930,"website":1931,"location":1932,"facebook":7,"twitter":1933,"meta_title":7,"meta_description":7,"url":1934},"I am a backend developer that focuses more on JavaScript technologies. I have a flair for writing and I am looking to improve my knowledge as a developer through technical writing.","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmary-okosun-a5195915b","Lagos, Nigeria","@marynoir_","https:\u002F\u002Fghost.localazy.com\u002Fauthor\u002Fmary-okosun\u002F",[1936,1939,1942,1945,1948,1953,1959,1964,1969],{"id":1937,"name":1865,"slug":1866,"description":7,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1938},"64c0d4e5047091000193db27","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fqodana\u002F",{"id":1940,"name":1868,"slug":1868,"description":7,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1941},"60f567ab6f8ebe0001bd80ec","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fi18n\u002F",{"id":1943,"name":1870,"slug":1871,"description":1870,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1944},"60a37fc7cf7b6a0001d1f0ea","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fdevtips\u002F",{"id":1946,"name":1873,"slug":1874,"description":1873,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1947},"60a37fc7cf7b6a0001d1f0fa","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fhowto\u002F",{"id":1949,"name":1950,"slug":1951,"description":7,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1952},"60fffb486f8ebe0001bd8ddd","[COMSHARE]","comshare","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcomshare\u002F",{"id":1954,"name":1955,"slug":1956,"description":1957,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1958},"60ba4b8fcf7b6a0001d1f9b9","[CTA] Enjoy localization on autopilot! 🚀","cta-16","Grab the brand new Autopilot plan and let Localazy translate your apps while you sleep. Automatically.","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcta-16\u002F",{"id":1960,"name":1961,"slug":1962,"description":1880,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1963},"60a37fc7cf7b6a0001d1f15c","[DICT] Integrated Development Environment (IDE)","term-63","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-63\u002F",{"id":1965,"name":1966,"slug":1967,"description":1893,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1968},"60a37fc7cf7b6a0001d1f15b","[DICT] IntelliJ IDEA","term-62","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-62\u002F",{"id":1970,"name":1971,"slug":1972,"description":1901,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1973},"60a37fc7cf7b6a0001d1f16c","[DICT] Internationalization (i18n)","term-79","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-79\u002F",{"id":1854,"name":1855,"slug":1856,"profile_image":1857,"cover_image":7,"bio":1930,"website":1931,"location":1932,"facebook":7,"twitter":1933,"meta_title":7,"meta_description":7,"url":1934},{"id":1937,"name":1865,"slug":1866,"description":7,"feature_image":7,"visibility":1925,"og_image":7,"og_title":7,"og_description":7,"twitter_image":7,"twitter_title":7,"twitter_description":7,"meta_title":7,"meta_description":7,"codeinjection_head":7,"codeinjection_foot":7,"canonical_url":7,"accent_color":7,"url":1938},"https:\u002F\u002Fghost.localazy.com\u002Fstring-externalization-and-testing-with-qodana\u002F",[1978,1998,2017],{"id":1979,"owner":1980,"created_by":7,"sort":7,"title":1985,"slug":1986,"modified_on":764,"created_on":1987,"pinned":15,"badge":7,"priority":1824,"main_image":1988,"status":8,"tags":1989,"dictionary":1997,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"6372308e04709100019374c9",{"id":1981,"first_name":1982,"last_name":764,"slug":1983,"avatar":1984},"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",[1990,1992,1993,1994],{"id":1991,"created_on":1828,"status":8,"label":545,"slug":544,"on_index_page":17},6183,{"id":319,"created_on":1828,"status":8,"label":1873,"slug":1874,"on_index_page":15},{"id":319,"created_on":1828,"status":8,"label":1870,"slug":1871,"on_index_page":17},{"id":278,"created_on":1828,"status":8,"label":1995,"slug":1996,"on_index_page":15},"Design","design",[],{"id":1999,"owner":2000,"created_by":7,"sort":7,"title":2005,"slug":2006,"modified_on":764,"created_on":2007,"pinned":15,"badge":7,"priority":1824,"main_image":2008,"status":8,"tags":2009,"dictionary":2016,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"67cec8e634f1ce00011a908c",{"id":2001,"first_name":2002,"last_name":764,"slug":2003,"avatar":2004},"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",[2010,2012,2013],{"id":319,"created_on":1828,"status":8,"label":2011,"slug":275,"on_index_page":15},"Plurals",{"id":319,"created_on":1828,"status":8,"label":1870,"slug":1871,"on_index_page":17},{"id":319,"created_on":1828,"status":8,"label":2014,"slug":2015,"on_index_page":15},"Guide","guide",[],{"id":2018,"owner":2019,"created_by":7,"sort":7,"title":2020,"slug":2021,"modified_on":764,"created_on":2022,"pinned":15,"badge":7,"priority":1824,"main_image":2023,"status":8,"tags":2024,"dictionary":2031,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"63dd1bf30470910001939f8b",{"id":1854,"first_name":1855,"last_name":764,"slug":1856,"avatar":1857},"The ultimate guide to Localazy API","the-ultimate-guide-to-localazy-api","2023-03-15T10:00:00.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F03\u002Fultimate-localazy-api-guide.png",[2025,2026,2029,2030],{"id":319,"created_on":1828,"status":8,"label":655,"slug":659,"on_index_page":15},{"id":319,"created_on":1828,"status":8,"label":2027,"slug":2028,"on_index_page":15},"Automated Localization","automated-localization",{"id":319,"created_on":1828,"status":8,"label":1873,"slug":1874,"on_index_page":15},{"id":319,"created_on":1828,"status":8,"label":2014,"slug":2015,"on_index_page":15},[],{"id":26,"sort":7,"created_on":2033,"name":2034,"cta_link":2035,"banner_image":2036},"2022-03-17T12:23:14.000Z","default","https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Flocalazy-ai",{"id":2037},"72defd59-a21d-44b9-822c-4e183ca62b99"]