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

Discussion dans 'Tutoriels et Sujets Techniques' créé par Kingzak34, 7 Mai 2012.


  1. 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!
  2. 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 :-)
  3. 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.
  1. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    #1 Kingzak34, 7 Mai 2012
    Dernière édition: 23 Septembre 2013
    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 :
    This content is protected
    ( 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 ) :
      This content is protected
    • Téléchargez ensuite QtADB :
      This content is protected
      ( 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 ! )
    This content is protected

    :
    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 !
     
  2. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    #2 Kingzak34, 7 Mai 2012
    Dernière édition: 5 Mars 2014
    Foire Aux Questions ! :
    [COLOR=#ffffff][/COLOR]
    -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 ?
    [COLOR=#ffffff][/COLOR]
    Dans les traductions les apostrophes ( ' ) doivent toujours être précédées d'un \ , c'est à dire par exemple :

    L'appel devient => L\'appel
     
  3. VonOx

    VonOx ✚ La Chose ✚

    14 Novembre 2011
    1 371
    210
    63
    Homme
    Oise
    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 ;)
     
  4. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    C'est pas faux mais comme j'ai aucune expérience dans les autres ROMs je pourrais pas faire de support :)
     
  5. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    Est ce que tu as essayé plusieurs fois la manip, est ce que tu es sur que tu ne t'es pas trompé quelque part ? Qu'est ce que tu as essayé de faire ...
     
  6. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    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 ;)
     
  7. psyko

    psyko Invité

    Tu peux effacer mes messages ;)merci quand même

    Envoyé depuis mon HTC One X avec Tapatalk
     
  8. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    Quelques retours pour les aventuriers ? :D
     
  9. niark@MAN

    niark@MAN Au delà du réel

    15 Juillet 2011
    3 527
    168
    63
    Homme
    Franche-Comté
    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.
     
  10. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    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à
     
  11. Iniku

    Iniku Au delà du réel

    13 Novembre 2011
    383
    30
    28
    Homme
    Toulouse
    +1 Pour toi l'ami :)
     
  12. Nexus969

    Nexus969 Au delà du réel

    20 Mai 2012
    402
    103
    43
    Homme
    Rennes
    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
     
    1 personne aime cela.
  13. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    Pour savoir il me faudrait savoir ce que dit la console.
     
  14. Nexus969

    Nexus969 Au delà du réel

    20 Mai 2012
    402
    103
    43
    Homme
    Rennes
    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
     
    1 personne aime cela.
  15. Nexus969

    Nexus969 Au delà du réel

    20 Mai 2012
    402
    103
    43
    Homme
    Rennes
    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 attachés:

    1 personne aime cela.
  16. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    Dans ce cas la il faut des manips supplémentaires. Ta ROM ne serait pas un portage du framrwork miui sur une base CM9 ?

    Pour ce qui est des applis système il ne vaut mieux pas
     
  17. Nexus969

    Nexus969 Au delà du réel

    20 Mai 2012
    402
    103
    43
    Homme
    Rennes
    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 ! :)
     
    1 personne aime cela.
  18. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    Pour les ROMs basées sur CM9 comme la tienne il faut utiliser le APKTOOL normal pour les applis qui décompilent correctement, et
    This content is protected
    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
     
  19. Nexus969

    Nexus969 Au delà du réel

    20 Mai 2012
    402
    103
    43
    Homme
    Rennes
    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 ! :)
     
    1 personne aime cela.
  20. Kingzak34

    Kingzak34 Conseille, modère, traduit et aboie !
    Membre du personnel

    3 Mars 2012
    6 661
    1 131
    163
    Homme
    France
    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 ! ;)
     

Partager cette page

Utilisateurs lisant le sujet (Utilisateurs: 0, Invités: 0)