1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

APK übersetzen -> Layout Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von FreakZ1, 07.03.2011.

  1. FreakZ1, 07.03.2011 #1
    FreakZ1

    FreakZ1 Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2011
    Hallo erstmal, ich bin der neue :tongue: und hoffe hier ein wenig Hilfe bei meinem Problem zu bekommen.

    Die Ausgangssituation ist folgende:
    Ich habe hier eine APK aus einem MIUI ROM, wobei die strings.xml im Ordner /res/values gemischt englisch und chinesisch ist. Eine deutsche Sprachdatei ist nicht vorhanden.

    Die strings.xml aus dem Ordner /res/values-en hab ich also einfach kopiert und in den Ordner /res/values hineinkopiert. Das hat auch alles wunderbar geklappt.

    Allerdings habe ich ein Problem mit dem Layout, die Standardwerte sind ja im Ordner /res/layout in xml's festgelegt, sollte es für eine Sprache abweichende Layouts geben, sind diese in den entsprechenden Ordnern /res/layout-XX gespeichert.
    Habe ich die xml's im Ordner layout-XX werden die Änderungen übernommen, ändere ich die Werte allerdings in den xml's im Standardordner layout und entferne den Ordner layout-XX haben die Änderungen keine Auswirkung obwohl die xml's eigentlich passen.

    Das Problem ist nun, wenn eine Sprache gewählt wird, für die kein eigenes Layout vorhanden ist, die Schriftgrößen zu groß sind. Ich müsste also für jede Sprache einen eigenen Ordner layout-XX erstellen der die betreffenden xml's beinhaltet. Das wären aber bei den meisten die selben, und dafür ist ja eigentlich der Standardordner layout da.

    Kann mir jemand sagen woran das liegt?

    Zum de/-compilieren nutze ich den APKManager in der Version 4.9, xml's werden mit Notepad++ als Unix und UTF-8 bearbeitet und gespeichert.

    Sollten bei euch noch Fragen offen sein, die ich hier noch nicht beantwortet habe, dann fragt einfach^^

    Schonmal danke im voraus!

    Schönen Gruß,
    FreakZ1
     
  2. FreakZ1, 09.03.2011 #2
    FreakZ1

    FreakZ1 Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2011
    Gibts denn niemanden der mir hierbei helfen kann?
     
  3. Unicate, 09.03.2011 #3
    Unicate

    Unicate Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Wozu willst du eigentlich Layouts aus einer nicht von dir geschriebenen App kopieren? Das macht man doch nicht... *tststs*

    Ich kann außerdem nicht sagen wie gut die decompiler sind. Die xml's werden ja in einem eigenen (vor - "kompilierten") format in der apk gespeichert, daher kann man die nicht einfach rauskopieren (nur zur info)

    Fakt ist auch, das du Recht hast. die values[-XX] und layout[-XX] werden für die jeweiligen Sprachen verwendet und die ohne XX sollten default sein. Die Dateien in den Ordnern layout und values sollten auch unabhängig voneinander funktionieren (also bei values-en muss es nicht unbedingt ein layout-en geben)

    Warum änderst du nicht einfach die Schriftgröße in deinem Defaultlayout?
     
  4. FreakZ1, 09.03.2011 #4
    FreakZ1

    FreakZ1 Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    07.03.2011
    Ich kopiere die XMLs ja nicht einfach aus der APK, ich decompiliere die APK und hab dann die nichtcompilierten XMLs vor mir liegen.

    Hier nochmal die Ausgangssituation zum vielleicht besseren Verständnis:
    1. /res/values/strings.xml --> englisch/chinesisch gemixt
    2. /res/values-en/strings.xml --> reines englisch
    3. /res/values-zh-rCN/strings.xml --> komplett chinesisch

    a. /res/layout/....xml --> Schriftgrößen passend für EN/CN gemischt
    b. /res/layout-en/....xml --> Schriftgrößen passend für EN
    c. /res/layout-zh-rCN/....xml --> Schriftgrößen passend für CN

    Die XML's aus 2. sollen nun in 1. wandern, sodass wenn man die Systemsprache nicht auf englisch ist, die Sprache der App trotzdem englisch ist und nicht englisch/chinesisch gemixt. Das funktioniert mit der strings.xml auch problemlos, allerdings sind die Layout XML's nicht dafür angepasst, deshalb soll auch b. nach a. wandern, was nach dem compilieren allerdings keinen Effekt hat, und immernoch das ursprüngliche Standardlayout greift. Ändere ich die Schriftgröße in den XML's von Hand hat das, genauso wie das kopieren von b. nach a., nach dem compilieren keinen Effekt.

    Ich frag mich also gerade, warum das so ist und ob das Layout evtl. noch in anderen Dateien gespeichert ist.
     
  5. wilco, 09.03.2011 #5
    wilco

    wilco Android-Hilfe.de Mitglied

    Beiträge:
    106
    Erhaltene Danke:
    32
    Registriert seit:
    10.08.2010
    Die Layout-Werte können auch per Code geändert werden. Wenn Du die App eh schon dekompiliert hast, mach doch mal eine Text-Suche nach "setTextSize".
     
  6. streem, 08.02.2012 #6
    streem

    streem Android-Hilfe.de Mitglied

    Beiträge:
    80
    Erhaltene Danke:
    19
    Registriert seit:
    18.07.2011
    ich habe dazu mal eine andere frage, die mir dennoch hier gut aufgehoben scheint:

    habe mir demletzt eine app gekauft, für die auch kürzlich eine deutsche übersetzung releast wurde. allerdings ist die grauslich und verhaut z.b. bei popups das ganze design, weil die deutschen texte zu lang sind. einzelne buttons auf dem popup sind verschoben/asymmetrisch, etc. also habe ich den entwickler angeschrieben und ihn darauf aufmerksam gemacht. allerdings lässt er sich ziemlich zeit, weswegen ich spaßeshalber einfach mal selber die bearbeitung der sprachdatei ausprobiert habe. habe ähnlich wie der threadersteller die .apk mit dem selben tool dekompiliert, die deutschen strings bearbeitet, .apk kompiliert und gesigned. nun freezt die app aber gleich beim ersten start nach der installation...woran kann das liegen?! dass es eine gekaufte app ist und einen license check hat?! prüft der einzelne größen von files, wie den übersetzungs strings nach?! O.o
     

Diese Seite empfehlen