Aggiungere nuove lingue in una ROM Stock Android

Molto spesso capita di acquistare degli smartphone o dei tablet con Android dall'estero per diversi motivi ad esempio o perché costano molto meno o perché quel modello specifico non è in vendita in Italia.

Android è un sistema operativo internazionale quindi nella maggior parte dei casi non ci sono problemi ed il terminale include nativamente il supporto per molte lingue e localizzazioni ma per i più sfortunati può capitare che il terminale includa solo le lingue di pochi paesi senza permettere quindi di usarlo con la lingua e la localizzazione italiana.

Nel caso in cui si presenti questa sfortunata circostanza in molti consigliano l'installazione di MoreLocale2 ma questo programma, come il suo stesso nome anticipa, permette di cambiare solo la localizzazione e di conseguenza solo le applicazioni con il supporto multilingua impostano la propria lingua in base a quella impostata con MoreLocale2 ma non installa nuove lingue quindi ci troveremo sempre con l'interfaccia di sistema e molte altre applicazioni in una lingua straniera.

In questo caso quindi occorre aggiungere materialmente le nuove lingue al file di sistema che si occupa della lingua e della localizzazione, ossia il file:

system/framework/framework-res.apk

le nuove lingue vanno aggiunte nel percorso:

framework-res.apk/res/

e sono inserite nelle cartelle values-xx, ad esempio la lingua italiana sarà nella cartella values-it.

Per poter inserire nuove lingue ovviamente il file dovrà essere decompilato.

Tradurre manualmente una Rom è un lavoro immane e quindi è più semplice cercare una Rom con la stessa versione di Android e dello stesso produttore dalla quale poi estrarre le lingue( le varie cartelle values-xx) ed importarle nella Rom originale.

Dopo aver aggiunto le nuove lingue e localizzazioni nel file framewor-res.apk avremo aggiunto tutte le nuove localizzazioni al nostro sistema ed avremo tradotto buona parte di esso.

Per tradurre completamente tutta la rom si dovrà ripetere questo lavoro per tutti gli apk presenti in system/app che non hanno il supporto multilingua.

Una volta tradotti i files che ci interessano devono essere ricompilati e riposizionati nelle rispettive cartelle dando loro i permessi 644.

Qui i programmi indispensabili per fare questo lavoro:

Android Kitchen serve ad estrarre i files di una Rom.

APK Multi-Tool serve a decompilare\compilare un file apk.

24 comments

...estraendo da una ROM o direttamente dalla cartella di un telefono similare, il file della lingua (o la cartella), mettendolo nello stesso path di un altro telefono privo di tale lingua, al riavvio (dando gli opportuni permessi alla cartella stessa) mi presenterebbe la lingua da selezionare.

Mi spiego meglio: ho un LG AKA (H788) che è un modello commercializzato solo per il mercato asiatico, contiene in fatti la lingua inglese e varie altre lingue asiatiche.

Visto che questo modello è come hw e funionalità, del tutto similare all' LG G2, se copio la cartella contenente la lingua italiana e la metto nel path del mio telefono, potrebbe funzionare?

Grazie.

Potrebbe ma non credo, anche se le versioni del software non sono differenti lo saranno sicuramente le personalizzazioni delle case produttrici.

Per quanto riguarda il procedimento credo che tu non l'abbia compreso correttamente dato che le cartelle delle quali ho parlato nell'articolo non sono "a vista" ma sono compilate negli apk.

Salve,
io sono un negato di queste cose e chiedo scusa .... il mio problema e' che mi anno regaloto uno zte z5s ma avendo avuto sempre problemi con l' applicazione di googleplay in quanto non mi faceva entrare abbiamo pensato di ripristinare il telefono il problema che ora e' tutto in cinese il tel ha 3 giorni di vita e non so' cosa devo fare puoi darmi un consiglio

La tua domanda poco c'entra con l'articolo comunque sia cosa intendi per ripristinato? è stata installata nuovamente la rom oppure è stato effettuato un ripristino alle impostazioni di fabbrica?

Non conosco molto bene questo dispositivo ma facendo una ricerca veloce non mi sembra che nativamente ci sia la lingua italiana ma può essere installato un aggiornamento della rom stock per il supporto multilingua ed è anche disponibile un pacchetto per risolvere i problemi con lo store di Google.

Qui puoi trovare il forum dove sono attivi gli sviluppatori per il tuo telefono, purtroppo è in cinese ma qui trovi la traduzione in inglese.

Buon divertimento.

Salve, vorrei sapere se per fare questa operazione bisogna avere per forza uno smartphone dello stesso modello con la lingua italiana installata.
Mi spiego vorrei acquistare il nuovo telefonino della ZTE il "Nubia Z5S mini" il quale non viene proprio prodotto con la lingua italiana equipaggiata.
Sarà possibile comunque effettuare le operazioni di traduzione? se si con quale ROM?

Grazie Matteo

Per mettere la lingua italiana seguite queste semplici istruzioni.

Prima di tutto serve installare MoreLocale 2 anche se la lingua italiana non è presente nel telefono.

Aprite il la app MoreLocale 2 (se é presente la lingua italiana la scegliete nel menu ed avete giä risolto).

Ora collegate il telefono al PC (tenete sempre aperto MoreLocale 2), pulsante START scrivete CMD nella barra di ricerca ed avviate il prompt.

