{"id":287,"date":"2011-02-15T23:41:32","date_gmt":"2011-02-15T22:41:32","guid":{"rendered":"http:\/\/eb7e593e-d4ec-4d80-b694-ed0c848edc88"},"modified":"2018-09-25T03:01:50","modified_gmt":"2018-09-25T01:01:50","slug":"apt-1-localization-bug","status":"publish","type":"post","link":"https:\/\/www.small-apps.com\/de\/2011\/02\/apt-1-localization-bug\/","title":{"rendered":"APT 1: Localization \u201eBug\u201c"},"content":{"rendered":"<p><a href=\"http:\/\/www.small-apps.com\/wp-content\/uploads\/2011\/02\/100_2411.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-550\" title=\"100_2411\" src=\"http:\/\/www.small-apps.com\/wp-content\/uploads\/2011\/02\/100_2411.jpg\" alt=\"\" width=\"800\" height=\"534\" srcset=\"https:\/\/www.small-apps.com\/wp-content\/uploads\/2011\/02\/100_2411.jpg 800w, https:\/\/www.small-apps.com\/wp-content\/uploads\/2011\/02\/100_2411-300x200.jpg 300w, https:\/\/www.small-apps.com\/wp-content\/uploads\/2011\/02\/100_2411-449x300.jpg 449w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>\u201eAPT\u201c soll f\u00fcr \u201eApp programmier Tipps\u201c stehen. Damit sollen diese Artikel leichter von den anderen Beitr\u00e4gen in diesem Blog unterscheidbar sein. F\u00fcr den Fall, dass man sie mal alle nacheinander ansehen will.<\/p>\n<p>Nehmen wir mal an, Du hast eine Applikation im Apple Store, die nur in einer Sprache erh\u00e4ltlich ist. Nun steht eine neue Version an und Du freust Dich, dass Du eine feine \u00dcbersetzung f\u00fcr Deine Texte hast. Mit wenigen Klicks und Stundenlangem tippen ist es so weit:<\/p>\n<p>und&#8230;.<\/p>\n<p>Die alten Texte erscheinen immer noch &#8211; egal, auf welche Sprache DU umschaltest. Das liegt daran, dass Du den Namen Deiner Ressourcen gleich gelassen hast und in der Bundle Direktory noch die alte, nicht lokalisierte Version rumliegt &#8211; und die wird dummerweise zuerst gefunden!<br \/>\nJetzt gibt es zwei M\u00f6glichkeiten:<br \/>\n1.) Die Installation auf Deinem iPhone oder Simulator zu l\u00f6schen &#8211; dann sind die alten Versionen weg.<br \/>\n2.) Wenn l\u00f6schen keine L\u00f6sung ist, weil dann Daten weg sind: Die Resource-Dateien umbenennen. Aber Vorsicht &#8211; keine nicht-lokalisierte Version der Datei mit dem neuen Namen ausprobieren, sonst hat man die auch auf dem Ger\u00e4t.<br \/>\n3.) Als Dritte von zwei L\u00f6sungen kann man auch noch dem sch\u00f6nen InitWithNibName die richtige Datei geben. Die bekommt man mit Hilfe des Arrays \u201ePreferredLocalizations\u201c aus dem Bundle.<\/p>\n<blockquote><p>NSBundle* bundle = [NSBundle mainBundle];<br \/>\nNSString *nibname =<br \/>\n[NSString stringWithFormat:@&#8220;%@.lproj\/FlipsideView&#8220;, [[bundle preferredLocalizations]objectAtIndex:0]];<\/p><\/blockquote>\n<p>Nun ja, da direkt in den Index 0 zu gehen ist nicht die 100% Feine Art, aber da man ja den Pointer den man vom InitwithNibName bekommt \u00fcberpr\u00fcft (das macht Ihr doch alle, oder?) kann man das so lassen und im Falle, dass die Datei nicht da ist, noch mal ohne Lokalisation nachfragen.<\/p>\n<p>Laut Dokumentation ist garantiert: Dass Deine Kunden die alte Datei auch gel\u00f6scht bekommen. Allerdings: Es gab Leute im Internet, die behaupten, sie h\u00e4tten dieses Problem nach dem Installieren der neuen Version. Leider kann ich nicht nachpr\u00fcfen, ob die ein anderes, oder genau dieses Problem haben &#8211; Vorsicht ist aber besser als die App zweimal einreichen m\u00fcssen habe ich mir gedacht und mal eben die dritte Methode implementiert.<\/p>\n<p>Kommentare willkommen!<br \/>\nGru\u00df, Thomas<\/p>\n<p>P.s.: Nein, von der App aus l\u00f6schen kann man die Datei nicht &#8211; die BUNDLE-Directory ist aus der Sicht der App schreibgesch\u00fctzt.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u201eAPT\u201c soll f\u00fcr \u201eApp programmier Tipps\u201c stehen. Damit sollen diese Artikel leichter von den anderen Beitr\u00e4gen in diesem Blog unterscheidbar sein. F\u00fcr den Fall, dass man sie mal alle nacheinander ansehen will. Nehmen wir mal an, Du hast eine Applikation im Apple Store, die nur in einer Sprache erh\u00e4ltlich ist. Nun steht eine neue Version &hellip; <a href=\"https:\/\/www.small-apps.com\/de\/2011\/02\/apt-1-localization-bug\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eAPT 1: Localization \u201eBug\u201c\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-287","post","type-post","status-publish","format-standard","hentry","category-apt-app-programming-tipps"],"_links":{"self":[{"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/posts\/287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/comments?post=287"}],"version-history":[{"count":8,"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/posts\/287\/revisions"}],"predecessor-version":[{"id":1483,"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/posts\/287\/revisions\/1483"}],"wp:attachment":[{"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/media?parent=287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/categories?post=287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.small-apps.com\/de\/wp-json\/wp\/v2\/tags?post=287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}