

 
{"id":4494,"date":"2014-06-01T16:01:34","date_gmt":"2014-06-01T16:01:34","guid":{"rendered":"https:\/\/ajt.morton.media\/successful-app-translation-it-all-starts-with-great-code-2\/"},"modified":"2022-05-08T15:59:32","modified_gmt":"2022-05-08T14:59:32","slug":"successful-app-translation-it-all-starts-with-great-code","status":"publish","type":"post","link":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/","title":{"rendered":"Successful app translation: It all starts with great code"},"content":{"rendered":"<p style=\"text-align: justify;\"><strong>Translating your app is a great way of reaching more users and increasing revenue. But in order to create beautiful language versions of your app, you need more than just a reliable\u00a0translation partner, you need code that is fit for localisation. In this blog post, we want to highlight the three most common\u00a0issues that we come across in app translation and show how writing great code can help save time, speed up the translation process and ultimately improve the user experience for your international customers.<\/strong><\/p>\n<h4 style=\"text-align: justify;\">1) The Problem: Lack of context<\/h4>\n<p style=\"text-align: justify;\">If you are writing app code, chances are you will be using variables or placeholders for any content that is dynamic, such as user names, prices, product names, social media names, etc. And here is the question our translators ask time and time again during the translation of apps: \u2018What does the variable\/placeholder stand for?\u2019<\/p>\n<p style=\"text-align: justify;\">The number one rule in presenting code for localisation is to provide as much context as you possibly can for each string and especially variables. Without knowing what a variable stands for, the string surrounding it can often not be properly translated.<\/p>\n<p style=\"text-align: justify;\">Here is a typical example:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"213\"><strong>English string<\/strong><\/td>\n<td valign=\"top\" width=\"213\"><strong>German string<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">The selected {1}<\/td>\n<td valign=\"top\" width=\"213\">Die ausgew\u00e4hlte\u00a0{1}<br \/>\nDas ausgew\u00e4hlte\u00a0{1}<br \/>\nDer ausgew\u00e4hlte\u00a0{1}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">The selected {1} &#8230; what does that mean? What is the context and what word will replace the variable? German nouns have \u2018gender\u2019 so the simple English \u2018the\u2019 can be translated as \u2018der\u2019, \u2018die\u2019 or \u2018das\u2019 into German, depending on the gender of the noun:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"213\"><strong>English string<\/strong><\/td>\n<td valign=\"top\" width=\"213\"><strong>German string<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">The selected file<\/td>\n<td valign=\"top\" width=\"213\">Die ausgew\u00e4hlte Datei<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">The selected folder<\/td>\n<td valign=\"top\" width=\"213\">Der ausgew\u00e4hlte Ordner<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">The selected directory<\/td>\n<td valign=\"top\" width=\"213\">Das ausgew\u00e4hlte Verzeichnis<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Whenever a variable is preceded by an article (the, a, this, etc), an adjective (selected, deleted, saved, etc) or a preposition (on, at, by, etc), chances are that the translators will need to know what the variable stands for in order to provide a correct translation.<\/p>\n<h4 style=\"text-align: justify;\">The solution: \u00a0Providing context at string level<\/h4>\n<p style=\"text-align: justify;\">There are a number of ways to provide context for translators. If you are using a simple file with a source and target column, add a third column that lists all the variables and explains what they stand for.<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"142\"><strong>English<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>German<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>Comment<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"142\">The selected\u00a0{1}<\/td>\n<td valign=\"top\" width=\"142\">Die ausgew\u00e4hlte Datei<\/td>\n<td valign=\"top\" width=\"142\">{1}\u00a0= file<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Could the variable be a number of different things? Let the translators know:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"142\"><strong>English<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>German<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>Comment<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"142\">The selected\u00a0{1}<\/td>\n<td valign=\"top\" width=\"142\">Die\/der ausgew\u00e4hlte\u00a0{1}<\/td>\n<td valign=\"top\" width=\"142\">{1}\u00a0= could be file or folder<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Naming your variables in a way that translators can understand is another way to provide context:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"213\">The selected {1}<\/td>\n<td valign=\"top\" width=\"213\">The selected {$file}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Different coding languages will require different naming conventions, but if you have the opportunity to provide more info within your variable name, that\u2019s a bonus.<\/p>\n<p style=\"text-align: justify;\">Finally, one of the most efficient ways to provide context at string level is to use a translation management tool like <a title=\"Smartling Website\" href=\"http:\/\/www.smartling.com\" target=\"_blank\" rel=\"noopener\">Smartling<\/a>. Smartling allows you to add context at string-level right within the platform so that the translator can see it above the translation. Even more importantly, you can upload screenshots alongside the string, so the translator can see where the string will sit within the app. If the translator still needs more info, they can ask a question at string level, again right within the platform. And you can answer right within the platform, too.<\/p>\n<p style=\"text-align: justify;\">Providing your translation team with as much context as possible, right down to the string level, will save you time, (a) because you will have to answer a lot less questions during the translation process, and (b) because you will have fewer context errors to fix during QA.<\/p>\n<h4 style=\"text-align: justify;\">2) The problem: Separating linguistic units across several strings<\/h4>\n<p style=\"text-align: justify;\">Presenting sentences for translation that have been separated across several strings, or variables that have been separated from the rest of their linguistic unit tends to cause translators a big headache. Due to the different word order and sentence structure in other languages, it\u2019s often not possible to provide a grammatically correct, or well-formed sentence if the source has been separated across several strings. Here are some fairly typical examples we come across:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"142\"><strong>Linguistic unit<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>Presented strings<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>German translation<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"142\">{1}\u2019s file<\/td>\n<td valign=\"top\" width=\"142\">String 1:\u00a0{1}<br \/>\nString\u00a0 2: \u2018s file<\/td>\n<td valign=\"top\" width=\"142\">Die Datei von\u00a0{1}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Most languages outside of English do not have the possessive &#8217;s structure, so the word order of the sentence tends to be different from English. In the example above, the variable actually appears at the end of the sentence in German.<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"142\"><strong>Linguistic unit<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>Presented strings<\/strong><\/td>\n<td valign=\"top\" width=\"142\"><strong>German translation<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"142\">{1}&#8217;s file was downloaded by {2}<\/td>\n<td valign=\"top\" width=\"142\">String 1: {1}<br \/>\nString 2: &#8217;s file was downloaded by<br \/>\nString 3: {2}<\/td>\n<td valign=\"top\" width=\"142\">Die Datei von {1}\u00a0wurde von {2} heruntergeladen.<em>Back translation:<\/em><br \/>\n<em> The file of {1} was from {2} downloaded.<\/em><br \/>\nOr with a changed sentence structure:{2} lud die Datei von {1} herunter.<em>Back translation:<\/em><br \/>\n<em> {2} loaded the file from {1} down.<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.5em;\">Here again, the word order is different in German. Presenting this linguistic unit as three separate strings will likely result in some grammatically awkward constructions in other languages, if a translation is even possible at all. If you\u2019re going through the trouble of localising your app into another language, you want it to sound as native and natural as possible.<\/span><\/p>\n<h4 style=\"text-align: justify;\">The solution: Provide whole strings<\/h4>\n<p style=\"text-align: justify;\">The best way to ensure a beautiful translation is to present the entire linguistic unit within one string. A linguistic unit can be something really short like \u2018{1}\u2019s\u2019 or a whole sentence.<\/p>\n<p style=\"text-align: justify;\">But what about if you simply <strong>have<\/strong> to separate out linguistic units to allow for formatting, links, etc?\u00a0 Here is where a translation management system like Smartling comes into play. Smartling will present whole linguistic units to the translators, but they are broken down into individual segments. The translators can re-order these segments so that they can create a grammatically correct translation while keeping all the formatting intact. They can even add an additional segment for the translation if their language requires it.<\/p>\n<h4 style=\"text-align: justify;\">3) The problem: Too many options<\/h4>\n<p style=\"text-align: justify;\">Finally, we often come across strings that could be translated in a number of different ways depending on the context.<\/p>\n<p style=\"text-align: justify;\">Nouns:<\/p>\n<p style=\"text-align: justify;\">Coming back to the topic of gender in nouns, check out this example:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"213\"><strong>English<\/strong><\/td>\n<td valign=\"top\" width=\"213\"><strong>German<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">Your friend {1} has accepted your invite.<\/td>\n<td valign=\"top\" width=\"213\">Friend is female: Deine Freundin {1} hat deine Einladung akzeptiert.Friend is male: Dein Freund {1} hat deine Einladung akzeptiert.Neutral translation: Dein\/e Freund\/in {1} hat deine Einladung akzeptiert.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">\u00a0As you can see, the only way to provide a neutral translation is to use slashes to include both options, which tends to make the translation longer and harder to read for the user.<\/p>\n<p style=\"text-align: justify;\">Verbs:<\/p>\n<p style=\"text-align: justify;\">Verbs are translated differently depending on whether the subject is singular or plural, or which person it refers to. Here is a simple example:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"213\"><strong>English<\/strong><\/td>\n<td valign=\"top\" width=\"213\"><strong>German<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">I ran<\/td>\n<td valign=\"top\" width=\"213\">Ich rannte<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">You ran<\/td>\n<td valign=\"top\" width=\"213\">Du ranntest<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">He\/She ran<\/td>\n<td valign=\"top\" width=\"213\">Er\/Sie rannte<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">We ran<\/td>\n<td valign=\"top\" width=\"213\">Wir rannten<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">You ran<\/td>\n<td valign=\"top\" width=\"213\">Ihr ranntet<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">They ran<\/td>\n<td valign=\"top\" width=\"213\">Sie rannten<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">If you present the verb \u2018ran\u2019 as one global separate string to then produce phrases like \u2018I ran\u2019, \u2018you ran\u2019 and \u2018they ran\u2019 this won\u2019t work, because as you can see in the example above, the translation will be different for each \u2018scenario\u2019.<\/p>\n<h4 style=\"text-align: justify;\"><span style=\"font-size: 1.17em; line-height: 1.5em;\">The solution: Create separate strings for each scenario<\/span><\/h4>\n<p style=\"text-align: justify;\">The best way to get around this, is to present each scenario separately to the translator. For example:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"213\"><strong>English<\/strong><\/td>\n<td valign=\"top\" width=\"213\"><strong>German<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">Your friend {1}\u00a0has accepted your invite.<br \/>\nContext: friend = female<\/td>\n<td valign=\"top\" width=\"213\">Deine Freundin {1}\u00a0hat deine Einladung akzeptiert<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">Your friend {1}\u00a0has accepted your invite.<br \/>\nContext: friend = male<\/td>\n<td valign=\"top\" width=\"213\">Dein Freund {1}\u00a0hat deine Einladung akzeptiert<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"213\">Your friend {1}\u00a0has accepted your invite.<br \/>\nContext: friend = gender not known<\/td>\n<td valign=\"top\" width=\"213\">Dein\/e Freund\/in {1}\u00a0hat deine Einladung akzeptiert.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"line-height: 1.5em;\">If you would like to talk in more detail about best practices for code that is fit for localisation, or if you&#8217;d like to find out more about Smartling as a translation management tool for your app translation,\u00a0<\/span><a style=\"line-height: 1.5em;\" title=\"Contact\" href=\"\/?page_id=44873\">please get in touch<\/a><span style=\"line-height: 1.5em;\">.<\/span><\/p>\n<hr \/>\n<p><strong>Image credit:<\/strong> Photo by <a href=\"https:\/\/unsplash.com\/@kobuagency?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">KOBU Agency<\/a> on <a href=\"https:\/\/unsplash.com\/s\/photos\/code?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Translating your app is a great way of reaching more users and increasing revenue. But in order to create beautiful language versions of your app, you need more than just a reliable\u00a0translation partner, you need code that is fit for localisation. In this blog post, we want to highlight the three most common\u00a0issues that we<\/p>\n","protected":false},"author":2,"featured_media":40040,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"inline_featured_image":false},"categories":[],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.10 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Successful app translation: It all starts with great code - AJT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Successful app translation: It all starts with great code - AJT\" \/>\n<meta property=\"og:description\" content=\"Translating your app is a great way of reaching more users and increasing revenue. But in order to create beautiful language versions of your app, you need more than just a reliable\u00a0translation partner, you need code that is fit for localisation. In this blog post, we want to highlight the three most common\u00a0issues that we\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\" \/>\n<meta property=\"og:site_name\" content=\"AJT\" \/>\n<meta property=\"article:published_time\" content=\"2014-06-01T16:01:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-08T14:59:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.teamajt.com\/wp-content\/uploads\/kobu-agency-67L18R4tW_w-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1716\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Anja Jones\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anja Jones\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\"},\"author\":{\"name\":\"Anja Jones\",\"@id\":\"https:\/\/www.teamajt.com\/#\/schema\/person\/efaed20468cf4c5b9ce15502d986e194\"},\"headline\":\"Successful app translation: It all starts with great code\",\"datePublished\":\"2014-06-01T16:01:34+00:00\",\"dateModified\":\"2022-05-08T14:59:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\"},\"wordCount\":1310,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.teamajt.com\/#organization\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\",\"url\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\",\"name\":\"Successful app translation: It all starts with great code - AJT\",\"isPartOf\":{\"@id\":\"https:\/\/www.teamajt.com\/#website\"},\"datePublished\":\"2014-06-01T16:01:34+00:00\",\"dateModified\":\"2022-05-08T14:59:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.teamajt.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Successful app translation: It all starts with great code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.teamajt.com\/#website\",\"url\":\"https:\/\/www.teamajt.com\/\",\"name\":\"AJT\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.teamajt.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.teamajt.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.teamajt.com\/#organization\",\"name\":\"Anja Jones Translation\",\"url\":\"https:\/\/www.teamajt.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.teamajt.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ajt.morton.media\/wp-content\/uploads\/ajt_logo.png\",\"contentUrl\":\"https:\/\/ajt.morton.media\/wp-content\/uploads\/ajt_logo.png\",\"width\":889,\"height\":877,\"caption\":\"Anja Jones Translation\"},\"image\":{\"@id\":\"https:\/\/www.teamajt.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.teamajt.com\/#\/schema\/person\/efaed20468cf4c5b9ce15502d986e194\",\"name\":\"Anja Jones\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.teamajt.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e69dd22926110addbcd6d77338337bce?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e69dd22926110addbcd6d77338337bce?s=96&d=mm&r=g\",\"caption\":\"Anja Jones\"},\"description\":\"Equipped with a degree in Linguistics and French from Sussex University and 10 years of working experience in a variety of sectors including tourism &amp; hospitality, financial risk assessment, logistics, administration and event management, Anja started Anja Jones Translation in 2010 with the aim of helping companies to access overseas markets. Based in our Newquay office (we like to call it AJT HQ), Anja manages our German team. She\u2019s most passionate about language change, eco-friendly brands and surfing \u2013 and will never say no to a bar of Kinder chocolate.\",\"sameAs\":[\"https:\/\/ajt.morton.media\"],\"url\":\"https:\/\/ajt.morton.media\/de\/author\/anja\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Successful app translation: It all starts with great code - AJT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/","og_locale":"de_DE","og_type":"article","og_title":"Successful app translation: It all starts with great code - AJT","og_description":"Translating your app is a great way of reaching more users and increasing revenue. But in order to create beautiful language versions of your app, you need more than just a reliable\u00a0translation partner, you need code that is fit for localisation. In this blog post, we want to highlight the three most common\u00a0issues that we","og_url":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/","og_site_name":"AJT","article_published_time":"2014-06-01T16:01:34+00:00","article_modified_time":"2022-05-08T14:59:32+00:00","og_image":[{"width":2560,"height":1716,"url":"https:\/\/www.teamajt.com\/wp-content\/uploads\/kobu-agency-67L18R4tW_w-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Anja Jones","twitter_misc":{"Verfasst von":"Anja Jones","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#article","isPartOf":{"@id":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/"},"author":{"name":"Anja Jones","@id":"https:\/\/www.teamajt.com\/#\/schema\/person\/efaed20468cf4c5b9ce15502d986e194"},"headline":"Successful app translation: It all starts with great code","datePublished":"2014-06-01T16:01:34+00:00","dateModified":"2022-05-08T14:59:32+00:00","mainEntityOfPage":{"@id":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/"},"wordCount":1310,"commentCount":0,"publisher":{"@id":"https:\/\/www.teamajt.com\/#organization"},"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/","url":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/","name":"Successful app translation: It all starts with great code - AJT","isPartOf":{"@id":"https:\/\/www.teamajt.com\/#website"},"datePublished":"2014-06-01T16:01:34+00:00","dateModified":"2022-05-08T14:59:32+00:00","breadcrumb":{"@id":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ajt.morton.media\/de\/successful-app-translation-it-all-starts-with-great-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.teamajt.com\/de\/"},{"@type":"ListItem","position":2,"name":"Successful app translation: It all starts with great code"}]},{"@type":"WebSite","@id":"https:\/\/www.teamajt.com\/#website","url":"https:\/\/www.teamajt.com\/","name":"AJT","description":"","publisher":{"@id":"https:\/\/www.teamajt.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.teamajt.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.teamajt.com\/#organization","name":"Anja Jones Translation","url":"https:\/\/www.teamajt.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.teamajt.com\/#\/schema\/logo\/image\/","url":"https:\/\/ajt.morton.media\/wp-content\/uploads\/ajt_logo.png","contentUrl":"https:\/\/ajt.morton.media\/wp-content\/uploads\/ajt_logo.png","width":889,"height":877,"caption":"Anja Jones Translation"},"image":{"@id":"https:\/\/www.teamajt.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.teamajt.com\/#\/schema\/person\/efaed20468cf4c5b9ce15502d986e194","name":"Anja Jones","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.teamajt.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e69dd22926110addbcd6d77338337bce?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e69dd22926110addbcd6d77338337bce?s=96&d=mm&r=g","caption":"Anja Jones"},"description":"Equipped with a degree in Linguistics and French from Sussex University and 10 years of working experience in a variety of sectors including tourism &amp; hospitality, financial risk assessment, logistics, administration and event management, Anja started Anja Jones Translation in 2010 with the aim of helping companies to access overseas markets. Based in our Newquay office (we like to call it AJT HQ), Anja manages our German team. She\u2019s most passionate about language change, eco-friendly brands and surfing \u2013 and will never say no to a bar of Kinder chocolate.","sameAs":["https:\/\/ajt.morton.media"],"url":"https:\/\/ajt.morton.media\/de\/author\/anja\/"}]}},"_links":{"self":[{"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/posts\/4494"}],"collection":[{"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/comments?post=4494"}],"version-history":[{"count":3,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/posts\/4494\/revisions"}],"predecessor-version":[{"id":47962,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/posts\/4494\/revisions\/47962"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/media\/40040"}],"wp:attachment":[{"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/media?parent=4494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/categories?post=4494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ajt.morton.media\/de\/wp-json\/wp\/v2\/tags?post=4494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}