Nella finestra del prompt scrivete abd + invio (se non c'è adb scaricatelo da internet).

Ora scrivete adb devices + invio (dovrebbe riconoscere il telefono)

Digitate adb shell + enter

Poi digitate: pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION

A questo punto potete scegliere dal telefono con MoreLocale 2 QUALUNQUE lingua voi vogliate ed eseguite un riavvio.

Provaci su un terminale nel quale le lingue sono completamente state piallate dagli apk di sistema...

Non occorre obbligatoriamente uno smartphone dello stesso modello ma almeno della stessa casa produttrice con lo stesso sistema operativo altrimenti la traduzione può essere effettuata lo stesso ma è necessario tradurre manualmente migliaia di stringhe.

Ma se ho due telefoni virtualmente uguali (in questo caso due Moto X, uno di Verizon, multilingue) e uno di AT&T (solo inglese, spagnolo e portoghese), posso solo copiare il file framework-res.apk da uno all'altro?

Se il file framework-res.apk è deodexed puoi farlo senza alcun problema altrimenti se odexed devi verificare che il bootclasspath sia lo stesso, ovviamente stessa rom e stessa versione.

Sto provando a farlo su un telefono ZTE con Android 4.0.4 in cui manca la lingua italiana. Sono nel percorso system/framework/framework-res.apk/res ma non vedo le cartelle values-xx, vedo soltanto delle cartelle raw-xx con diverse iniziali di lingue. Puoi essermi d'aiuto per favore?

Questo perché hai solo estratto il file framework-res.apk, invece devi decompilarlo.

Ok scusami ma non avevo mai avuto a che fare con questo. Ho saputo che un altro modello, con lo stesso OS, è in vendita anche in Italia quindi dovrebbe avere la lingua italiana, se trovassi sui forum un utente che lo ha, cosa dovrei chiederli di fare, in breve, per passarmi i file che mi servono? Grazie mille

Dovresti chiedergli di passarti tutta la rom. La cosa migliore che tu possa fare è cercare su internet la rom di questo terminale con lingua italiana, scaricarla, estrarla, decompilare i suoi files .apk, copiare da essi le varie cartelle values-it e aggiungerle ai tuoi files .apk decompilati ed infine ricompilare tutti i tuoi files.

Ho provato, seguendo varie guide, a fare tutti i passaggi ed aggiungere le cartelle "it" alla mia ROM da un altra originale. La mia unica modifica è stata quella di aggiungere le cartelle, poi ho ricompilato, signato e copiato la ROM nella mia SD ma quando vado per flasharla con CWM ottengo un errore (codice 7). Sono stato attento a tutti i passaggi ma rimango al niente di fatto. Immagino che la procedura di flash sia necessaria per aggiungere le lingue? Non posso sostituire il file framework-res.apk modificato (ad esempio con Root Explorer) direttamente al posto dell'originale? Grazie per il supporto

Quell'errore dovrebbe indicarti che non hai scritto correttamente lo script per l'aggiornamento, puoi anche copiare i files che hai modificato con un file manager, ma attento a dargli i permessi 644 prima di riavviare altrimenti rischi un soft brick.

Come imposto quei permessi? Dal file manager vedo r,w e x ma non mi sembra di vedere numeri. Effettivamente ho provato a sostituire il file senza fare una nuova ROM ma al riavvio si è bloccato e ho risolto ripristinando un backup che avevo appena fatto con CWM.
Grazie mille per l'aiuto!

Google è tuo amico, quando sei in difficoltà prova almeno ad usarlo; comunque sia i permessi 644 si impostano come in questa foto.

Ti assicuro che l'ho dovuto usare molto per gli altri passaggi e mi scuso per non averlo fatto di nuovo. In ogni caso ho riprovato, questa volta senza rifare la ROM ma soltanto aggiungendo le cartelle in framework-res e sostituendolo all'originale dopo averlo ricompilato e avendone modificato i permessi ma non funziona, il telefono non si riavvia e sono costretto a ripristinarlo. Probabilmente il problema è che prendo le cartelle da una ROM che non è esattamente uguale a quella di serie, non me lo spiego altrimenti.
Spero che il nostro botta e risposta possa comunque essere d'aiuto a chi come me nonostante la poca esperienza voglia provarci

Se il problema fosse la non compatibilità dovresti avere degli errori in fase di compilazione. Assicurati di aver usato correttamente i frameworks per la decompilazione e per la compilazione.

Sono finalmente riuscito a far "funzionare" il mio framework-res con le cartelle aggiunte. Il telefono funziona e si avvia regolarmente ma non riesco ancora a vedere l'Italiano nella lista delle lingue.
Purtroppo ho tempo per fare una sola prova al giorno ma mi chiedo se potrei risolvere (anzichè aggiungendo le cartelle come ora: http://i43.tinypic.com/n1w661.png) rinominandole come una delle lingue esistenti, che poi sceglierò dal menu.

Sicuro di aver ricompilato correttamente il file?

Prova a decompilare il file che hai modificato e controlla se ci sono le cartelle che avevi aggiunto. Puoi anche fare quanto chiedi ma sicuramente stai sbagliando qualcosa.

per quale versione di android vale questo articolo, perchè ho provato con una versione 4.0.4 e non ho trovato le cartelle values-xx

Per tutte le versioni di Android, compreso ICS 4.0.4.