Menu

14 maart 2010

iPhone: Springboard tekstlabels wijzigen [jailbreak]

Alle teksten die verschijnen in de iPhone OS interface zijn in de programma code voorzien van een referentie-label, in een tabel wordt dit referentie-label opgezocht en de bijbehorende tekst word weergegeven. Door per taal een aparte tabel te gebruiken is het voor Apple redelijk eenvoudig om nieuwe talen toe te voegen aan het iPhone OS.

De lokale vertalingen worden opgeslagen in zogenaamde .Iproj containers. Wanneer je in de .app folder van een standaard iPhone applicatie kijkt zal je hierin bestanden als Dutch.Iproj, English,Iproj, German.Iproj etc.. tegen komen.

De .Iproj container bevat in de meeste gevallen een .strings bestand waarin de referentie-labels en de bijhorende vertalingen zijn terug te vinden. Om deze bestanden te bewerken is het handig om over een applicatie als BBedit te beschikken omdat de standaard teksteditor van OS X de bestanden niet kan lezen.

Wanneer je over een iPhone beschikt die is voorzien van een Jailbreak, dan kan je redelijk eenvoudig de tekstlabels aanpassen. In het onderstaande voorbeeld gaan we de Slider-tekst ‘ontgrendelen’ op het home-screen wijzigen in ‘apple tips’.

Let op! Volg de onderstaande procedure alleen als je weet waarmee je bezig bent. Wanneer je een fout maakt in het wijzigen van systeembestanden kan dit leiden tot een volledige restore van je iPhone!

Maak een verbinding naar je iPhone met SFTP of een USB applicatie zoals DiskAid of iPhone Explorer. Als je bent verbonden ga je naar de folder: /System/Library/CoreServices/SpringBoard.app.

Als je iPhone is ingesteld op de Nederlandse taal dan open je de map Dutch.iProj wanneer je de Engelse taal gebruikt open dan de map English.Iproj. In deze map zie je het bestand SpringBoard.strings, kopieer deze naar je Mac en maak een extra kopie van het bestand zodat je altijd een backup bezit.

Open nu het SpringBoard.strings bestand met BBedit en ga hierin op zoek naar het label AWAY_LOCK_LABEL, als je deze hebt gevonden dan zal je zien dat onder het label de tekst staat die wordt weergegeven in de interface, in dit geval ‘ontgrendelen’. Je kan nu de tekst aanpassen, bewaar hierna de wijzigingen en plaats het bestand terug op je iPhone. In dit voorbeeld wijzigen we ‘ontgrendelen’ in ‘apple tips’.

De .strings bestanden worden alleen ingelezen wanneer de bijbehorende applicatie wordt gestart. In dit geval zie je dus niet direct de wijzigingen omdat het SpringBoard al is gestart. Het is noodzakelijk om het SpringBoard te herstarten, dit is mogelijk door je iPhone simpelweg uit en weer aan te zetten. Wanneer je toegang hebt tot je iPhone via een SSH verbinding dan kan je het SpringBoard herstarten door de onderstaande commando’s gebruiken:

cd System/Library/CoreServices/SpringBoard.app
restart; ./SpringBoard

Na de hestart zal je zien dat het tekstlabel in de interface is aangepast.




Gerelateerde tips:




Reacties


  • luc 14 maart 2010 om 10:36

    Bedankt!

  • Willem 21 maart 2010 om 11:03

    Ik doe dit toch liever via Winterboard ipv m’n systeembestanden aan te passen.

  • Thomas 26 maart 2010 om 15:31

    Kan dit ook met windows? Of moet ik hiervoor even een macbook lenen?

  • Jelmer 8 mei 2010 om 9:07

    @ Thomas:

    Je kan het ook gewoon via je pc doen. En in plaats van je systeembestanden aan te passen, kan je ook entriekiller via cydia downloaden. ga dan naar library/themes/entriekiller/folders/springboard.app en dan de nl.proj. Open dan het bestandje dat daar in zit en pas het daar aan, gaat er iets mis dan kan je gewoon weer naar cydia en dan entriekiller opnieuw installeren.

Een reactie toevoegen: