• Il semble que vous ne soyez pas membre de ce forum ou un membre récent.
    Sachez que seuls les membres enregistrés et ayant un minimum de 3 messages peuvent télécharger les ressources additionnelles tels les thèmes ou les mods.
    Enregistrez-vous dès à présent!
  • Merci d'utiliser la fonction "RECHERCHE" en haut à droite de la page d'accueil. Quelqu'un a peut être eu la même question que vous et vous aurez une solution plus rapidement ainsi :-)
  • Les nouveaux membres ou ceux disposant de moins de 3 messages sont particulièrement incités à lire la charte du forum qui contient les quelques règles applicables sur ce forum.
    Son non-respect peut entraîner des sanctions pouvant aller jusqu'au bannissement total dans le cas de récidive.
    Merci de noter que ne sont bienvenues ici que les personnes susceptibles de contribuer ici au bien-être et la convivialité au sein de la communauté. Toute personne utilisant ce site et ce forum uniquement pour nuire aux autres est priée de passer son chemin.

TUTO [TUTO][TECH] COMMENT TRADUIRE UNE ROM MIUI OU UNE AUTRE ROM

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Bonjour à tous ! Je mets à disposition de tous après beaucoup de demandes, un tuto pour traduire, hé oui, les ROMs ( Particulièrement, les ROMs non supportées officiellement ) de MIUI V4. Donc je me lance ! ( Pour windows ) Cette méthode est normalement adaptable avec toutes les ROMs, mais comme je n'ai pas d'expériences autre que MIUIV4, je ne pourrais faire de support pour les autres ROMs ;)

Si quelqu'un voit une erreur ou des amélioration au niveau de la claretée ou des méthodes, je serais ravis de prendre toutes les suggestions ! Par MP de préférence ;)

Je tiens à préciser que je prendrais aucune demande de support par MP, et que je ne vous répondrez pas si vous ne cherchez pas par vous même ou que vous n'avez pas lu tout le tuto au moins deux fois voir plus si besoin !

Et je tiens aussi à préciser que ce tuto est plutôt destiné aux utilisateurs ayant certaines connaissances dans le monde android, et même si d'autres veulent tenter l'aventure, veuillez chercher à plusieurs reprises, et vraiment chercher, des solutions avant de venir demander de l'aide, c'est comme cela qu'on apprend le mieux !​
Sommaire :
  • 1] Préparation du PC
  • 2] Traduction
  • 3] Finalisation

1] Préparation du PC :


Pour commencer, il vous faut un PC bien préparé, tout commence par l'installation et la mise en place de Apktool. Vous pourez trouver apktool ici : http://forum.xda-dev...d.php?t=1755243 ( Merci à niark@MAN )
Dans la section Downloads, il vous faut la partie principale, qui est apktool, et les dépendances selon votre OS. ( Ici Windows )
Ensuite, vous mettez les fichiers qui sont donc, apktool.jar, apktool.bat, aapt.exe dans un dossier facile d'accès en commandes, comme dans C:\Apktool par exemple. ( C'est vous qui voyez mais c'est quand même plus simple ! )
Une fois ceci fait, je vous conseille de rentrer apktool dans les variables d'environnement, pour ne pas avoir à le chercher si vous voulez faire ce que vous voulez, où vous voulez. Pour cela ( Sous Windows 7 ) :

  • Allez dans Panneau de configuration
  • Cliquez sur Systeme
  • Cliquez à gauche sur Paramètres Systeme Avancés
  • Ensuite cliquez sur l'onglet Paramètres Systeme Avancés si ce n'est pas déjà le cas
  • Cliquez sur "Variables d'environnement"
  • Dans le cadre du bas, trouvez la variable "Path" et doublez cliquez dessus ( faites Modifier )
  • Allez à la fin de la ligne ( Attention de ne toucher à rien ! ) Saisissez l'addresse de votre dossier contenant apktool.bat, apktool.jar et aapt.exe en insérant avant l'addresse un " ; " ( Point virgule ) ( Par exemple: ;C:\apktool )
  • Ensuite faites Ok sur toutes les fenetres ouvertes, pour vérifier si l'action a bien été réalisée, ouvrer CMD ( Windows + R, et tappez cmd, dans la recherche de démarrer tapez cmd puis entrée, sinon chercher l'invite de commande dans Démarrer => Programmes => Accessoires )
  • Tapez apktool dans la fenêtre de commande. Puis entrée.
  • Si vous avez
    Code:
    'apktool' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
    Alors, la manip n'a pas été bien faite, ou vous n'avez pas marqué apktool correctement.
