[{"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-how-to-use-localazy-cli-to-streamline-your-localization-workflow":1857},[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-13 20:43:33",{"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":1843,"slug":1844,"modified_on":764,"created_on":1845,"pinned":15,"badge":7,"priority":1824,"main_image":1846,"status":8,"tags":1847,"dictionary":1856,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"69e62c567ab1270001ede506",{"id":1839,"first_name":1840,"last_name":764,"slug":1841,"avatar":1842},"6824a22d63350c0001d5a5d4","Stephanie Casale","stephanie-casale","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F03\u002FStephanie.png","4 Arabic localization assumptions that fail in the real world, told by a Marine Corps linguist","4-arabic-localization-assumptions-that-fail-told-by-a-marine-corps-linguist","2026-06-09T17:41:36.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2026\u002F06\u002FArabicLocal---Marine-Corps-5.png",[1848,1849,1853],{"id":319,"created_on":1828,"status":8,"label":217,"slug":1833,"on_index_page":17},{"id":1850,"created_on":1828,"status":8,"label":1851,"slug":1852,"on_index_page":15},646,"Business Development","business-development",{"id":319,"created_on":1828,"status":8,"label":1854,"slug":1855,"on_index_page":15},"Locales","locales",[],{"post":1858,"relatedPosts":2131,"banner":2177},{"id":1859,"owner":1860,"created_by":7,"sort":7,"title":1865,"slug":1866,"modified_on":1867,"created_on":1868,"pinned":17,"badge":7,"priority":1824,"main_image":1869,"status":8,"tags":1870,"dictionary":1878,"reading_time":394,"excerpt":2020,"og_title":764,"og_description":764,"og_image":764,"content":2021,"meta_title":764,"meta_description":764,"canonical":764,"cta":2022,"fullGhostPost":2030},"64347aaa047091000193b03f",{"id":1861,"first_name":1862,"last_name":764,"slug":1863,"avatar":1864},"61dc4e87df4bcb00010bd508","Mary Okosun","mary-okosun","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F12\u002Fokosun.png","How to use Localazy CLI to streamline your localization workflow","how-to-use-localazy-cli-to-streamline-your-localization-workflow","2026-04-16T16:20:43.000+02:00","2023-05-16T17:18:35.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fultimate-localazy-CLI-guide.png",[1871,1872,1875],{"id":319,"created_on":1828,"status":8,"label":643,"slug":411,"on_index_page":15},{"id":319,"created_on":1828,"status":8,"label":1873,"slug":1874,"on_index_page":15},"Continuous Localization","continuous-localization",{"id":319,"created_on":1828,"status":8,"label":1876,"slug":1877,"on_index_page":15},"Guide","guide",[1879,1908,1932,1949,1959,1969,1982,1997,2004,2013],{"id":378,"status":8,"owner":1880,"created_on":1881,"title":1882,"excerpt":1883,"content":1884,"slug":1885,"meta_title":1882,"meta_description":764,"canonical":764,"related_terms":1886},"2bac48a8-b362-482f-b574-3bc71dca4c5b","2022-03-17T12:22:55.000Z","Continuous Integration (CI)","Continuous integration (CI) is a way for developers to work together by combining their changes often to avoid problems later.","Continuous integration (CI) is a practice in software development where developers frequently combine, or \"merge,\" their work into a shared codebase, usually several times a day. This helps catch mistakes early and keeps the code working smoothly. When developers don't merge their work often, it can lead to \"integration hell,\" where fixing code conflicts takes more time and effort than writing the code itself. CI makes teamwork easier for developers and keeps projects manageable and on track.","continuous-integration",[1887,1889,1891,1893,1896,1899,1902,1905],{"id":319,"slug":1888},"externalized-string",{"id":445,"slug":1890},"intellij-idea",{"id":336,"slug":1892},"integrated-development-kit-ide",{"id":1894,"slug":1895},203,"no-code",{"id":1897,"slug":1898},219,"platform-engineering",{"id":1900,"slug":1901},220,"internal-developer-portal",{"id":1903,"slug":1904},221,"developer-onboarding-experience",{"id":1906,"slug":1907},222,"gitops",{"id":319,"status":8,"owner":1880,"created_on":1909,"title":1910,"excerpt":1911,"content":1912,"slug":1888,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":1913},"2026-05-12T07:09:23.000Z","Externalized string","Text separated from source code so it can be translated and reused across languages.","An externalized string is a piece of text stored outside the core codebase, usually in a resource file or localization file, that enables app developers to maintain translations. This separation allows developers and localization teams to manage, translate, and update text without touching the code itself. It’s a basic requirement for internationalizing software or digital products.\n\nWhen strings are hard-coded directly into the application, they cannot be detected or processed by translation tools. Externalizing them makes it possible to feed content into translation workflows, apply translation memory, and reuse strings across different parts of the app.\n\nString externalization is one of the first steps in making a product ready for international audiences. It makes collaboration between developers and translators much easier, reduces the risk of introducing bugs during translation, and supports content consistency across languages and platforms.\n\n### 📂 Benefits of externalized strings\n\n* Make content available for translation.\n* Keep source code clean and easier to maintain.\n* Support translation memory and consistency.\n* Prevent hard-coded text from blocking localization.\n* Allow content updates without redeploying the app.\n\nWithout externalized strings, localization tools can’t do their job. Treating text as data, rather than as part of the code, gives teams the option to work with it and translate it into the target languages needed. ",[1914,1917,1920,1923,1926,1929],{"id":1915,"slug":1916},340,"key-based-internationalization",{"id":1918,"slug":1919},79,"internationalization",{"id":1921,"slug":1922},171,"strings",{"id":1924,"slug":1925},256,"TODO",{"id":1927,"slug":1928},277,"string-catalog",{"id":1930,"slug":1931},344,"101-matching",{"id":1688,"status":8,"owner":1880,"created_on":1881,"title":1933,"excerpt":1934,"content":1935,"slug":1936,"meta_title":7,"meta_description":1937,"canonical":7,"related_terms":1938},"GNU gettext","Gettext is a library that was built to minimize the work of i18n and l10n. It works by extracting the strings directly from the source files and generating a template file.","`gettext` is simple and flexible package to use for [i18n](\u002Fdictionary\u002Finternationalization) and [l10n](\u002Fdictionary\u002Flocalization) of software with various utilities, [string externalization](\u002Fdictionary\u002Fexternalized-string) and plural support. This package offers to programmers, translators and even users, a well integrated set of tools and extensive [documentation](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002Fmanual\u002Fgettext.html). \n\n`gettext` is available for usage with various languages ([Python](\u002Fdictionary\u002Fpython), C, PHP, Ruby, [JavaScript](\u002Fjavascript) and many more) and most frameworks already have it with some support. You can check it [here](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgettext\u002F).\n\nIf you choose this route to prepare your project for internationalization and localization, you'll be in luck because Localazy supports `gettext`.\n\n\n","gnu-gettext","Gettext is a library that was built to minimize the work of i18n and l10n. It works by extracting the strings directly from the source files and generating a template file with externalized strings.",[1939,1940,1942,1943,1945,1946],{"id":5,"slug":1833},{"id":12,"slug":1941},"l10n",{"id":319,"slug":1888},{"id":1944,"slug":514},75,{"id":1918,"slug":1919},{"id":1947,"slug":1948},83,"python",{"id":336,"status":8,"owner":1880,"created_on":1909,"title":1950,"excerpt":1951,"content":1952,"slug":1892,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":1953},"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.",[1954,1956,1958],{"id":195,"slug":1955},"gradle",{"id":118,"slug":1957},"android-studio",{"id":445,"slug":1890},{"id":1613,"status":8,"owner":1880,"created_on":1960,"title":522,"excerpt":1961,"content":1962,"slug":521,"meta_title":7,"meta_description":7,"canonical":7,"related_terms":1963},"2022-03-17T12:22:56.000Z","JSON stands for JavaScript Object Notation and it's a widely used file format.","JSON is a lightweight format for storing and transporting data originally specified by Douglas Crockford in the early 2000s. It is often used when data is sent from a server to a web page.  It is \"self-describing\" and highly understandable, as it is easy for humans to read and write and for machines to parse and generate.\n\nThis programming language is independent but it is derived from the JavaScript\u002FECMAScript programming language and uses the conventions familiar to programmers of the C series of languages ​​(including C, C++, C#, Java, JavaScript, Perl, and Python).\n\nJSON is one of the best localizable file formats you can use to store your project's externalized strings. Localazy fully supports and lets you manage and translate your JSON files. \n\n## Further reading:\n- [Quick Start - JSON](https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fquick-start-json)\n- [File Format - JSON](https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fjson-format)\n- [JavaScript app localization with i18next and Localazy](https:\u002F\u002Flocalazy.com\u002Fblog\u002Fjavascript-app-localization-i18next-localazy)",[1964,1966,1967,1968],{"id":113,"slug":1965},"java",{"id":319,"slug":1888},{"id":1944,"slug":514},{"id":1947,"slug":1948},{"id":5,"status":8,"owner":1880,"created_on":1970,"title":217,"excerpt":1971,"content":1972,"slug":1833,"meta_title":7,"meta_description":7,"canonical":7,"related_terms":1973},"2022-03-17T12:22:54.000Z","The process of preparing a product for a particular market.","Localization (l10n) is an essential part of the **[internationalization](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Finternationalization)** process. During localization, a product is prepared to be used in a particular destination, language and culture. Part of the localization process consists of changing locales such as currency, text orientation, or date format; and aligning the product with local, technical, or legislative requirements.\n\nA crucial part of localization is **[translation](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Ftranslation\u002F)**.\n\nLocalization is the process of adapting an internationalized product to meet the specific needs of a target market by translating it into the native language of that market. This includes translating the user interface, text, graphics, and other content to match the specific target locale.\n\nThe goal of localization is to provide an optimal user experience for the target market, as well as to make the product accessible to a wider audience. This process often involves more than just translation, and may include adjusting graphics, changing text length to accommodate different writing systems, and modifying the product's layout to fit cultural differences.\n\nInternationalization and localization are essential components of **[globalization](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fglobalization)** (g11n) and play a key role in expanding a product's reach and success. It's important to ensure that any Creative Commons attribution is considered during localization to prevent copyright infringement.\n\nBy localizing products, companies can reach new markets and increase their customer base, ultimately helping their business grow and thrive. The number of letters in the term i18n and l10n refers to the number of characters between the first and last letters in the term, and is used as a shorthand for internationalization and localization, respectively.",[1974,1975,1977,1979,1981],{"id":5,"slug":1833},{"id":22,"slug":1976},"translation",{"id":101,"slug":1978},"gilt",{"id":154,"slug":1980},"translation-management-system-tms",{"id":1918,"slug":1919},{"id":244,"status":8,"owner":1880,"created_on":1983,"title":1984,"excerpt":1985,"content":1986,"slug":316,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":1987},"2026-05-12T07:09:22.000Z","Machine translation (MT)","The process of translating using computational linguistics.","A machine translation engine is a software tool that translates a text from one language to another without the help of human translators.\n\nMachine translation, also known as MT, is widely used as the first round of translations and is frequently very effective for short strings. However, it can produce unsatisfactory results when context knowledge is required, and thus, a human review is always advised.\n\n### 💬 Methods used in machine translation\n\nMachine translation engines recently experienced huge improvements related to the advanced use of neural networks, but they generally rely on these different methods:\n\n* [Statistical machine translation (SMT)](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fstatistical-machine-translation\u002F \"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fstatistical-machine-translation\u002F\")\n* [Example-based machine translation (EBMT)](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fexample-based-machine-translation \"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fexample-based-machine-translation\")\n* [Hybrid machine translation (HMT)](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fhybrid-machine-translation \"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fhybrid-machine-translation\")\n* [Neural machine translation (NMT)](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fneural-machine-translation\u002F \"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fneural-machine-translation\u002F\")\n\nNeural machine translation (used by [AI-powered translation](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fai-powered-translation) engines) is the most sophisticated type of instant translation today. It uses machine learning to improve its translation capabilities. As the engine translates more text with each request, the better results it produces with time by learning. Most instant translation services use this technology.\n\n### 🔍 What's the difference between HAMT and MAHT?\n\nWithin the realm of machine translation, it’s important to distinguish between **Human-Assisted Machine Translation (HAMT)** and **Machine-Assisted Human Translation (MAHT)**:\n\n* [**Human-Assisted Machine Translation (HAMT)**](\u002Fdictionary\u002Fhuman-assisted-mt): This process involves a human reviewing translations generated by machine translation (MT) engines. It is also known as MT plus post-editing and\u002For pre-editing. The machine handles the initial translation, which is then edited by a human to improve accuracy and context. This approach is useful for projects with repetitive content and where budget or time constraints are significant.\n* [**Machine-Assisted Human Translation (MAHT)**](\u002Fdictionary\u002Fmaht): In this method, human translators use computer software to aid their work. Translators receive machine translation suggestions, but they decide how to use them. This approach allows for high translation accuracy while benefiting from features like translation glossaries and memories, which enhance the efficiency and consistency of the translation process.\n\n### 🦾 MT engines available in Localazy \n\nLocalazy users can use the most popular and advanced [MT engines](https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fmachine-translation \"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fmachine-translation\") to translate their content:\n\n* Amazon Translate (available for free)\n* Google Translate\n* DeepL\n* Azure Translator\n* OpenAI (ChatGPT), with your own API key\n\n> *Users can unlock different engines depending on the plan they buy. See our [pricing](https:\u002F\u002Flocalazy.com\u002Fpricing) and [docs](https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fadditional-mt-engines?srsltid=AfmBOoo--lURSBHDiHEoe3rYL3xSQHaZcTsl6kd7wwUYRGC-sGTTmG94 \"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fadditional-mt-engines?srsltid=AfmBOoo--lURSBHDiHEoe3rYL3xSQHaZcTsl6kd7wwUYRGC-sGTTmG94\") for more details.*\n\n### 📚 Additional resources:\n\n* [What is machine translation?](https:\u002F\u002Fwww.gala-global.org\u002Fwhat-machine-translation)\n* [History of machine translation](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHistory_of_machine_translation)",[1988,1990,1992,1994],{"id":441,"slug":1989},"maht",{"id":1681,"slug":1991},"mtpe-machine-translation-post-editing",{"id":1615,"slug":1993},"deepl",{"id":1995,"slug":1996},136,"human-assisted-mt",{"id":1526,"status":8,"owner":1880,"created_on":1960,"title":1998,"excerpt":1999,"content":2000,"slug":2001,"meta_title":7,"meta_description":7,"canonical":7,"related_terms":2002},"PO & POT format","PO and POT are text-based file formats commonly used for localization purposes.","**PO** stands for Portable Object file.\n**POT** stands for Portable Object Template.\n\nBoth are text-based formats used for localization in various applications. PO and POT files are, for example, used by the [gettext](\u002Fdictionary\u002Fgnu-gettext) library and WordPress CMS to handle multilingual software and websites.\n\nYou can use Localazy to manage translations of your [PO](\u002Fpo) and [POT files](\u002Fpot) seamlessly. \n\n## Further reading\n- [Localazy CLI Documentation - PO\u002FPOT format](\u002Fdocs\u002Fcli\u002Fpo-format)\n- [How to make a multi-language application in C](\u002Fblog\u002Fmake-multi-language-application-in-c-gettext-localazy)\n- [Automatic data reports in multiple languages with Python, Gettext and Localazy](\u002Fblog\u002Fautomatic-data-reports-multiple-languages-python-gettext-localazy)","po-and-pot-format",[2003],{"id":1688,"slug":1936},{"id":154,"status":8,"owner":1880,"created_on":1881,"title":2005,"excerpt":2006,"content":2007,"slug":1980,"meta_title":764,"meta_description":764,"canonical":764,"related_terms":2008},"Translation Management System (TMS)","A software for translation process automation.","TMS help increase production efficiency by eliminating, automating, and delegating both one-time and repetitive tasks during the translation process. Translation management systems help teams manage multilingual content, assign tasks, track progress, and maintain translation quality. TMS platforms are widely used in localization projects to handle large amounts of text efficiently. \n\nThey support features like translation memories, glossaries, and automated workflows. This makes the translation process faster and more consistent, especially for businesses that need content in multiple languages. [CAT tools](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fcat-tool) are a subtype of TMSs.\n\nTranslation management systems [like Localazy](https:\u002F\u002Flocalazy.com\u002Fterm\u002Ftranslation-management-system) usually consist of two parts. One takes care of workflow management and the second one aids with the translation process using different technologies and methods, such as:\n\n* [Machine translation](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fmachine-translation)\n* [Translation Memory](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Ftranslation-memory)\n\nThese systems are ideal for large-scale translation projects, as they provide a vast range of features. \n\n## ☝️ Top features of a TMS:\n\n* Centralizes translation tasks in one platform.\n* Assigns jobs to translators and tracks progress.\n* Uses a translation memory to avoid repeated translations.\n* Ensures consistency with built-in term bases.\n* Helps companies scale content across languages.\n\nWith a TMS, teams can work together smoothly to manage translations. It provides the tools needed to keep projects on track and ensures high-quality results every time. However, they can be pricey for single users or small teams who may benefit from them as well, especially for [quality assurance](https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fqa-quality-assurance) processes.",[2009,2010,2012],{"id":147,"slug":333},{"id":216,"slug":2011},"cat-tool",{"id":244,"slug":316},{"id":2014,"status":8,"owner":1880,"created_on":1881,"title":529,"excerpt":2015,"content":2016,"slug":528,"meta_title":7,"meta_description":7,"canonical":7,"related_terms":2017},100,"XLIFF stands for XML Localization Interchange File Format.","[XLIFF](\u002Fxliff) is an XML-based parallel text format used in localization processes by many frameworks and CAT Tools. XLIFF is an open standard maintained by [OASIS Open](https:\u002F\u002Fwww.oasis-open.org\u002F). \n\n**Further reading**:\n- [XLIFF Version 2.1 OASIS Standard](http:\u002F\u002Fdocs.oasis-open.org\u002Fxliff\u002Fxliff-core\u002Fv2.1\u002Fos\u002Fxliff-core-v2.1-os.html)\n- [Quick Start - XLIFF](\u002Fdocs\u002Fcli\u002Fquick-start-xliff)",[2018,2019],{"id":5,"slug":1833},{"id":216,"slug":2011},"Discover the possibilities of the most advanced and developer-friendly CLI for software translation management & automation. Learn everything you need to know about Localazy CLI in this ultimate guide! ","\u003Ch2 id=\"what-is-localazy-cli\">❓ What is Localazy CLI? \u003Ca class=\"markdownit-header-anchor\" href=\"#what-is-localazy-cli\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>The \u003Ca href=\"\u002Ffeatures\u002Fcli\">Localazy CLI\u003C\u002Fa> is a command-line interface for uploading files to the Localazy platform and downloading translations back into your project, allowing for various automatizations and advanced manipulation of the data you upload and download.\u003C\u002Fp>\u003Cp>It is easy to integrate into any build chain or \u003Ca href=\"\u002Fdictionary\u002Fcontinuous-integration\">CI\u002FCD\u003C\u002Fa> system (e.g., \u003Ca href=\"\u002Ftags\u002Fgithub\">GitHub Actions\u003C\u002Fa>), and it supports complex projects with multiple modules, libraries, and products. CLI can also help you handle uploading existing translations in case of migration from other solutions.\u003C\u002Fp>\u003Ch2 id=\"installation\">👩‍💻 Installation  \u003Ca class=\"markdownit-header-anchor\" href=\"#installation\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>The first step is to download and install the Localazy CLI. Depending on the requirements of your system and the preferences of the project, the Localazy CLI offers multiple installation options to choose from. \u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"\u002Fdocs\u002Fcli\u002Finstallation\">CLI: Installation\u003C\u002Fa>\u003C\u002Fblockquote>\u003Cp>The Localazy CLI can be installed on multiple platforms as a native application (including Windows, Linux, and macOS), a Java JAR, an npm package, and a Docker image. In this guide, the Localazy CLI will be installed from the npm repository:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>npm install -g @localazy\u002Fcli\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy CLI Installation\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The typical \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fcommand-line-options\">Localazy CLI usage pattern\u003C\u002Fa> across all platforms is as follows:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy [command] [common options] [groups] \u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy CLI command options\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>This article will cover the most important command options available in the Localazy command line interface.\u003C\u002Fp>\u003Ch2 id=\"configuration\">🕹️ Configuration \u003Ca class=\"markdownit-header-anchor\" href=\"#configuration\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>To demonstrate the options of the Localazy CLI, we will use the Localazy features to translate a simple React web page. The code for the front end can be found in this \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMarienoir\u002FLocalazy-Blog\u002Ftree\u002Fmain\u002Flocalazy-cli\">repository\u003C\u002Fa>. \u003C\u002Fp>\u003Ch3 id=\"simple-upload-configuration-for-json\">Simple upload configuration for JSON \u003Ca class=\"markdownit-header-anchor\" href=\"#simple-upload-configuration-for-json\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>In order to use the CLI commands with our Localazy project, we must authorize our access to the project using the \u003Cstrong>writeKey\u003C\u002Fstrong> and \u003Cstrong>readKey\u003C\u002Fstrong> in our configuration.\u003C\u002Fp>\u003Cp>Create a new project from your \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fmy\u002Fdashboard\">Dashboard\u003C\u002Fa> or obtain the keys for your project by navigating to \u003Cem>Project - Settings - Access keys\u003C\u002Fem> in the menu.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-14.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1600\" height=\"722\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-14.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-14.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-14.png 1600w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>In your application's root directory, create a configuration script named \u003Cstrong>localazy.json\u003C\u002Fstrong> that instructs the CLI tool on which files to upload and how to handle downloaded translations. Add the following snippets of code:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \"writeKey\": \"app-write-key\",\n \"readKey\": \"app-read-key\",\n\n\n \"upload\": {\n   \"type\": \"json\",\n   \"files\": \"public\u002Flocales\u002Fen\u002Ftranslation.json\"\n },\n\n\n \"download\": {\n   \"files\": \"public\u002Flocales\u002Fcs\u002Ftranslation.json\"\n }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The above JSON file contains a \u003Cstrong>writeKey\u003C\u002Fstrong> and a \u003Cstrong>readKey\u003C\u002Fstrong> you can find in the settings mentioned above. The upload command configuration then includes the \u003Ccode>type\u003C\u002Fcode> filed, which specifies that the file to be uploaded is a JSON file, and the \u003Ccode>files\u003C\u002Fcode> field, which contains the path directory of the translation file.\u003C\u002Fp>\u003Cp>It can also specify how to collect files for uploading to the Localazy platform and, optionally, what metadata to include.\u003C\u002Fp>\u003Cp>In the \u003Cstrong>public\u002Flocales\u002Fen\u003C\u002Fstrong> folder is a translation file containing text to be translated. Execute the following command at the terminal:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy upload\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy upload command\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cblockquote>Learn more about \u003Ca href=\"\u002Fdocs\u002Fcli\u002Fupload-reference\">CLI: Upload Reference\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"translate-your-strings-with-localazy\">Translate your strings with Localazy \u003Ca class=\"markdownit-header-anchor\" href=\"#translate-your-strings-with-localazy\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Navigate to the Translations tab and click on the \u003Cem>Source language \u003C\u002Fem>row. The content from your uploaded JSON should appear in the source language table.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-15.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1600\" height=\"892\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-15.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-15.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-15.png 1600w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Now, add a new language from the \u003Cem>Translations \u003C\u002Fem>page so you can translate the content using Localazy. Let's say we want to offer 🇨🇿 \u003Cstrong>Czech (cs)\u003C\u002Fstrong> as a language option on this web page. Once the language has been added, you can \u003Ca href=\"\u002Fdocs\u002Fgeneral\u002Ftranslating-strings\">begin translating your strings\u003C\u002Fa>.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-16.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1325\" height=\"245\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-16.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-16.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-16.png 1325w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Localazy offers three methods from which to choose and combine for your project's translation:\u003C\u002Fp>\u003Col>\u003Cli>💪🏻 \u003Cstrong>Translate on your own or invite contributors\u003C\u002Fstrong> - You can \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-strings\">start translating on your own\u003C\u002Fa> and use our built-in suggestion system.\u003C\u002Fli>\u003Cli>🦾 \u003Cstrong>Translate everything in bulk via machine translation\u003C\u002Fstrong> - With the Localazy \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ftiers\u002Fautopilot\">Autopilot plan\u003C\u002Fa>, you can instantly translate all strings by \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fadditional-mt-engines#mt-pre-translate\">running a machine translation over the content\u003C\u002Fa>. This is great for the first iteration and localization testing of any project.\u003C\u002Fli>\u003Cli>🚩 \u003Cstrong>Fully automate the translation process with the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fcontinuous-localization-team\">Continuous Localization\u003C\u002Fa> services\u003C\u002Fstrong> - Once your Localazy integration is set up, you can order translations from our vetted translators and get your project translated by professionals automatically. The service is also proactive, so you don't have to micromanage translators, and you can visit Localazy only once in a while to check the progress.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Once you translate everything, you can view the translations by clicking on the name of the language in the \u003Cem>Translations\u003C\u002Fem> view.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-17.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1600\" height=\"914\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-17.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-17.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-17.png 1600w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-strings\">translating strings in Localazy\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"download-translations-using-the-cli\">Download translations using the CLI \u003Ca class=\"markdownit-header-anchor\" href=\"#download-translations-using-the-cli\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>To download the translations, you can now use the download command. Execute the following command at the terminal:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy download\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy download command\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The download code snippets can be found within the localazy.json file, just below the upload object.\u003C\u002Fp>\u003Cp>The download object specifies where the translated files should be saved. The translated file translation.json would be saved in the \u003Cstrong>public\u002Flocales\u002Fcs\u003C\u002Fstrong> folder in our example.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode class=\"language-json\">{\n \"about\": \"Jsem vývojář back-end se sídlem v Lagosu, Nigérie. Jsem softwarový inženýr zaměřený na výsledky věnovaný tvorbě, udržování, testování, a ladění komponent a funkcí na straně serveru. To zahrnuje základní aplikační logiku, databáze, integraci dat a aplikací, API a další procesy probíhající v zákulisí aplikace nebo systému front-end. Zajímám se také o využití analytických dovedností a silnou pozornost věnovanou detailům s cílem poskytovat originální a efektivní webová řešení a zajistit pozitivní uživatelský zážitek. Baví mě psaní a čtení knih. \",\n \"address\": \"732 Duffield Street, Nicut, Havaj, 8781\",\n \"age\": 37,\n \"company\": \"MARTGO\",\n \"email\": \"vickywest@martgo.com\",\n \"eyeColor\": \"Hnědá\",\n \"gender\": \"Ženský\",\n \"name\": \"Mary Okosun\"\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Translated JSON file\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The react package \u003Cstrong>react-i18next\u003C\u002Fstrong> will be used to handle changes to translated languages. You can now switch between languages in the web page's user interface and see the page's content adapt based on the language you choose.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1146\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The English translation for the example React application\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1144\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The Czech translation for our simple React application\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cblockquote>Learn more about \u003Ca href=\"\u002Fdocs\u002Fcli\u002Fdownload-reference\">CLI: Download Reference\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"upload-existing-translations\">Upload existing translations \u003Ca class=\"markdownit-header-anchor\" href=\"#upload-existing-translations\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>When making changes to your translations, it's recommended to only modify and upload the source language and use the Localazy platform to manage the rest. But, in some instances, like migration from other tools, we might want to upload files that have already been translated elsewhere. \u003C\u002Fp>\u003Cp>The first step is to specify the file's language. The source language file should then be separated from the translated files. The best practice is to upload the source language and other translations separately using groups.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    \"files\": [\n      {\n        \"pattern\": \"src\u002Fresources\u002Flocalization\u002Fstrings_en.json\",\n        \"lang\": \"inherited\"\n      },\n      {\n        \"group\": \"existing\",\n        \"pattern\": \"src\u002Fresources\u002Flocalization\u002Fstrings_*.json\",\n        \"excludes\": [\"src\u002Fresources\u002Flocalization\u002Fstrings_en.json\"],\n        \"lang\": \"${autodetectLang}\"\n      }   \n    ]\n \n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The above code snippets define two groups. The first group uploads the \u003Cstrong>strings_en.json\u003C\u002Fstrong> source file, while the second group, named \u003Cstrong>existing\u003C\u002Fstrong>, uploads everything besides the source language.\u003C\u002Fp>\u003Cp>Invoke \u003Ccode>localazy upload existing\u003C\u002Fcode> to upload all existing translations and then simply use \u003Ccode>localazy upload\u003C\u002Fcode> to upload changes to the source language.\u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fexisting-translations\">Uploading Existing Translations with Localazy CLI\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch2 id=\"advanced-configurations\">🚀 Advanced configurations \u003Ca class=\"markdownit-header-anchor\" href=\"#advanced-configurations\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>The Localazy CLI offers many advanced options to further customize your workflow and adapt the features to your project.\u003C\u002Fp>\u003Ch3 id=\"variables\">Variables \u003Ca class=\"markdownit-header-anchor\" href=\"#variables\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Variables can be used to construct output paths for translated files and to send data along with files for conditions or transformations to the server. Variables are always referenced with \u003Cstrong>$variable_name\u003C\u002Fstrong>. Only letters and the underscore character are permitted in variable names. It is important to note that a variable's value is always a string.\u003C\u002Fp>\u003Cp>There are a few variables that primarily serve major functions, such as the \u003Cstrong>upload variables\u003C\u002Fstrong> and the \u003Cstrong>download variables\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch4 id=\"upload-variables-are-accessible-when-the-localazy-cli-is-collecting-files-for-server-upload\">Upload variables are accessible when the Localazy CLI is collecting files for server upload.\u003C\u002Fh4>\u003Cp>Examples of upload variables include the following:\u003C\u002Fp>\u003Cp>\u003Ccode>$file\u003C\u002Fcode> - This is the filename without the path of the translated file, such as \u003Cstrong>translation.json\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>$path\u003C\u002Fcode> - This is the path to the translated file without the file name, for example, \u003Cstrong>public\u002Flocales\u002Fen\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>$fullPath\u003C\u002Fcode> - This is the full path to the translated file, including the file name, for example, \u003Cstrong>public\u002Flocales\u002Fen\u002Ftranslation.json\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch4 id=\"download-variables-become-available-when-the-localazy-cli-is-processing-downloaded-translated-files\">Download variables become available when the Localazy CLI is processing downloaded translated files. \u003C\u002Fh4>\u003Cp>It is important to upload accurate metadata, as the majority of download variables are those that were previously sent during file uploading.\u003C\u002Fp>\u003Cp>Examples of the download variables include:\u003C\u002Fp>\u003Cp>\u003Ccode>${fileExt}\u003C\u002Fcode>  - This is the file extension, e.g., \u003Cstrong>json\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>\u003Ccode>$languageCode\u003C\u002Fcode> - This is the language code for the translated file, such as \u003Cstrong>cs\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>$fullPath\u003C\u002Fcode> - This is the full path to the translated file, including the file name, for example, \u003Cstrong>public\u002Flocales\u002Fen\u002Ftranslation.json\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fvariables\">using variables in your CLI configurations\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"transformations\">Transformations \u003Ca class=\"markdownit-header-anchor\" href=\"#transformations\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Transformations enable the processing of input variables and the inference of new variables. This is very beneficial for automating the workflow. For example, a language code can be obtained from a file's name or path.\u003C\u002Fp>\u003Cp>In the following code snippets, a new variable called \u003Ccode>path_lang\u003C\u002Fcode> is created from the source string \u003Ccode>$path\u003C\u002Fcode> using a couple of operations. These operations are performed in a specific order, with the subsequent operation being performed on the result of the previous one.\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002Flocalazy.json\n{\n  \"transformations\": [\n    \n    {\n        \"name\": \"path_lang\",\n        \"source\": \"${path}\",\n        \"operations\": [\n          \"substringAfter: .\u002F\",\n          \"substringBefore: \u002F\",\n          \"remove: translation-\"\n        ]\n    }\n \n  ]\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Using the code snippets above, for example, if the path is \u003Cstrong>.\u002Ftranslation-cs\u002Ftest\u003C\u002Fstrong> and the language is required for an upload command, the language can be retrieved from the path.  \u003C\u002Fp>\u003Cul>\u003Cli>The operation \u003Ccode>substringAfter:.\u002F\u003C\u002Fcode> returns the substring after the first occurrence of the string specified as a parameter, resulting in \u003Cstrong>translation-cs\u002Ftest\u003C\u002Fstrong>.\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fli>\u003Cli>The operation \u003Ccode>substringBefore: \u002F\u003C\u002Fcode> returns the substring that comes before the first occurrence of the string given as a parameter, which gives \u003Cstrong>translation-cs\u003C\u002Fstrong>. \u003C\u002Fli>\u003Cli>The operation \u003Ccode>remove: translation-\u003C\u002Fcode> deletes all occurrences of the string given as a parameter, returning \u003Ccode>cs\u003C\u002Fcode>, which is then assigned to the variable \u003Ccode>path_lang\u003C\u002Fcode>. \u003C\u002Fli>\u003C\u002Ful>\u003Cp>This variable can be used in the upload\u002Fdownload section in the future.\u003C\u002Fp>\u003Cblockquote>There are \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Ftransformations#operations\">several other operations available\u003C\u002Fa>, which are detailed in the docs.\u003C\u002Fblockquote>\u003Ch3 id=\"excluding-keys\">Excluding Keys \u003Ca class=\"markdownit-header-anchor\" href=\"#excluding-keys\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>During upload and format conversion, keys can be included or excluded. For file uploads, it is possible to filter out sensitive or unwanted strings, and it is defined directly in the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fupload-reference\">upload section\u003C\u002Fa>. \u003C\u002Fp>\u003Cp>For \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fformat-conversions\">format conversion\u003C\u002Fa>, it is possible to filter out strings that do not need to be included in the converted file (e.g., platform-specific texts), and it is defined separately for each action. Strings are always filtered according to their keys' rules.\u003C\u002Fp>\u003Cp>These filtering rules can be specified using \u003Cstrong>keySeparator\u003C\u002Fstrong>, \u003Cstrong>includeKeys\u003C\u002Fstrong>, and \u003Cstrong>excludeKeys\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>The \u003Cstrong>keySeparator\u003C\u002Fstrong> is used to create structured keys for includeKeys and excludeKeys. \u003C\u002Fp>\u003Cblockquote>A period (.) is the default value for a keySeparator. \u003C\u002Fblockquote>\u003Cp>Each rule for includeKeys and excludeKeys has the format \u003Cstrong>OPERATION:parameter\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"keySeparator\": \".\",\n  \"includeKeys\": [\"MATCH:my_key\"],\n  \"excludeKeys\": [\"PREFIX:my_key\"]    \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>In the above code snippets, the includeKeys rule is only valid if the key exactly matches \u003Cstrong>my_key\u003C\u002Fstrong>. During upload or format conversion, all keys with a prefix of \u003Cstrong>my_key\u003C\u002Fstrong> are excluded.\u003C\u002Fp>\u003Cp>If includeKeys is empty or missing, all texts are processed except those excluded by excludeKeys.\u003C\u002Fp>\u003Cp>Only explicitly included texts are processed if includeKeys is not empty.\u003C\u002Fp>\u003Cp>The rules in excludeKeys are more important than those in includeKeys. That is, if the same text matches a rule in both includeKeys and excludeKeys, it is ignored.\u003C\u002Fp>\u003Cblockquote>Find more detailed examples and learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fexcluding-string-keys\">Excluding String Keys with Localazy CLI\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"format-conversions\">Format Conversions \u003Ca class=\"markdownit-header-anchor\" href=\"#format-conversions\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>By including a conversion section in your localazy.json file, translated files can be converted between different formats. \u003C\u002Fp>\u003Cblockquote>Please note that the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fformat-conversions-feature\">Format Conversions feature\u003C\u002Fa> is available only with the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ftiers\u002Fprofessional\">Professional Plan\u003C\u002Fa> and above.\u003C\u002Fblockquote>\u003Cp>Additionally, you can filter content, modify how plurals and string arrays are stored, convert files to multilingual formats, etc. The conversion section functions similarly to the download section, and the same variables can be used. Conversions are processed alongside downloading when localazy download is invoked. If only conversions are required, you may omit the download section from your configuration file. Additionally, groups can be used to separately process downloads and conversions.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n\t\"conversion\": {\n        \"actions\": {\n          \"group\": \"convert-files\",\n          \"output\": \"converted\u002F${file}\",\n          \"conditions\": \"startWith: ios_, ${file}\",\n          \"changeExtension\": \"json\",\n          \"type\": \"json-multilingual\",\n          \"pluralType\": \"plural_icu\",\n          \"forcePluralType\": true,\n          \"filterArray\": true\n        }\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>From the snippets above,\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>group\u003C\u002Fstrong>: This code is only executed when the \u003Ccode>localazy download convert-files\u003C\u002Fcode> command is invoked. \u003C\u002Fli>\u003Cli>\u003Cstrong>conditions\u003C\u002Fstrong>: It only applies to files whose names begin with ios_.\u003C\u002Fli>\u003Cli>\u003Cstrong>type &amp;&amp; output\u003C\u002Fstrong>: The files are converted to multilingual JSON and saved in \u003Ccode>converted\u002F$file\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Cstrong>changeExtension\u003C\u002Fstrong>: The extension of such files is changed to json; for example, \u003Cstrong>ios_menu.xml\u003C\u002Fstrong> is saved as \u003Cstrong>ios_menu.json\u003C\u002Fstrong>.\u003C\u002Fli>\u003Cli>\u003Cstrong>pluralType &amp;&amp; forcePluralType\u003C\u002Fstrong>: All plurals are forced to be in plural_icu format.\u003C\u002Fli>\u003Cli>\u003Cstrong>filterArray\u003C\u002Fstrong>: String arrays are all filtered out.\u003C\u002Fli>\u003C\u002Ful>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fformat-conversions\">CLI: Format Conversions in the documentation\u003C\u002Fa>.\u003C\u002Fblockquote>\u003Ch2 id=\"file-formats\">🗂️ File Formats \u003Ca class=\"markdownit-header-anchor\" href=\"#file-formats\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Files scheduled for upload to Localazy can be in a variety of formats. Localazy supports over 25 file formats and their variants. Some of the most commonly used formats are detailed further below. \u003C\u002Fp>\u003Cdiv class=\"kg-card kg-callout-card kg-callout-card-blue\">\u003Cdiv class=\"kg-callout-emoji\">📎\u003C\u002Fdiv>\u003Cdiv class=\"kg-callout-text\">See the list of \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fsupported-file-formats\">all supported file formats\u003C\u002Fa>.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Ch3 id=\"popot\">PO\u002FPOT \u003Ca class=\"markdownit-header-anchor\" href=\"#popot\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>\u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fpo-format\">PO and POT\u003C\u002Fa> are text-based formats used for localization in a variety of applications, including localization.\u003C\u002Fp>\u003Cp>PO is an abbreviation for \u003Cstrong>Portable Object File\u003C\u002Fstrong>. POT is an abbreviation for \u003Cstrong>Portable Object Template\u003C\u002Fstrong>. The \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fgnu-gettext\">gettext library\u003C\u002Fa> and WordPress CMS, for instance, use PO and POT files to manage multilingual software and websites.\u003C\u002Fp>\u003Cp>Localazy allows for the seamless management of PO and POT file translations. An example of a PO file is the following:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>msgid \"This is the original text\"\nmsgstr \"The translated content comes here\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>An example of a PO file\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The upload object in the localazy.json file has a \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fupload-reference#upload-configuration\">features configuration\u003C\u002Fa> that can have a \u003Ccode>use_key_for_content\u003C\u002Fcode>  enabled. This indicates that the msgid should be used as as content when msgstr is empty.\u003C\u002Fp>\u003Cpre>\u003Ccode>msgid \"Sorry, comments are closed for this item.\"\nmsgstr \"\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"use_key_for_content\"],  \n  } \n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>When working with empty translations, there are two options you can use in features in the upload section.\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>ignore_blank_content\u003C\u002Fstrong>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Empty translations in the input file are considered valid translations by default. Using an empty translation is a valid case for a variety of reasons. When this option is enabled, translations that are empty are filtered out, and the string is considered untranslated.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"ignore_blank_content\"],  \n  } \n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cul>\u003Cli>\u003Cstrong>empty_untranslated\u003C\u002Fstrong>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Using \u003Ccode>empty_untranslated\u003C\u002Fcode> instructs Localazy to render untranslated strings as empty translations. Empty translations in the input file are considered valid translations by default. Using an empty translation is a valid case for a variety of reasons. When this option is enabled, translations that are empty are filtered out, and the string is considered untranslated.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"empty_untranslated\"],  \n  } \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Localazy can be instructed to generate binary MO files instead of PO files. To enable it, add \u003Ccode>output_mo\u003C\u002Fcode> to the features section of the upload section.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"output_mo\"],  \n  } \n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>If you require both PO and MO files, you can use \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fformat-conversions\">Format Conversions\u003C\u002Fa> in your localazy.json file. For example:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"readKey\": \"---\",\n  \"writeKey\": \"---\",\n \n  \"upload\": {\n  \"files\": \"locales\u002Fen.po\"     \n  },\n \n  \"download\": {   \n    \"files\": \"my_po_files\u002F${lang}.po\"\n  },\n  \n  \"conversion\": {\n    \"actions\": {\n      \"type\": \"mo\",\n      \"output\": \"my_mo_files\u002F${lang}.mo\"\n    }\n  }\n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"xml\">XML \u003Ca class=\"markdownit-header-anchor\" href=\"#xml\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>The \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fandroid-format\">Android XML format\u003C\u002Fa>, including array-lists and plurals, is fully supported. It is simple to upload the source language, and with a number of variables for the download phase, including the pre-formatted Android language \u003Ccode>$langAndroidRes\u003C\u002Fcode>, it is also simple to store translated files in their proper location.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"writeKey\": \"app-write-key\", \n  \"readKey\": \"app-read-key\",\n \n  \"upload\": {\n    \"type\": \"android\",   \n    \"files\": \"src\u002Fmain\u002Fres\u002Fvalues\u002Fstrings.xml\"\n  },\n \n  \"download\": {\n    \"files\": \"src\u002Fmain\u002Fres\u002Fvalues-${langAndroidRes}\u002F${file}\"\n  }\n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cbr>Localazy supports all product flavors and build types. For detecting those from the standard project structure, there are transformations \u003Ccode>androidBuildType\u003C\u002Fcode> and \u003Ccode>androidProductFlavors\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>We recommend using the Localazy Gradle plugin for Android app localization because it handles uploads, downloads, and OTA (over-the-air) updates automatically. However, the CLI tool can be executed directly from the Gradle build script. Simply place the CLI binary along with the configuration file localazy.json in the app's module folder and create a task:\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Create task for running Localazy CLI. \ntask downloadTranslations(type: Exec) {\n    executable \".\u002Flocalazy\"\n    args \"download\", \"-q\"\n} \n \n\u002F\u002F Run the Localazy CLI task only for release versions. \nandroid.applicationVariants.all { variant -&gt;\n    if (!variant.buildType.debuggable) {\n        variant.preBuildProvider.get().dependsOn(downloadTranslations)\n    }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"xliff\">XLIFF \u003Ca class=\"markdownit-header-anchor\" href=\"#xliff\">🔗\u003C\u002Fa>\u003C\u002Fh3>\u003Cp>Localazy supports \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fxliff-20-format\">XLIFF file formats\u003C\u002Fa> for translation. This is an example of an XLIFF file: \u003Cbr>\u003C\u002Fp>\u003Cpre>\u003Ccode>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;xliff xmlns=\"urn:oasis:names:tc:xliff:document:1.2\"       \n       version=\"1.2\"&gt;\n \n  &lt;file original=\"Interface.storyboard\" source-language=\"en\" target-language=\"en\" datatype=\"plaintext\"&gt;\n    &lt;body&gt;\n      &lt;trans-unit id=\"text1\" xml:space=\"preserve\"&gt;\n        &lt;source&gt;Source Text 1&lt;\u002Fsource&gt;\n        &lt;target&gt;Translated Text 1&lt;\u002Ftarget&gt;\n        &lt;note&gt;Comment for the translator.&lt;\u002Fnote&gt;\n      &lt;\u002Ftrans-unit&gt;\n      &lt;trans-unit id=\"text2\" xml:space=\"preserve\"&gt;\n        &lt;source&gt;Source Text 2&lt;\u002Fsource&gt;\n        &lt;target&gt;Translated Text 2&lt;\u002Ftarget&gt;\n      &lt;\u002Ftrans-unit&gt;\n    &lt;\u002Fbody&gt;\n  &lt;\u002Ffile&gt;\n \n&lt;\u002Fxliff&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>file\u003C\u002Fstrong>: The attributes \u003Ccode>original\u003C\u002Fcode>, \u003Ccode>source-language\u003C\u002Fcode>, \u003Ccode>target-language\u003C\u002Fcode>, and \u003Ccode>datatype\u003C\u002Fcode> are used to obtain and store locale information.\u003C\u002Fp>\u003Cp>\u003Cstrong>trans-unit\u003C\u002Fstrong>: The phrase is skipped if the attribute \u003Ccode>translate\u003C\u002Fcode> is set to \u003Ccode>false\u003C\u002Fcode> or \u003Ccode>no\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>\u003Cstrong>group\u003C\u002Fstrong>: If the group element contains \u003Ccode>id\u003C\u002Fcode>, it is kept, and the stored data is structured accordingly. Without \u003Ccode>id\u003C\u002Fcode>, the group is just removed.\u003C\u002Fp>\u003Cp>The entire group is skipped if the attribute \u003Ccode>translate\u003C\u002Fcode> is set to \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Both source and target strings are processed by default, and the locale is derived from the XLIFF file. You can modify this behavior by adding the features listed in the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fxliff-20-format#handling-locales\">documentation\u003C\u002Fa>.\u003C\u002Fp>\u003Ch2 id=\"dynamic-configurations\">🎛️ Dynamic Configurations \u003Ca class=\"markdownit-header-anchor\" href=\"#dynamic-configurations\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>Dynamic configuration of the upload and download commands can be handled by specifying additional parameters using the \u003Ccode>-p\u003C\u002Fcode> option in the CLI. \u003C\u002Fp>\u003Cp>The default value for passing a dynamic configuration in the CLI  is\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy upload -p ${parameterName|Default value}\nlocalazy download -p ${parameterName|Default value}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Dynamic configuration\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>For example, in the snippets below, we have a download parameter \u003Ccode>includeSourceLang\u003C\u002Fcode> that determines if the source language should be included during the download of translated files. It accepts an option of \u003Ccode>includeSourceLang\u003C\u002Fcode> if provided else, it defaults to false.\u003C\u002Fp>\u003Cpre>\u003Ccode>{ \n  \"download\": { \n    \"includeSourceLang\": \"${includeSourceLang|false}\" \n  } \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Now, invoking the CLI to include the source language is as simple as passing true as a value for the \u003Ccode>includeSourceLang\u003C\u002Fcode> key.\u003C\u002Fp>\u003Cpre>\u003Ccode>localazy download -p includeSourceLang:true\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>A similar approach can be used in the download section to determine where the resulting files should be saved or how to filter them based on specific parameters.\u003C\u002Fp>\u003Cp>Using additional parameters like this is similar to using groups in some ways, but you don't need to define the corresponding section ahead of time.\u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fhighly-dynamic-configurations\">Dynamic Configurations for Localazy CLI\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch2 id=\"share-your-configuration-with-the-community\">🎉 Share your configuration with the community! \u003Ca class=\"markdownit-header-anchor\" href=\"#share-your-configuration-with-the-community\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>If you want to help other Localazy users by sharing your configuration, you can add the community section to your localazy.json file as follows:\u003C\u002Fp>\u003Cpre>\u003Ccode>{ \n  \"community\": { \n    \"author\": \"Your Name\", \n    \"email\": \"your@email.com\", \n    \"company\": \"Localazy\", \n    \"website\": \"https:\u002F\u002Flocalazy.com\", \n    \"tags\": [\"javascript\", \"typescript\"],\n    \"description\": \"Uploading files for javascript.\" \n  }, \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>When the configuration file containing this section is uploaded to Localazy servers, it is submitted for approval to be a part of the upcoming community-sharing portal. In addition, we use these configurations to enhance our documentation and quick-start guides, as well as to implement more efficient automated solutions.\u003C\u002Fp>\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: Your writeKey and readKey are of no concern. Before the configuration file is shared with the community, they are automatically removed.\u003C\u002Fp>\u003Ch2 id=\"conclusion\">✔️ Conclusion \u003Ca class=\"markdownit-header-anchor\" href=\"#conclusion\">🔗\u003C\u002Fa>\u003C\u002Fh2>\u003Cp>In this article, we learned how to streamline and automate localization workflow using the localazy CLI. We also learned how to perform format conversions, how Localazy supports various file formats, and how to dynamically configure Localazy CLI parameters. \u003C\u002Fp>\u003Cp>\u003Cstrong>Are you ready to start playing with the Localazy CLI?\u003C\u002Fstrong>\u003Cbr>\u003Ca href=\"\u002Fregister\">Sign up\u003C\u002Fa> and explore the possibilities of automated localization with Localazy.\u003C\u002Fp>",{"id":286,"status":8,"created_on":2023,"modified_on":2024,"icon":2025,"header":2026,"description":2027,"button_label":2028,"link":2029},"2022-03-17T12:23:03.000Z","2023-01-19T11:50:04.000Z","member","Automate your localization today! ⚙️","Translate your project in a breeze, utilize the advanced features and fully automate your localization process with Localazy! ","Join Localazy","register",{"slug":1866,"id":1859,"uuid":2031,"title":1865,"html":2032,"comment_id":1859,"feature_image":1869,"featured":17,"visibility":2033,"email_recipient_filter":2034,"created_at":2035,"updated_at":1867,"published_at":1868,"custom_excerpt":2020,"codeinjection_head":2036,"codeinjection_foot":7,"custom_template":7,"canonical_url":7,"authors":2037,"tags":2044,"primary_author":2128,"primary_tag":2129,"url":2130,"excerpt":2020,"reading_time":244,"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":1878,"cta":2022,"plainTags":1870},"30da930e-f85b-47c4-9fb9-05583d62e251","\u003Ch2 id=\"%E2%9D%93-what-is-localazy-cli\">❓ What is Localazy CLI?\u003C\u002Fh2>\u003Cp>The \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Ffeatures\u002Fcli\">Localazy CLI\u003C\u002Fa> is a command-line interface for uploading files to the Localazy platform and downloading translations back into your project, allowing for various automatizations and advanced manipulation of the data you upload and download.\u003C\u002Fp>\u003Cp>It is easy to integrate into any build chain or \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fdictionary\u002Fcontinuous-integration\">CI\u002FCD\u003C\u002Fa> system (e.g., \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Ftags\u002Fgithub\">GitHub Actions\u003C\u002Fa>), and it supports complex projects with multiple modules, libraries, and products. CLI can also help you handle uploading existing translations in case of migration from other solutions.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-installation\">👩‍💻 Installation \u003C\u002Fh2>\u003Cp>The first step is to download and install the Localazy CLI. Depending on the requirements of your system and the preferences of the project, the Localazy CLI offers multiple installation options to choose from. \u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fdocs\u002Fcli\u002Finstallation\">CLI: Installation\u003C\u002Fa>\u003C\u002Fblockquote>\u003Cp>The Localazy CLI can be installed on multiple platforms as a native application (including Windows, Linux, and macOS), a Java JAR, an npm package, and a Docker image. In this guide, the Localazy CLI will be installed from the npm repository:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>npm install -g @localazy\u002Fcli\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy CLI Installation\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The typical \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fcommand-line-options\">Localazy CLI usage pattern\u003C\u002Fa> across all platforms is as follows:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy [command] [common options] [groups] \u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy CLI command options\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>This article will cover the most important command options available in the Localazy command line interface.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%95%B9%EF%B8%8F-configuration\">🕹️ Configuration\u003C\u002Fh2>\u003Cp>To demonstrate the options of the Localazy CLI, we will use the Localazy features to translate a simple React web page. The code for the front end can be found in this \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMarienoir\u002FLocalazy-Blog\u002Ftree\u002Fmain\u002Flocalazy-cli\">repository\u003C\u002Fa>. \u003C\u002Fp>\u003Ch3 id=\"simple-upload-configuration-for-json\">Simple upload configuration for JSON\u003C\u002Fh3>\u003Cp>In order to use the CLI commands with our Localazy project, we must authorize our access to the project using the \u003Cstrong>writeKey\u003C\u002Fstrong> and \u003Cstrong>readKey\u003C\u002Fstrong> in our configuration.\u003C\u002Fp>\u003Cp>Create a new project from your \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fmy\u002Fdashboard\">Dashboard\u003C\u002Fa> or obtain the keys for your project by navigating to \u003Cem>Project - Settings - Access keys\u003C\u002Fem> in the menu.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-14.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1600\" height=\"722\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-14.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-14.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-14.png 1600w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>In your application's root directory, create a configuration script named \u003Cstrong>localazy.json\u003C\u002Fstrong> that instructs the CLI tool on which files to upload and how to handle downloaded translations. Add the following snippets of code:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \"writeKey\": \"app-write-key\",\n \"readKey\": \"app-read-key\",\n\n\n \"upload\": {\n   \"type\": \"json\",\n   \"files\": \"public\u002Flocales\u002Fen\u002Ftranslation.json\"\n },\n\n\n \"download\": {\n   \"files\": \"public\u002Flocales\u002Fcs\u002Ftranslation.json\"\n }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The above JSON file contains a \u003Cstrong>writeKey\u003C\u002Fstrong> and a \u003Cstrong>readKey\u003C\u002Fstrong> you can find in the settings mentioned above. The upload command configuration then includes the \u003Ccode>type\u003C\u002Fcode> filed, which specifies that the file to be uploaded is a JSON file, and the \u003Ccode>files\u003C\u002Fcode> field, which contains the path directory of the translation file.\u003C\u002Fp>\u003Cp>It can also specify how to collect files for uploading to the Localazy platform and, optionally, what metadata to include.\u003C\u002Fp>\u003Cp>In the \u003Cstrong>public\u002Flocales\u002Fen\u003C\u002Fstrong> folder is a translation file containing text to be translated. Execute the following command at the terminal:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy upload\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy upload command\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fdocs\u002Fcli\u002Fupload-reference\">CLI: Upload Reference\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"translate-your-strings-with-localazy\">Translate your strings with Localazy\u003C\u002Fh3>\u003Cp>Navigate to the Translations tab and click on the \u003Cem>Source language \u003C\u002Fem>row. The content from your uploaded JSON should appear in the source language table.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-15.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1600\" height=\"892\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-15.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-15.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-15.png 1600w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Now, add a new language from the \u003Cem>Translations \u003C\u002Fem>page so you can translate the content using Localazy. Let's say we want to offer 🇨🇿 \u003Cstrong>Czech (cs)\u003C\u002Fstrong> as a language option on this web page. Once the language has been added, you can \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-strings\">begin translating your strings\u003C\u002Fa>.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-16.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1325\" height=\"245\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-16.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-16.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-16.png 1325w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cp>Localazy offers three methods from which to choose and combine for your project's translation:\u003C\u002Fp>\u003Col>\u003Cli>💪🏻 \u003Cstrong>Translate on your own or invite contributors\u003C\u002Fstrong> - You can \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-strings\">start translating on your own\u003C\u002Fa> and use our built-in suggestion system.\u003C\u002Fli>\u003Cli>🦾 \u003Cstrong>Translate everything in bulk via machine translation\u003C\u002Fstrong> - With the Localazy \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ftiers\u002Fautopilot\">Autopilot plan\u003C\u002Fa>, you can instantly translate all strings by \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fadditional-mt-engines#mt-pre-translate\">running a machine translation over the content\u003C\u002Fa>. This is great for the first iteration and localization testing of any project.\u003C\u002Fli>\u003Cli>🚩 \u003Cstrong>Fully automate the translation process with the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ffeatures\u002Fcontinuous-localization-team\">Continuous Localization\u003C\u002Fa> services\u003C\u002Fstrong> - Once your Localazy integration is set up, you can order translations from our vetted translators and get your project translated by professionals automatically. The service is also proactive, so you don't have to micromanage translators, and you can visit Localazy only once in a while to check the progress.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Once you translate everything, you can view the translations by clicking on the name of the language in the \u003Cem>Translations\u003C\u002Fem> view.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-17.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"1600\" height=\"914\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F05\u002Fimage-17.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F05\u002Fimage-17.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F05\u002Fimage-17.png 1600w\" sizes=\"(min-width: 720px) 720px\">\u003C\u002Ffigure>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Ftranslating-strings\">translating strings in Localazy\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"download-translations-using-the-cli\">Download translations using the CLI\u003C\u002Fh3>\u003Cp>To download the translations, you can now use the download command. Execute the following command at the terminal:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy download\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Localazy download command\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The download code snippets can be found within the localazy.json file, just below the upload object.\u003C\u002Fp>\u003Cp>The download object specifies where the translated files should be saved. The translated file translation.json would be saved in the \u003Cstrong>public\u002Flocales\u002Fcs\u003C\u002Fstrong> folder in our example.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode class=\"language-json\">{\n \"about\": \"Jsem vývojář back-end se sídlem v Lagosu, Nigérie. Jsem softwarový inženýr zaměřený na výsledky věnovaný tvorbě, udržování, testování, a ladění komponent a funkcí na straně serveru. To zahrnuje základní aplikační logiku, databáze, integraci dat a aplikací, API a další procesy probíhající v zákulisí aplikace nebo systému front-end. Zajímám se také o využití analytických dovedností a silnou pozornost věnovanou detailům s cílem poskytovat originální a efektivní webová řešení a zajistit pozitivní uživatelský zážitek. Baví mě psaní a čtení knih. \",\n \"address\": \"732 Duffield Street, Nicut, Havaj, 8781\",\n \"age\": 37,\n \"company\": \"MARTGO\",\n \"email\": \"vickywest@martgo.com\",\n \"eyeColor\": \"Hnědá\",\n \"gender\": \"Ženský\",\n \"name\": \"Mary Okosun\"\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Translated JSON file\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The react package \u003Cstrong>react-i18next\u003C\u002Fstrong> will be used to handle changes to translated languages. You can now switch between languages in the web page's user interface and see the page's content adapt based on the language you choose.\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1146\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.34.53-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The English translation for the example React application\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\u003Cimg src=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png\" class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1144\" srcset=\"https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1000\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 1000w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw1600\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 1600w, https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002Fsize\u002Fw2400\u002F2023\u002F04\u002FScreenshot-2023-04-16-at-9.35.05-PM.png 2400w\" sizes=\"(min-width: 720px) 720px\">\u003Cfigcaption>The Czech translation for our simple React application\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fdocs\u002Fcli\u002Fdownload-reference\">CLI: Download Reference\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"upload-existing-translations\">Upload existing translations\u003C\u002Fh3>\u003Cp>When making changes to your translations, it's recommended to only modify and upload the source language and use the Localazy platform to manage the rest. But, in some instances, like migration from other tools, we might want to upload files that have already been translated elsewhere. \u003C\u002Fp>\u003Cp>The first step is to specify the file's language. The source language file should then be separated from the translated files. The best practice is to upload the source language and other translations separately using groups.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    \"files\": [\n      {\n        \"pattern\": \"src\u002Fresources\u002Flocalization\u002Fstrings_en.json\",\n        \"lang\": \"inherited\"\n      },\n      {\n        \"group\": \"existing\",\n        \"pattern\": \"src\u002Fresources\u002Flocalization\u002Fstrings_*.json\",\n        \"excludes\": [\"src\u002Fresources\u002Flocalization\u002Fstrings_en.json\"],\n        \"lang\": \"${autodetectLang}\"\n      }   \n    ]\n \n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The above code snippets define two groups. The first group uploads the \u003Cstrong>strings_en.json\u003C\u002Fstrong> source file, while the second group, named \u003Cstrong>existing\u003C\u002Fstrong>, uploads everything besides the source language.\u003C\u002Fp>\u003Cp>Invoke \u003Ccode>localazy upload existing\u003C\u002Fcode> to upload all existing translations and then simply use \u003Ccode>localazy upload\u003C\u002Fcode> to upload changes to the source language.\u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fexisting-translations\">Uploading Existing Translations with Localazy CLI\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch2 id=\"%F0%9F%9A%80-advanced-configurations\">🚀 Advanced configurations\u003C\u002Fh2>\u003Cp>The Localazy CLI offers many advanced options to further customize your workflow and adapt the features to your project.\u003C\u002Fp>\u003Ch3 id=\"variables\">Variables\u003C\u002Fh3>\u003Cp>Variables can be used to construct output paths for translated files and to send data along with files for conditions or transformations to the server. Variables are always referenced with \u003Cstrong>$variable_name\u003C\u002Fstrong>. Only letters and the underscore character are permitted in variable names. It is important to note that a variable's value is always a string.\u003C\u002Fp>\u003Cp>There are a few variables that primarily serve major functions, such as the \u003Cstrong>upload variables\u003C\u002Fstrong> and the \u003Cstrong>download variables\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch4 id=\"upload-variables-are-accessible-when-the-localazy-cli-is-collecting-files-for-server-upload\">Upload variables are accessible when the Localazy CLI is collecting files for server upload.\u003C\u002Fh4>\u003Cp>Examples of upload variables include the following:\u003C\u002Fp>\u003Cp>\u003Ccode>$file\u003C\u002Fcode> - This is the filename without the path of the translated file, such as \u003Cstrong>translation.json\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>$path\u003C\u002Fcode> - This is the path to the translated file without the file name, for example, \u003Cstrong>public\u002Flocales\u002Fen\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>$fullPath\u003C\u002Fcode> - This is the full path to the translated file, including the file name, for example, \u003Cstrong>public\u002Flocales\u002Fen\u002Ftranslation.json\u003C\u002Fstrong>.\u003C\u002Fp>\u003Ch4 id=\"download-variables-become-available-when-the-localazy-cli-is-processing-downloaded-translated-files\">Download variables become available when the Localazy CLI is processing downloaded translated files. \u003C\u002Fh4>\u003Cp>It is important to upload accurate metadata, as the majority of download variables are those that were previously sent during file uploading.\u003C\u002Fp>\u003Cp>Examples of the download variables include:\u003C\u002Fp>\u003Cp>\u003Ccode>${fileExt}\u003C\u002Fcode>  - This is the file extension, e.g., \u003Cstrong>json\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>\u003Ccode>$languageCode\u003C\u002Fcode> - This is the language code for the translated file, such as \u003Cstrong>cs\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>\u003Ccode>$fullPath\u003C\u002Fcode> - This is the full path to the translated file, including the file name, for example, \u003Cstrong>public\u002Flocales\u002Fen\u002Ftranslation.json\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fvariables\">using variables in your CLI configurations\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"transformations\">Transformations\u003C\u002Fh3>\u003Cp>Transformations enable the processing of input variables and the inference of new variables. This is very beneficial for automating the workflow. For example, a language code can be obtained from a file's name or path.\u003C\u002Fp>\u003Cp>In the following code snippets, a new variable called \u003Ccode>path_lang\u003C\u002Fcode> is created from the source string \u003Ccode>$path\u003C\u002Fcode> using a couple of operations. These operations are performed in a specific order, with the subsequent operation being performed on the result of the previous one.\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002Flocalazy.json\n{\n  \"transformations\": [\n    \n    {\n        \"name\": \"path_lang\",\n        \"source\": \"${path}\",\n        \"operations\": [\n          \"substringAfter: .\u002F\",\n          \"substringBefore: \u002F\",\n          \"remove: translation-\"\n        ]\n    }\n \n  ]\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Using the code snippets above, for example, if the path is \u003Cstrong>.\u002Ftranslation-cs\u002Ftest\u003C\u002Fstrong> and the language is required for an upload command, the language can be retrieved from the path.  \u003C\u002Fp>\u003Cul>\u003Cli>The operation \u003Ccode>substringAfter:.\u002F\u003C\u002Fcode> returns the substring after the first occurrence of the string specified as a parameter, resulting in \u003Cstrong>translation-cs\u002Ftest\u003C\u002Fstrong>.\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fli>\u003Cli>The operation \u003Ccode>substringBefore: \u002F\u003C\u002Fcode> returns the substring that comes before the first occurrence of the string given as a parameter, which gives \u003Cstrong>translation-cs\u003C\u002Fstrong>. \u003C\u002Fli>\u003Cli>The operation \u003Ccode>remove: translation-\u003C\u002Fcode> deletes all occurrences of the string given as a parameter, returning \u003Ccode>cs\u003C\u002Fcode>, which is then assigned to the variable \u003Ccode>path_lang\u003C\u002Fcode>. \u003C\u002Fli>\u003C\u002Ful>\u003Cp>This variable can be used in the upload\u002Fdownload section in the future.\u003C\u002Fp>\u003Cblockquote>There are \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Ftransformations#operations\">several other operations available\u003C\u002Fa>, which are detailed in the docs.\u003C\u002Fblockquote>\u003Ch3 id=\"excluding-keys\">Excluding Keys\u003C\u002Fh3>\u003Cp>During upload and format conversion, keys can be included or excluded. For file uploads, it is possible to filter out sensitive or unwanted strings, and it is defined directly in the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fupload-reference\">upload section\u003C\u002Fa>. \u003C\u002Fp>\u003Cp>For \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fformat-conversions\">format conversion\u003C\u002Fa>, it is possible to filter out strings that do not need to be included in the converted file (e.g., platform-specific texts), and it is defined separately for each action. Strings are always filtered according to their keys' rules.\u003C\u002Fp>\u003Cp>These filtering rules can be specified using \u003Cstrong>keySeparator\u003C\u002Fstrong>, \u003Cstrong>includeKeys\u003C\u002Fstrong>, and \u003Cstrong>excludeKeys\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>The \u003Cstrong>keySeparator\u003C\u002Fstrong> is used to create structured keys for includeKeys and excludeKeys. \u003C\u002Fp>\u003Cblockquote>A period (.) is the default value for a keySeparator. \u003C\u002Fblockquote>\u003Cp>Each rule for includeKeys and excludeKeys has the format \u003Cstrong>OPERATION:parameter\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"keySeparator\": \".\",\n  \"includeKeys\": [\"MATCH:my_key\"],\n  \"excludeKeys\": [\"PREFIX:my_key\"]    \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>In the above code snippets, the includeKeys rule is only valid if the key exactly matches \u003Cstrong>my_key\u003C\u002Fstrong>. During upload or format conversion, all keys with a prefix of \u003Cstrong>my_key\u003C\u002Fstrong> are excluded.\u003C\u002Fp>\u003Cp>If includeKeys is empty or missing, all texts are processed except those excluded by excludeKeys.\u003C\u002Fp>\u003Cp>Only explicitly included texts are processed if includeKeys is not empty.\u003C\u002Fp>\u003Cp>The rules in excludeKeys are more important than those in includeKeys. That is, if the same text matches a rule in both includeKeys and excludeKeys, it is ignored.\u003C\u002Fp>\u003Cblockquote>Find more detailed examples and learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fexcluding-string-keys\">Excluding String Keys with Localazy CLI\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch3 id=\"format-conversions\">Format Conversions\u003C\u002Fh3>\u003Cp>By including a conversion section in your localazy.json file, translated files can be converted between different formats. \u003C\u002Fp>\u003Cblockquote>Please note that the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fformat-conversions-feature\">Format Conversions feature\u003C\u002Fa> is available only with the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Ftiers\u002Fprofessional\">Professional Plan\u003C\u002Fa> and above.\u003C\u002Fblockquote>\u003Cp>Additionally, you can filter content, modify how plurals and string arrays are stored, convert files to multilingual formats, etc. The conversion section functions similarly to the download section, and the same variables can be used. Conversions are processed alongside downloading when localazy download is invoked. If only conversions are required, you may omit the download section from your configuration file. Additionally, groups can be used to separately process downloads and conversions.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n\t\"conversion\": {\n        \"actions\": {\n          \"group\": \"convert-files\",\n          \"output\": \"converted\u002F${file}\",\n          \"conditions\": \"startWith: ios_, ${file}\",\n          \"changeExtension\": \"json\",\n          \"type\": \"json-multilingual\",\n          \"pluralType\": \"plural_icu\",\n          \"forcePluralType\": true,\n          \"filterArray\": true\n        }\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>From the snippets above,\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>group\u003C\u002Fstrong>: This code is only executed when the \u003Ccode>localazy download convert-files\u003C\u002Fcode> command is invoked. \u003C\u002Fli>\u003Cli>\u003Cstrong>conditions\u003C\u002Fstrong>: It only applies to files whose names begin with ios_.\u003C\u002Fli>\u003Cli>\u003Cstrong>type &amp;&amp; output\u003C\u002Fstrong>: The files are converted to multilingual JSON and saved in \u003Ccode>converted\u002F$file\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>\u003Cstrong>changeExtension\u003C\u002Fstrong>: The extension of such files is changed to json; for example, \u003Cstrong>ios_menu.xml\u003C\u002Fstrong> is saved as \u003Cstrong>ios_menu.json\u003C\u002Fstrong>.\u003C\u002Fli>\u003Cli>\u003Cstrong>pluralType &amp;&amp; forcePluralType\u003C\u002Fstrong>: All plurals are forced to be in plural_icu format.\u003C\u002Fli>\u003Cli>\u003Cstrong>filterArray\u003C\u002Fstrong>: String arrays are all filtered out.\u003C\u002Fli>\u003C\u002Ful>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fformat-conversions\">CLI: Format Conversions in the documentation\u003C\u002Fa>.\u003C\u002Fblockquote>\u003Ch2 id=\"%F0%9F%97%82%EF%B8%8F-file-formats\">🗂️ File Formats\u003C\u002Fh2>\u003Cp>Files scheduled for upload to Localazy can be in a variety of formats. Localazy supports over 25 file formats and their variants. Some of the most commonly used formats are detailed further below. \u003C\u002Fp>\u003Cdiv class=\"kg-card kg-callout-card kg-callout-card-blue\">\u003Cdiv class=\"kg-callout-emoji\">📎\u003C\u002Fdiv>\u003Cdiv class=\"kg-callout-text\">See the list of \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fgeneral\u002Fsupported-file-formats\">all supported file formats\u003C\u002Fa>.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Ch3 id=\"popot\">PO\u002FPOT\u003C\u002Fh3>\u003Cp>\u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fpo-format\">PO and POT\u003C\u002Fa> are text-based formats used for localization in a variety of applications, including localization.\u003C\u002Fp>\u003Cp>PO is an abbreviation for \u003Cstrong>Portable Object File\u003C\u002Fstrong>. POT is an abbreviation for \u003Cstrong>Portable Object Template\u003C\u002Fstrong>. The \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdictionary\u002Fgnu-gettext\">gettext library\u003C\u002Fa> and WordPress CMS, for instance, use PO and POT files to manage multilingual software and websites.\u003C\u002Fp>\u003Cp>Localazy allows for the seamless management of PO and POT file translations. An example of a PO file is the following:\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>msgid \"This is the original text\"\nmsgstr \"The translated content comes here\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>An example of a PO file\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>The upload object in the localazy.json file has a \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fupload-reference#upload-configuration\">features configuration\u003C\u002Fa> that can have a \u003Ccode>use_key_for_content\u003C\u002Fcode>  enabled. This indicates that the msgid should be used as as content when msgstr is empty.\u003C\u002Fp>\u003Cpre>\u003Ccode>msgid \"Sorry, comments are closed for this item.\"\nmsgstr \"\"\u003C\u002Fcode>\u003C\u002Fpre>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"use_key_for_content\"],  \n  } \n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>When working with empty translations, there are two options you can use in features in the upload section.\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>ignore_blank_content\u003C\u002Fstrong>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Empty translations in the input file are considered valid translations by default. Using an empty translation is a valid case for a variety of reasons. When this option is enabled, translations that are empty are filtered out, and the string is considered untranslated.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"ignore_blank_content\"],  \n  } \n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cul>\u003Cli>\u003Cstrong>empty_untranslated\u003C\u002Fstrong>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Using \u003Ccode>empty_untranslated\u003C\u002Fcode> instructs Localazy to render untranslated strings as empty translations. Empty translations in the input file are considered valid translations by default. Using an empty translation is a valid case for a variety of reasons. When this option is enabled, translations that are empty are filtered out, and the string is considered untranslated.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"empty_untranslated\"],  \n  } \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Localazy can be instructed to generate binary MO files instead of PO files. To enable it, add \u003Ccode>output_mo\u003C\u002Fcode> to the features section of the upload section.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"upload\": {\n    ...\n    \"features\": [\"output_mo\"],  \n  } \n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>If you require both PO and MO files, you can use \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fformat-conversions\">Format Conversions\u003C\u002Fa> in your localazy.json file. For example:\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n  \"readKey\": \"---\",\n  \"writeKey\": \"---\",\n \n  \"upload\": {\n  \"files\": \"locales\u002Fen.po\"     \n  },\n \n  \"download\": {   \n    \"files\": \"my_po_files\u002F${lang}.po\"\n  },\n  \n  \"conversion\": {\n    \"actions\": {\n      \"type\": \"mo\",\n      \"output\": \"my_mo_files\u002F${lang}.mo\"\n    }\n  }\n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"xml\">XML\u003C\u002Fh3>\u003Cp>The \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fandroid-format\">Android XML format\u003C\u002Fa>, including array-lists and plurals, is fully supported. It is simple to upload the source language, and with a number of variables for the download phase, including the pre-formatted Android language \u003Ccode>$langAndroidRes\u003C\u002Fcode>, it is also simple to store translated files in their proper location.\u003C\u002Fp>\u003Cpre>\u003Ccode>{\n \n  \"writeKey\": \"app-write-key\", \n  \"readKey\": \"app-read-key\",\n \n  \"upload\": {\n    \"type\": \"android\",   \n    \"files\": \"src\u002Fmain\u002Fres\u002Fvalues\u002Fstrings.xml\"\n  },\n \n  \"download\": {\n    \"files\": \"src\u002Fmain\u002Fres\u002Fvalues-${langAndroidRes}\u002F${file}\"\n  }\n \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cbr>Localazy supports all product flavors and build types. For detecting those from the standard project structure, there are transformations \u003Ccode>androidBuildType\u003C\u002Fcode> and \u003Ccode>androidProductFlavors\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>We recommend using the Localazy Gradle plugin for Android app localization because it handles uploads, downloads, and OTA (over-the-air) updates automatically. However, the CLI tool can be executed directly from the Gradle build script. Simply place the CLI binary along with the configuration file localazy.json in the app's module folder and create a task:\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F Create task for running Localazy CLI. \ntask downloadTranslations(type: Exec) {\n    executable \".\u002Flocalazy\"\n    args \"download\", \"-q\"\n} \n \n\u002F\u002F Run the Localazy CLI task only for release versions. \nandroid.applicationVariants.all { variant -&gt;\n    if (!variant.buildType.debuggable) {\n        variant.preBuildProvider.get().dependsOn(downloadTranslations)\n    }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3 id=\"xliff\">XLIFF\u003C\u002Fh3>\u003Cp>Localazy supports \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fxliff-20-format\">XLIFF file formats\u003C\u002Fa> for translation. This is an example of an XLIFF file: \u003Cbr>\u003C\u002Fp>\u003Cpre>\u003Ccode>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;xliff xmlns=\"urn:oasis:names:tc:xliff:document:1.2\"       \n       version=\"1.2\"&gt;\n \n  &lt;file original=\"Interface.storyboard\" source-language=\"en\" target-language=\"en\" datatype=\"plaintext\"&gt;\n    &lt;body&gt;\n      &lt;trans-unit id=\"text1\" xml:space=\"preserve\"&gt;\n        &lt;source&gt;Source Text 1&lt;\u002Fsource&gt;\n        &lt;target&gt;Translated Text 1&lt;\u002Ftarget&gt;\n        &lt;note&gt;Comment for the translator.&lt;\u002Fnote&gt;\n      &lt;\u002Ftrans-unit&gt;\n      &lt;trans-unit id=\"text2\" xml:space=\"preserve\"&gt;\n        &lt;source&gt;Source Text 2&lt;\u002Fsource&gt;\n        &lt;target&gt;Translated Text 2&lt;\u002Ftarget&gt;\n      &lt;\u002Ftrans-unit&gt;\n    &lt;\u002Fbody&gt;\n  &lt;\u002Ffile&gt;\n \n&lt;\u002Fxliff&gt;\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>file\u003C\u002Fstrong>: The attributes \u003Ccode>original\u003C\u002Fcode>, \u003Ccode>source-language\u003C\u002Fcode>, \u003Ccode>target-language\u003C\u002Fcode>, and \u003Ccode>datatype\u003C\u002Fcode> are used to obtain and store locale information.\u003C\u002Fp>\u003Cp>\u003Cstrong>trans-unit\u003C\u002Fstrong>: The phrase is skipped if the attribute \u003Ccode>translate\u003C\u002Fcode> is set to \u003Ccode>false\u003C\u002Fcode> or \u003Ccode>no\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>\u003Cstrong>group\u003C\u002Fstrong>: If the group element contains \u003Ccode>id\u003C\u002Fcode>, it is kept, and the stored data is structured accordingly. Without \u003Ccode>id\u003C\u002Fcode>, the group is just removed.\u003C\u002Fp>\u003Cp>The entire group is skipped if the attribute \u003Ccode>translate\u003C\u002Fcode> is set to \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Both source and target strings are processed by default, and the locale is derived from the XLIFF file. You can modify this behavior by adding the features listed in the \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fxliff-20-format#handling-locales\">documentation\u003C\u002Fa>.\u003C\u002Fp>\u003Ch2 id=\"%F0%9F%8E%9B%EF%B8%8F-dynamic-configurations\">🎛️ Dynamic Configurations\u003C\u002Fh2>\u003Cp>Dynamic configuration of the upload and download commands can be handled by specifying additional parameters using the \u003Ccode>-p\u003C\u002Fcode> option in the CLI. \u003C\u002Fp>\u003Cp>The default value for passing a dynamic configuration in the CLI  is\u003C\u002Fp>\u003Cfigure class=\"kg-card kg-code-card\">\u003Cpre>\u003Ccode>localazy upload -p ${parameterName|Default value}\nlocalazy download -p ${parameterName|Default value}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cfigcaption>Dynamic configuration\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>For example, in the snippets below, we have a download parameter \u003Ccode>includeSourceLang\u003C\u002Fcode> that determines if the source language should be included during the download of translated files. It accepts an option of \u003Ccode>includeSourceLang\u003C\u002Fcode> if provided else, it defaults to false.\u003C\u002Fp>\u003Cpre>\u003Ccode>{ \n  \"download\": { \n    \"includeSourceLang\": \"${includeSourceLang|false}\" \n  } \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Now, invoking the CLI to include the source language is as simple as passing true as a value for the \u003Ccode>includeSourceLang\u003C\u002Fcode> key.\u003C\u002Fp>\u003Cpre>\u003Ccode>localazy download -p includeSourceLang:true\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>A similar approach can be used in the download section to determine where the resulting files should be saved or how to filter them based on specific parameters.\u003C\u002Fp>\u003Cp>Using additional parameters like this is similar to using groups in some ways, but you don't need to define the corresponding section ahead of time.\u003C\u002Fp>\u003Cblockquote>Learn more about \u003Ca href=\"https:\u002F\u002Flocalazy.com\u002Fdocs\u002Fcli\u002Fhighly-dynamic-configurations\">Dynamic Configurations for Localazy CLI\u003C\u002Fa>\u003C\u002Fblockquote>\u003Ch2 id=\"%F0%9F%8E%89-share-your-configuration-with-the-community\">🎉 Share your configuration with the community!\u003C\u002Fh2>\u003Cp>If you want to help other Localazy users by sharing your configuration, you can add the community section to your localazy.json file as follows:\u003C\u002Fp>\u003Cpre>\u003Ccode>{ \n  \"community\": { \n    \"author\": \"Your Name\", \n    \"email\": \"your@email.com\", \n    \"company\": \"Localazy\", \n    \"website\": \"https:\u002F\u002Flocalazy.com\", \n    \"tags\": [\"javascript\", \"typescript\"],\n    \"description\": \"Uploading files for javascript.\" \n  }, \n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>When the configuration file containing this section is uploaded to Localazy servers, it is submitted for approval to be a part of the upcoming community-sharing portal. In addition, we use these configurations to enhance our documentation and quick-start guides, as well as to implement more efficient automated solutions.\u003C\u002Fp>\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: Your writeKey and readKey are of no concern. Before the configuration file is shared with the community, they are automatically removed.\u003C\u002Fp>\u003Ch2 id=\"%E2%9C%94%EF%B8%8F-conclusion\">✔️ Conclusion\u003C\u002Fh2>\u003Cp>In this article, we learned how to streamline and automate localization workflow using the localazy CLI. We also learned how to perform format conversions, how Localazy supports various file formats, and how to dynamically configure Localazy CLI parameters. \u003C\u002Fp>\u003Cp>\u003Cstrong>Are you ready to start playing with the Localazy CLI?\u003C\u002Fstrong>\u003Cbr>\u003Ca href=\"https:\u002F\u002Fghost.localazy.com\u002Fregister\">Sign up\u003C\u002Fa> and explore the possibilities of automated localization with Localazy.\u003C\u002Fp>","public","none","2023-04-10T23:07:54.000+02:00","{\"intercomArticleUrl\":\"\"}",[2038],{"id":1861,"name":1862,"slug":1863,"profile_image":1864,"cover_image":7,"bio":2039,"website":2040,"location":2041,"facebook":7,"twitter":2042,"meta_title":7,"meta_description":7,"url":2043},"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",[2045,2048,2053,2056,2059,2065,2070,2075,2080,2085,2091,2097,2102,2107,2112,2117,2122],{"id":2046,"name":643,"slug":411,"description":643,"feature_image":7,"visibility":2033,"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":2047},"60a37fc7cf7b6a0001d1f0e8","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcli\u002F",{"id":2049,"name":2050,"slug":2051,"description":7,"feature_image":7,"visibility":2033,"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":2052},"60fffb486f8ebe0001bd8ddd","[COMSHARE]","comshare","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcomshare\u002F",{"id":2054,"name":1873,"slug":1874,"description":1873,"feature_image":7,"visibility":2033,"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":2055},"60a37fc7cf7b6a0001d1f10e","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcontinuous-localization\u002F",{"id":2057,"name":1876,"slug":1877,"description":1876,"feature_image":7,"visibility":2033,"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":2058},"60a37fc7cf7b6a0001d1f0e9","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fguide\u002F",{"id":2060,"name":2061,"slug":2062,"description":2063,"feature_image":7,"visibility":2033,"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":2064},"60a37fc7cf7b6a0001d1f11a","[CTA] Automate your localization today! ⚙️","cta-12","Use all core localization features for free and automate your localization process with Localazy!","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fcta-12\u002F",{"id":2066,"name":2067,"slug":2068,"description":1883,"feature_image":7,"visibility":2033,"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":2069},"60a37fc7cf7b6a0001d1f157","[DICT] Continuous Integration","term-58","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-58\u002F",{"id":2071,"name":2072,"slug":2073,"description":1911,"feature_image":7,"visibility":2033,"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":2074},"60a37fc7cf7b6a0001d1f159","[DICT] Externalized string","term-60","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-60\u002F",{"id":2076,"name":2077,"slug":2078,"description":1934,"feature_image":7,"visibility":2033,"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":2079},"60a37fc7cf7b6a0001d1f176","[DICT] GNU gettext","term-89","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-89\u002F",{"id":2081,"name":2082,"slug":2083,"description":1951,"feature_image":7,"visibility":2033,"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":2084},"60a37fc7cf7b6a0001d1f15c","[DICT] Integrated Development Environment (IDE)","term-63","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-63\u002F",{"id":2086,"name":2087,"slug":2088,"description":2089,"feature_image":7,"visibility":2033,"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":2090},"61af9d57df4bcb00010bc95b","[DICT] JSON","term-108","JSON stands for JavaScript Object Notation and it's a widely used File Format.","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-108\u002F",{"id":2092,"name":2093,"slug":2094,"description":2095,"feature_image":7,"visibility":2033,"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":2096},"60a37fc7cf7b6a0001d1f11f","[DICT] Localization","term-2","Localization is a process of preparing a product for a particular market.","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-2\u002F",{"id":2098,"name":2099,"slug":2100,"description":1985,"feature_image":7,"visibility":2033,"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":2101},"60a37fc7cf7b6a0001d1f12a","[DICT] Machine translation (MT)","term-13","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-13\u002F",{"id":2103,"name":2104,"slug":2105,"description":1999,"feature_image":7,"visibility":2033,"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":2106},"614777b66f8ebe0001bda6c8","[DICT] PO & POT format","term-101","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-101\u002F",{"id":2108,"name":2109,"slug":2110,"description":2006,"feature_image":7,"visibility":2033,"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":2111},"60a37fc7cf7b6a0001d1f144","[DICT] Translation Management System (TMS)","term-39","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-39\u002F",{"id":2113,"name":2114,"slug":2115,"description":2015,"feature_image":7,"visibility":2033,"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":2116},"6145cdbf6f8ebe0001bda6c5","[DICT] XLIFF","term-100","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fterm-100\u002F",{"id":2118,"name":2119,"slug":2120,"description":7,"feature_image":7,"visibility":2033,"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":2121},"64710a2f047091000193ca3d","[INTERCOM]","intercom","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fintercom\u002F",{"id":2123,"name":2124,"slug":2125,"description":2126,"feature_image":7,"visibility":2033,"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":2127},"67e6bcb263350c0001d58926","[AD] Ambassador","ad-25","https:\u002F\u002Flocalazy.com\u002Fblog\u002Flocalazy-ambassador-program-free-localization-features","https:\u002F\u002Fghost.localazy.com\u002Ftag\u002Fad-25\u002F",{"id":1861,"name":1862,"slug":1863,"profile_image":1864,"cover_image":7,"bio":2039,"website":2040,"location":2041,"facebook":7,"twitter":2042,"meta_title":7,"meta_description":7,"url":2043},{"id":2046,"name":643,"slug":411,"description":643,"feature_image":7,"visibility":2033,"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":2047},"https:\u002F\u002Fghost.localazy.com\u002Fhow-to-use-localazy-cli-to-streamline-your-localization-workflow\u002F",[2132,2147,2163],{"id":2133,"owner":2134,"created_by":7,"sort":7,"title":2139,"slug":2140,"modified_on":764,"created_on":2141,"pinned":15,"badge":7,"priority":1824,"main_image":2142,"status":8,"tags":2143,"dictionary":2146,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"665d9cb634f1ce00011a0d19",{"id":2135,"first_name":2136,"last_name":764,"slug":2137,"avatar":2138},"65647a510470910001942873","Simona Rahmanova","simona-rahmanova","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2024\u002F03\u002Fsimona.png","Localization 101 | Basic concepts for newcomers","localization-101-basic-concepts-a-beginner-needs-to-know","2024-07-29T15:24:00.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2024\u002F06\u002Flocalization-101.png",[2144,2145],{"id":319,"created_on":1828,"status":8,"label":217,"slug":1833,"on_index_page":17},{"id":319,"created_on":1828,"status":8,"label":1876,"slug":1877,"on_index_page":15},[],{"id":2148,"owner":2149,"created_by":7,"sort":7,"title":2150,"slug":2151,"modified_on":764,"created_on":2152,"pinned":15,"badge":7,"priority":1824,"main_image":2153,"status":8,"tags":2154,"dictionary":2162,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"633ad643fe956a000108a63d",{"id":1817,"first_name":1818,"last_name":764,"slug":1819,"avatar":1820},"The ultimate guide to Localazy translation services","guide-localazy-translation-services","2022-10-14T10:21:57.000+02:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2022\u002F10\u002FCLT-services.png",[2155,2158,2159,2161],{"id":319,"created_on":1828,"status":8,"label":2156,"slug":2157,"on_index_page":15},"Translations","translations",{"id":319,"created_on":1828,"status":8,"label":1873,"slug":1874,"on_index_page":15},{"id":319,"created_on":1828,"status":8,"label":795,"slug":2160,"on_index_page":15},"localazy",{"id":319,"created_on":1828,"status":8,"label":1876,"slug":1877,"on_index_page":15},[],{"id":2164,"owner":2165,"created_by":7,"sort":7,"title":2166,"slug":2167,"modified_on":764,"created_on":2168,"pinned":15,"badge":7,"priority":1824,"main_image":2169,"status":8,"tags":2170,"dictionary":2176,"reading_time":1835,"excerpt":-1,"og_title":764,"og_description":764,"og_image":764},"6953a75663350c0001d6289c",{"id":1817,"first_name":1818,"last_name":764,"slug":1819,"avatar":1820},"A practical guide to translating with Localazy AI","a-practical-guide-to-translating-with-localazy-ai","2025-12-30T17:08:51.000+01:00","https:\u002F\u002Fghost.localazy.com\u002Fcontent\u002Fimages\u002F2025\u002F12\u002FLocalazy-AI-in-practice.png",[2171,2172,2175],{"id":269,"created_on":1828,"status":8,"label":1830,"slug":1831,"on_index_page":17},{"id":319,"created_on":1828,"status":8,"label":2173,"slug":2174,"on_index_page":15},"Automated Localization","automated-localization",{"id":319,"created_on":1828,"status":8,"label":1876,"slug":1877,"on_index_page":15},[],{"id":118,"sort":7,"created_on":2178,"name":2179,"cta_link":2126,"banner_image":2180},"2025-03-28T15:13:54.000Z","Ambassador",{"id":2181},"02b7af9a-80c3-40cc-8fc2-715d68c9f223"]