{"id":616,"date":"2014-06-17T11:04:07","date_gmt":"2014-06-17T18:04:07","guid":{"rendered":"http:\/\/www.ibabbleon.com\/copywriter-translator\/?p=616"},"modified":"2018-03-17T10:23:04","modified_gmt":"2018-03-17T17:23:04","slug":"new-xcode-6-localization-ios-yosemite","status":"publish","type":"post","link":"https:\/\/www.ibabbleon.com\/copywriter-translator\/2014\/06\/new-xcode-6-localization-ios-yosemite\/","title":{"rendered":"What&#8217;s new in Xcode 6 Localization for iOS 8 and Yosemite"},"content":{"rendered":"<h1>Xcode 6 brings XLIFF file format and new localization languages<\/h1>\n<p>While developers are poring over the Xcode 6 beta released at WWDC 2014, we&#8217;ve been getting questions about some of the big changes and improvements Apple made for localization in iOS 8 and Mac OS X Yosemite. We&#8217;ll go in depth in these topics as we update our iOS App Localization Tutorial, but for now here is a recap of the biggest changes.<\/p>\n<p><span class=\"badge badge-success\">Update<\/span> Our new <a href=\"http:\/\/www.ibabbleon.com\/iphone\">iOS localization tutorial for Xcode 6<\/a> is ready. Check it out!<\/p>\n<h3>XLIFF comes to Xcode with easy import and export<\/h3>\n<p>Apple touts that the new <strong>xliff file<\/strong> file format is an industry standard, which can be used by many localization tools. That&#8217;s true. Babble-on has been working with <strong>xliff<\/strong> for years, so we&#8217;re happy to see this change. (We can still work with your <strong>.strings<\/strong> files of course.) Essentially, <strong>xliff<\/strong> is just an xml file structured specifically for localization. Rather than having to go through the unintuitive process of using two, separate command-line functions to export your strings for localization, Apple now let&#8217;s you do it from the menu bar. Select <strong><span style=\"color: #000000;\">Editor &gt; Export For Localization<\/span><\/strong><\/p>\n<figure id=\"attachment_617\" aria-describedby=\"caption-attachment-617\" style=\"width: 625px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ibabbleon.com\/copywriter-translator\/wp-content\/uploads\/2014\/06\/export_base_localization_2x.png\"><img loading=\"lazy\" class=\"size-large wp-image-617\" src=\"http:\/\/www.ibabbleon.com\/copywriter-translator\/wp-content\/uploads\/2014\/06\/export_base_localization_2x-1024x612.png\" alt=\"The localization editor in Xcode 6 makes it much simpler to export your strings.\" width=\"625\" height=\"373\" srcset=\"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-content\/uploads\/2014\/06\/export_base_localization_2x-1024x612.png 1024w, https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-content\/uploads\/2014\/06\/export_base_localization_2x-300x179.png 300w, https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-content\/uploads\/2014\/06\/export_base_localization_2x-624x373.png 624w, https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-content\/uploads\/2014\/06\/export_base_localization_2x.png 1257w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><figcaption id=\"caption-attachment-617\" class=\"wp-caption-text\">The localization editor in Xcode 6 makes it much simpler to export your strings.<\/figcaption><\/figure>\n<p>The <strong>exported xliff file<\/strong>\u00a0is actually a combination of ALL your .strings files. Those .strings still exist in Xcode \u2014 you just won&#8217;t need to deal with them any more! Once we&#8217;ve translated the <strong>en.xliff<\/strong> file for you, you&#8217;ll get back a new one for each language:\u00a0<strong>fr.xliff\u00a0<\/strong>for French,\u00a0<strong>es.xliff<\/strong> for Spanish, and so on. Import those into Xcode using the menu\u00a0<span style=\"color: #000000;\"><strong>Editor &gt; Import Localizations<\/strong>. Easy! Having just 1 file per language is a great improvement.<\/span><\/p>\n<p>In case you do love the command line, Apple also introduced new commands to accomplish the same thing:<\/p>\n<pre>xcodebuild -exportLocalizations -localizationPath &lt;dirpath&gt; -project &lt;projectname&gt; [[-exportLanguage &lt;targetlanguage&gt;]]\r\n<span style=\"text-decoration: line-through;\">xcodebuild -importLocalizations -localizationPath &lt;dirpath&gt; -project &lt;projectname&gt; [-forceImport]<\/span> <i>Import CLI removed from Xcode golden master<\/i>\r\n<\/pre>\n<h2>Preview localizations and pseudolocalizations in Interface Builder<\/h2>\n<p>Another new feature in Xcode 6 is the ability to view your localizations &#8220;live&#8221; in Interface Builder. This is a good way of checking that your interface doesn&#8217;t break or look sloppy in other languages that are\u00a0more verbose than English (I&#8217;m looking at you, German). We hope more developers will take advantage of this tool to improve the design layout for international audiences. In fact, Xcode 6 even lets you preview these issues BEFORE you localize. There is a new Pseudolocalization option for Interface builder offering right-to-left and DOUBLE-length\u00a0options.<\/p>\n<p style=\"color: #000000;\"><span style=\"font-weight: bold;\">\u00a0Testing your app using Apple&#8217;s pseudolanguages<\/span><\/p>\n<ol class=\"ol\" style=\"color: #000000;\">\n<li class=\"li\">Click the target in the <strong>Run<\/strong> destination menu and choose <strong>Edit Scheme<\/strong>.<\/li>\n<li class=\"li\">On the right, select <strong>Options<\/strong>.<\/li>\n<li class=\"li\">Choose a pseudolocalization from the Application Language pop-up menu. Then hit the\u00a0<strong>Close<\/strong> button.<\/li>\n<li class=\"li\">Click <strong>Run<\/strong> to relaunch your app in the pseudolanguage.<\/li>\n<\/ol>\n<p><span style=\"color: #000000;\">Apple&#8217;s method is nice because it is built in. However, our developers have told us they like the pseudolocalization files we provide because you can view your texts\u00a0as <\/span><button id=\"asian\" class=\"btn btn-small \" style=\"color: #333333;\" type=\"button\" data-placement=\"top\" data-original-title=\"Great for spotting missing strings\"><b style=\"color: black;\">\u6f22\u5b57<\/b><\/button><span style=\"color: #333333;\">\u00a0<\/span><button id=\"european\" class=\"btn btn-small active \" style=\"color: #333333;\" type=\"button\" data-original-title=\"&lt;- 30% longer -&gt;\"><b style=\"color: black;\">\u00c9\u00fb\u0155\u00f4\u00f4\u00fe\u00e9\u00e0\u00e0\u00f1<\/b><\/button><span style=\"color: #333333;\">\u00a0<\/span><button id=\"arabic\" class=\"btn btn-small \" type=\"button\" data-placement=\"right\" data-original-title=\"Test your right-to-left apps\"><b><span style=\"color: #333333;\">\u062e\u0637\u00a0<\/span><\/b><\/button><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p><strong>Seeing your texts in a different script makes it easier to spot strings you have overlooked.<\/strong> Apple&#8217;s method simply CAPITALIZES words to indicate you forgot to localize them. We still offer <a href=\"http:\/\/www.ibabbleon.com\/pseudolocalization.html\">free pseudolocalization<\/a>, including for the XLIFF format, from our Web site.<\/p>\n<p><a class=\"button green\" href=\"http:\/\/www.ibabbleon.com\/pseudolocalization.html\">Free Pseudolocalization<\/a><\/p>\n<h2>New localization languages, regions, and locales<\/h2>\n<p>The other big news for localization in Xcode 6 is the addition of new languages and locales. Specifically, Apple has added its own localizations for:<\/p>\n<p><strong>Hindi<br \/>\nIndian English<br \/>\nCanadian French<br \/>\nHong Kong Chinese<\/strong><\/p>\n<p>In addition, Apple added keyboards for\u00a0<span style=\"font-weight: bold; color: #333333;\">Bengali, Marathi, Urdu, Indian English, Filipino, Slovenian<\/span><strong>.\u00a0<\/strong>That means that, even if iOS 8 is not translated into those languages yet, at least users in those countries can use their own alphabet or keyboard to type out messages.<\/p>\n<p>For developers, the bigger news is the lifting of an old iOS restriction about languages and locales. <strong>You can now localize your app into ANY language (even Klingon) \u2014 not just those that Apple has done!<\/strong>\u00a0This means that if you have a project for India, you can localize in Tamil and Bengali even though\u00a0Apple doesn&#8217;t provide system-wide localizations for those languages. That puts iOS on par with Mac OS X in region capabilities. It also means Lord of the Rings fans can add Elvish to the list of languages they support, assuming they find an Elvish translator.<\/p>\n<p>Babble-on can&#8217;t translate Elvish or Klingon, but we can help you with some of the other localizations you may want. <a href=\"http:\/\/www.ibabbleon.com\/contact.html\">Contact us!<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Xcode 6 brings XLIFF file format and new localization languages While developers are poring over the Xcode 6 beta released at WWDC 2014, we&#8217;ve been getting questions about some of the big cha","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":""},"categories":[85,86,5,31,84],"tags":[66,67,68,43,73,80,71,70,78,65,69,72],"_links":{"self":[{"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/posts\/616"}],"collection":[{"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/comments?post=616"}],"version-history":[{"count":8,"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/posts\/616\/revisions"}],"predecessor-version":[{"id":643,"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/posts\/616\/revisions\/643"}],"wp:attachment":[{"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/media?parent=616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/categories?post=616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ibabbleon.com\/copywriter-translator\/wp-json\/wp\/v2\/tags?post=616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}