Apktool est maintenant prêt.
Vérifier que Java est installé et à jour. La meilleure chose est encore de le réinstaller. Si vous installez java pour la première fois, vous allez peut etre rencontrer des soucis du type

Code:
'java' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.

Si c'est le cas et que Java est bien installé correctement c'est qu'il n'a pas été rentré dans les variables d’environnement, donc il faut le faire nous même :
  • Allez dans Panneau de configuration
  • Cliquez sur Systeme
  • Cliquez à gauche sur Paramètres Systeme Avancés
  • Ensuite cliquez sur l'onglet Paramètres Systeme Avancés si ce n'est pas déjà le cas
  • Cliquez sur "Variables d'environnement"
  • Dans le cadre du bas, trouvez la variable "Path" et doublez cliquez dessus
  • Allez à la fin de la ligne ( Attention de ne toucher à rien ! ) Saisissez l’adresse de votre dossier contenant les binaires java ( java.exe ) en ajoutant un " ; " ( Point virgule ) avant cette adresse. L'adresse par défaut est : C:\Program Files (x86)\Java\jre7\bin ce qui donne : ;C:\Program Files (x86)\Java\jre6\bin
  • Ensuite faites Ok sur toutes les fenetres ouvertes, pour vérifier si l'action a bien été réalisée, ouvrer CMD ( Windows + R, et tappez cmd, dans la recherche de démarrer tapez cmd puis entrée, sinon chercher l'invite de commande dans Démarrer => Programmes => Accessoires )
  • Tapez java -version dans la fenêtre de commande.
  • Si vous avez
    Code:
    'java' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
    Alors, la manip n'a pas été bien faite, ou vous n'avez pas marqué la commande correctement. Si vous avez la version de Java c'est bon !
Si java et apktool sont correctement installés,on va pouvoir passer aux choses sérieuses !
Pour cela vous devez avoir installé les drivers de votre téléphone ou du moins, ceux qui conviennent et mettre en place ADB :
  • Commencez par télécharger ADB ( Trouvable dans le SDK android ) :https://www.dropbox.com/s/u7a8qazaoqxuzbv/ADB.zip
  • Téléchargez ensuite QtADB : http://qtadb.wordpress.com/download/ ( Il vous faut prendre "Windows version for new users(required libraries included)" et "binaries for windows" )
  • Extrayez l'archive de QtADB de préférence dans un endroit facile d'accès, comme C:\QtADB\ ( Toujours pareil c'est vous qui voyez )
  • Dans ce même dossiez extrayez l'archive windows_binaries et ADB.
Maintenant encore une fois, le mieux est d'intégrer ADB en variable d’environnement, donc encore une fois :
  • Allez dans Panneau de configuration
  • Cliquez sur Systeme
  • Cliquez à gauche sur Paramètres Systeme Avancés
  • Ensuite cliquez sur l'onglet Paramètres Systeme Avancés si ce n'est pas déjà le cas
  • Cliquez sur "Variables d'environnement"
  • Dans le cadre du bas, trouvez la variable "Path" et doublez cliquez dessus
  • Allez à la fin de la ligne ( Attention de ne toucher à rien ! ) Saisissez l’adresse du dossier de QtADB en ajoutant un " ; " ( Point virgule ) avant cette adresse. par exemple : C:\QtADB ce qui donne : ;C:\QtADB
  • Ensuite faites Ok sur toutes les fenetres ouvertes, pour vérifier si l'action a bien été réalisée, ouvrer CMD ( Windows + R, et tappez cmd, dans la recherche de démarrer tapez cmd puis entrée, sinon chercher l'invite de commande dans Démarrer => Programmes => Accessoires )
  • Tapez adb dans la fenêtre de commande.
  • Si vous avez
    Code:
    'adb' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
    Alors, la manip n'a pas été bien faite, ou vous n'avez pas marqué adb correctement.
Maintenant il faut récupérer et installer les deux framework de la ROM
Pour cela deux solutions, ou vous n'avez pas le zip de la ROM à portée de main mais qu'elle est installée sur votre telephone :
  • Lancez QtADB
  • Il va vous demander de choisir un dossier, en fait si vous regardez le nom de la fenetre, il cherche ADB, donc donnez lui le dossier contenant ADB.
  • Ensuite vous arrivez sur la page avec marqué "Refresh"
  • Activez le Débogage USB sur votre téléphone ( Parametres => Option Develloppeur )
  • Branchez votre téléphone ( en USB )
  • Un gestionnaire de fichier en deux parties devrait apparraitre.
  • A gauche les dossiers du PC, à droite ceux du téléphone.
  • A droite, donc dans le téléphone allez dans /systeme/framework
  • Séléctionnez framework-res.apk et framework-mui-res.apk et copiez les à la racine de C:\ ( ou du disque local ) de préférence
  • Une fois les fichier copiés, fermez QtADB
Ou vous avez le zip de la ROM à portée de main :
  • Ouvrez le zip, allez dans system/framework
  • Extrayez framework-res.apk et framework-miui-res.apk à la racine de C:\ ou du disque local, de préférence.
Ouvrez une invite de commande et rendez vous dans le dossier contenant les apks
Tapez ensuite les commande suivantes :
  • Code:
    apktool if framework-res.apk

    Il doit retourner I: Framework installed to:C:\Users\"VotreSession"\apktool\framework\1.apk
  • Code:
    apktool if framework-miui-res.apk

    Il doit retourner I: Framework installed to C:\Users\"VotreSession"\apktool\framework\3.apk
    Ou I: Framework installed to C:\Users\"VotreSession"\apktool\framework\6.apk
Toute la préparation pour la traduction est prête ! C'est long, mais c'était pas si terrible ! :)


2] Traduction :

Maintenant que le PC est prêt pour la traduction on va passez aux choses sérieuses ( encore plus ! )

Pour commencer il faut récupérer toutes les apk systeme à traduire plus les deux frameworks extrait précédemment.

Si vous n'avez pas le zip de la ROM à portée de main mais qu'elle est installée sur votre telephone :
  • Ouvrez QtADB
  • Allez dans /system/app
  • Sélectionnez tous les apks sauf les apks Google qui n'ont pas besoin d'être traduits
  • Copiez les dans le dossier de apktool ou ou ca vous chante mais je prends cet exemple
  • Dans QtADB allez maintenant dans /system/framework et faites pareil avec framework-res.apk et framework-miui-res.apk ( Ou récupérez les de la racine du DD local )
  • Maintenant tous les apks sont dans un dossier
Si vous avez le zip de la ROM sous la main :
  • Allez dans /system/app
  • Sélectionnez tous les apks sauf les apks Google qui n'ont pas besoin d'être traduits
  • Copiez les dans le dossier de apktool ou ou ca vous chante mais je prends cet exemple
  • Dans QtADB allez maintenant dans /system/framework et faites pareil avec framework-res.apk et framework-miui-res.apk ( Ou récupérez les de la racine du DD local )
  • Maintenant tous les apks sont dans un dossier
Maintenant il vous faut décompiler tous ces apks pour pouvoir y inclure les traductions.

Pour trouver la traduction, je vous invite à chercher par vous même ! :) AUCUN SUPPORT A CE PROPOS

Vous avez donc vos traductions à implanter dans chaque application, encore faut-il décompiler celles-ci pour y ajouter les fichiers.

Pour décompiler un apk, la commande est la suivante :

Code:
 apktool d NomDeLApk.apk

Exemple :

Code:
apktool d DeskClock.apk

Une fois cela fait pour tous les apks ( Je vous invite à faire un script, ou à demander à quelqu'un de vous en faire un ! Ou encore apprenez le batch :) ) vous vous retrouvez avec les dossiers du même nom que les applis, ce sont les applis décompilées.

Ajoutez dans chaque appli dans /Nomdel'appli/res/ un dossier values-fr ( pour framework-res, le dossier doit se nommer values-fr-rFR ) et ajoutez vos XMLs traduits à l'intérieur.

Une fois cela fait il faut recompiler toutes ces apks !

La commande pour recompiler un apk est la suivante :

Code:
apktool b Nomdel'apk Chemindunouveauapk

Par exemple

Code:
apktool b Desckclock C:\compile\Desckclock.apk

( Le dossier de destination doit exister )

Vous avez maintenant recompilé vos apk !

3] Finalisation :

Il ne reste plus qu'a extraire et modifier le build.prop de votre rom et de zipper le tout !

Extrayez le build.prop de votre ROM par la méthode utilisée précédemment pour les apks, il se trouve dans /system
Ouvrez le ( notepad ++ conseillé ) et trouvez les lignes

Code:
ro.product.locale.language=XX
ro.product.locale.region=YY

Remplacez XX par fr
et YY par FR

Maintenant il faut zipper le tout dans un zip flashable via recovery !

Téléchargez un zip vierge ici ( Ou faites le votre vous même ! )
https://www.dropbox.com/s/wqnksu4powakm52/Updatevierge.zip
:
Et ajoutez vos fichiers au bon endroit ( Les framework dans le dossier system/framework, les apps dans le dossier system/app et le build.prop juste dans system )

Ensuite renommez votre zip sans mettre d'espace et enfin modifier le script ( updater-script ) contenu dans META-INF\com\google\android avec notepad ++ de préférence.

Votre pack est prêt ! Pensez à faire un Nandroid Backup avant de tester et essayez de résoudre les problemes vous même dans un premier temps en apprenant à lire un logcat et en vous servant de la fonction logcat de QtADB !
 
Dernière édition:

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Foire Aux Questions ! :

-J'ai des erreurs du type ( Ce n'est qu'un exemple, cette erreur peut se retrouver sur tous les apks ) :

Code:
E:\ApkTool\apkm\projets\framework-res\res\values\strings.xml:130: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
E:\ApkTool\apkm\projets\framework-res\res\values\strings.xml:130: error: Unexpected end tag string

Comme l'indique l'erreur il faut ajouter formatted="false" après le nom de la ligne en question ( ici la 132 ) exemple :
Code:
<string name="numeric_date">%d/%m/%Y</string>
Devient
Code:
<string name="numeric_date" formatted="false">%d/%m/%Y</string>

-J'ai des erreurs concernant les apostrophes que dois-je faire ?

Dans les traductions les apostrophes ( ' ) doivent toujours être précédées d'un \ , c'est à dire par exemple :

L'appel devient => L\'appel
 
Dernière édition:

VonOx

✚ La Chose ✚
Messages
1 371
Réactions
238
Points
63
Super boulot Kingzak, ça en aidera plus d'un je penses +1 , tu peux même renommer to topic car cette méthode est valable pour toute les ROMs ;)
 

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Oui j'ai bien mit les fichiers dans c: Apktool comme l'exemple ensuite jai rentre le chemin en coper colle dans les variable ton tuto est tres clair
J'ai trouvé mon erreur virgule au lieu de point virgule désolé
Envoyé depuis mon LG-V900 avec Tapatalk

Voilà c'est exactement le genre de questions que je veux éviter dans le topic, merci de bien refaire plusieurs fois les manip quand ca foire ;)
 

niark@MAN

Célébrité locale
Messages
3 527
Réactions
189
Points
63
Tu n'as pas parlé, sauf erreur de ma part, du problème des apostrophes (mettre les chaînes en guillemets pour que l'apostrophe ne pose pas de problème ou écrire \' ce qui est une autre solution). Il y a également le problème de la signature des APK qui est perdue lors de la recompilation (avec apktool) de l'application et où dans ce cas il faut prendre certains éléments compilés pour les intégrés dans l'apk d'origine.

Sinon bravo pour ce tuto.
 

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Tu n'as pas parlé, sauf erreur de ma part, du problème des apostrophes (mettre les chaînes en guillemets pour que l'apostrophe ne pose pas de problème ou écrire \' ce qui est une autre solution). Il y a également le problème de la signature des APK qui est perdue lors de la recompilation (avec apktool) de l'application et où dans ce cas il faut prendre certains éléments compilés pour les intégrés dans l'apk d'origine.
Sinon bravo pour ce tuto.

C'est exact pour l'apostrophe merci, pour ce qui est de la signature je n'ai jamais eu aucun problème de ce coté là
 

Nexus969

Membre actif
Messages
402
Réactions
139
Points
43
Bonjour,

J'ai bien suivit ligne par ligne ce tutoriel ! Mais j'arrive à un moment où je ne comprend plus ce qu'il y a à faire.

J'ai décompilé "Settings.apk" pour commencer puis plusieurs lignes se sont affichées sur CMD.

À partir de là, un dossier "Settings" s'est créé, mais il y a un seul dossier à l'intérieur "Smali" et qui ne contient rien ...

Que faire ?!

Merci d'avance !

Ps : je verrai si j'y arrive ce soir en rentrant du boulot.

Envoyé depuis mon GT-I9001 avec Tapatalk
 

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Bonjour,
J'ai bien suivit ligne par ligne ce tutoriel ! Mais j'arrive à un moment où je ne comprend plus ce qu'il y a à faire.
J'ai décompilé "Settings.apk" pour commencer puis plusieurs lignes se sont affichées sur CMD.
à partir de là, un dossier "Settings" s'est créé, mais il y a un seul dossier à l'intérieur "Smali" et qui ne contient rien ...
Que faire ?!
Merci d'avance !
Ps : je verrai si j'y arrive ce soir en rentrant du boulot.
Envoyé depuis mon GT-I9001 avec Tapatalk

Pour savoir il me faudrait savoir ce que dit la console.
 

Nexus969

Membre actif
Messages
402
Réactions
139
Points
43
Je te dis ça ce soir ! N'étant pas chez moi. Mais je crois qu'il y avait une dizaine de lignes.

Je screen et mets ça ce soir en rentrant :)

Envoyé depuis mon GT-I9001 avec Tapatalk
 

Nexus969

Membre actif
Messages
402
Réactions
139
Points
43
Voilà l'invite de commandes.

Edit : N'y a t'il pas moyen que je remplace les apk système par ceux qui sont présents dans les roms (Par exemple celle du S2) que vous avez traduites ?!
 

Fichiers joints

  • Untitled.jpg
    Untitled.jpg
    94.1 KB · Vues: 62

Nexus969

Membre actif
Messages
402
Réactions
139
Points
43
Oui, c'est une MIUI 4 basée sur CM9.

Je teste le remplacement des apk système :) (Dans le pire des cas, j'ai fais un backup Recovery) Mais dans le pire des cas, quelle serait la fameuse manipulation supplémentaire ?

Edit : En effet, ça bug, des FC de "Com.android.phone" en permanence ! Cependant, la traduction est faite partout ! :)
 

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Oui, c'est une MIUI 4 basée sur CM9.

Je teste le remplacement des apk système :) (Dans le pire des cas, j'ai fais un backup Recovery) Mais dans le pire des cas, quelle serait la fameuse manipulation supplémentaire ?

Edit : En effet, ça bug, des FC de "Com.android.phone" en permanence ! Cependant, la traduction est faite partout ! :)

Pour les ROMs basées sur CM9 comme la tienne il faut utiliser le APKTOOL normal pour les applis qui décompilent correctement, et cette version modifiée pour décompiler les apks qui font "bad magic value " ( Merci à juju_des_higlands, Andy thomson, alcanatre et Kyojin ) Je le rajoute au tuto

Pour recompiler il faut mettre l'apktool normal donc garde les deux dans un coin
 

Nexus969

Membre actif
Messages
402
Réactions
139
Points
43
Okay ! Merci pour ton tuto et ton aide ! :) Je vois ça de suite.

Par contre, j'ai remplacé une trentaine d'apk dans System/App et ça fonctionne, et en français, seuls quelques apk que je préfèrerais modifier à la main afin d'éviter le FC en chaine :)

Remplacer le dossier App par une version d'un autre modèle fonctionne, mais il faut vraiment vérifier chaque fois que ça fonctionne, donc reboot après la moindre modif :)

Je vais donc modifier le ".zip" d'installation afin de le proposer dans la section "non officielle". L'actuelle .zip install étant la version partiellement traduite en anglais.

Merci encore pour tes réponses ! :)
 

Kingzak34

Conseille, modère, traduit et aboie !
Équipe
Messages
6 704
Réactions
1 307
Points
163
Okay ! Merci pour ton tuto et ton aide ! :) Je vois ça de suite.

Par contre, j'ai remplacé une trentaine d'apk dans System/App et ça fonctionne, et en français, seuls quelques apk que je préfèrerais modifier à la main afin d'éviter le FC en chaine :)

Remplacer le dossier App par une version d'un autre modèle fonctionne, mais il faut vraiment vérifier chaque fois que ça fonctionne, donc reboot après la moindre modif :)

Il ne vaut mieux pas faire comme ca car les dévellopeurs des ROM font souvent leur propres modifications sur les apks et en prenant les apks d'une autre ROM tu perds les modifications faites par ton dev et tu prends celles fait par les autres, sans leur autorisation. Donc déconseillé dans tous les cas ! ;)
 
Haut