Aller au contenu


Esp Translation


  • Veuillez vous connecter pour répondre
51 réponses à ce sujet

#1 Epervier666

Epervier666

Posté 14 décembre 2012 - 23:15

ESP Translation
Ce programme sert à traduire les mods de Skyrim
Il fonctionne grâce à une base de données répertoriant tous les textes de Skyrim version française et anglaise, Dawnguard et Hearthfire inclus.
Voilà les explications et le "comment qu'on s'en sert" :
Le programme est divisé en 4 onglets.
- Fichiers Strings : Ne sert à rien :) cet onglet m'a juste permis de faire mes tests pour le décodage des fichiers strings de Skyrim. Je l'ai laissé, au cas où quelqu'un veuille lire un fichier string.

- Onglet Import : C'est la partie qui m'a servi à construire ma base de données. On pourrait l'utiliser pour construire une base de données dans une autre langue sans soucis, en remplaçant les textes français par des textes espagnols par exemple. Cela ne marchera par contre pas avec le russe, ou pas totalement, car les mods n'utilisent pas le même jeu de caractère.
Comment ça marche : On choisit d'abord le fichier à importer (en le rentrant directement ou en cliquant dsur parcourir). S'il s'agit d'un fichier utilisant les Localized String, il faut cocher une des deux cases (string FR ou EN). On peut choisir d'analyser un seul groupe d'un fichier (par exemple, pour ne récupérer que des livres). Puis in clique sur le bouton Analyser.
Une fois l'analyse terminée, on peut importer le résultat dans la base de données. ATTENTION : On choisit AVANT dans quelle colonne on veut importer ce résultat : Anglais, Français ou Perso !

- Onglet Base De Données : Cet onglet affiche et permet dans une moindre mesure de modifier la Base de Données . On ne peut modifier les colonnes ID, EDID, Anglais et Trad_A. Les autres, ça devrait marcher. Les cases à cocher sont là simplement pour afficher ou cacher des colonnes, et la liste de gauche permet de se balader entre les différents groupes.

-Onglet Traduction : C’est le cœur du programme !
Tout comme pour l’importation, on choisit un fichier que l’on veut traduire (en le rentrant manuellement ou via le bouton parcourir. On peut ensuite cliquer directement sur le bouton analyser mais intéressons-nous aux options avant si vous le voulez bien (et même si vous le voulez pas…. C’est moi qui écrit, c’est moi qui décide :P).
D’abord le sens de traduction, qui permet normalement de traduire du français vers l’anglais et inversement. A priori, on ne touchera pas cette option, sauf les moddeurs français qui souhaiteraient traduire leur travail dans la langue de Spiderman.
Ensuite, le choix d’utiliser les traductions perso ou non. En fait, si vous avez importé ou entré manuellement des textes dans les colonnes perso de la base de données, on pourra indiquer au programme d’utiliser en priorité cette colonne, puis la colonne habituelle en cas de cases vides. L’utilité ? Très simple. Vous connaissez le mod Better Sorting? Ce mod permet de renommer beaucoup de chose dans Skyrim afin d’avoir un inventaire plus clair. Et bien en important Better Sorting dans la Base de Données, sous perso, le programme utilisera les textes de Better Sorting. On gardera ainsi la cohérence du jeu.
Ensuite, la case à cocher « charger automatiquement une sauvegarde si elle existe ». Certains mods sont long à traduire, et on ne le fait pas en une fois. Le programme permet de sauvegarder la traduction en cours sous forme de fichier xml, qui se placera dans le répertoire Bases Perso. En cochant cette case, si une sauvegarde a été faite auparavant, elle sera automatiquement chargée (à condition de porter le même nom que le fichier esp) lors de l’analyse.
Petite précision, il est tout à fait possible de charger des sauvegardes ne correspondant pas au mod. Pas de souci, le programme en traitera que les choses existantes (et du coup, si un truc a été traduit dans un autre mod, il suffira d’utiliser cette fonction).
C’est bon, on peut passer à l’analyse
Le programme scanne donc le mod à la recherche de chaque texte. Ensuite, il prend chaque texte trouvé et compare ID EDID et Texte Anglais à la base de données. Si aucune Résultat n’est trouvé, il compare juste les textes (en général, horse se traduira cheval, peu importe son ID). S’il n’y a toujours pas de résultat, ce sera à vous de bosser.
Pour bosser justement, plusieurs solutions : On double-clique sur une ligne à traduire, mais ailleurs que dans les cellules Françaises, et une fenêtre s’ouvre en grand pour faciliter la traduction.
Sinon, les cases de textes en dessous de la liste sont aussi là pour cela et sont plus pratique car  elles prennent en compte la recherche. On peut aussi travailler en éditant directement une case de la liste.
La recherche ? Et oui :). Il suffit de sélectionner un mot et d’appuyer sur F3. Une fenêtre de recherche s’ouvrira. Cette fonction marche dans les cases de textes en bas et lors de l’édition d’une cellule de la liste. Si on a simplement sélectionné une ligne dans la liste et qu’on presse F3, la recherche se fera sur l’ID.
On peut accéder à la fenêtre de recherche en cliquant aussi sur le bouton « recherche BDD ».
Un mot sur les options de chargement de sauvegarde maintenant :
- Remplacer les cellules déjà traduites – Bon bah ça c’est clair je pense
- Se baser uniquement sur l’ID : Lors d’un chargement tout comme d’une analyse, le programme se base sur l’ID, l’EDID et le texte anglais pour trouver des correspondances. Mais d’une version d’un mod à l’autre, il est possible que les ID n’est pas bougé, mais que l’auteur ait rajouté un accent dans le contenu de son livre. Du coup la correspondance n’est pas faite. En cochant cette case, le programme ne se basera que sur l’ID pour la correspondance.
- Ne pas tenir compte du groupe : Si le programme ne trouve pas de correspondance totale, il essaie de se baser uniquement sur les textes. Du coup, il peut être très intéressant d’utiliser cette fonction car lorsqu’on a affaire à 43 fois le même mot, on le traduit une fois, on sauvegarde, on recharge et miracle ! Par contre par défaut les recherches ne se font que dans les mêmes groupes. Cocher cette case étendra la recherche à tous les groupes.
- Charger le texte original en tant que trad : Bon, vous avez un mod français et un mod anglais mais d’une version plus récente. Vous n’avez pas le xml de sauvegarde du mod français et vous voulez traduire le mod anglais. Analyser d’abord le mod français et faite une sauvegarde. Puis analyser le mod anglais, cocher la case (qui cochera aussi la case des ID… logique) et charger la sauvegarde. Si les ID sont les mêmes, c’est bingo. Sinon…
Et c’est parti pour a traduction
On clique sur le bouton et on laisse faire. Une sauvegarde du fichier esp en .BAK sera réalisée par le programme. Si ce fichier existe déjà, vous pourrez choisir de le remplacer ou pas (gardez toujours le .BAK original quelque part quand même).

Et voilà !!
Alors bien sûr, ce programme contient surement quelques bugs.
De plus, je ne suis pas développeur de métier donc si un vrai dév jette un œil au code, il va un peu pleurer...
Signalez-moi les bugs et j’essaierai de les corriger.
Proposez-moi des améliorations et si je les juges pertinentes et faisables sans tout casser, j’essaierai de les faire.
Un grand Merci aux forums de Canard PC, de la Confrérie des Traducteurset à Wiwiland pour leur aide et leurs retours.
Merci aux créateurs du PNO de m’avoir autorisé à inclure leurs textes dans la base de données (si vous ne jouez pas avec le PNO, c’est très bizarre…)
Le programme est là maintenant : http://skyrim.nexusmods.com/mods/29457

Modifié par Epervier666, 05 janvier 2013 - 11:25.

ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#2 Nico coiN

Nico coiN

    Commissaire Magret


Posté 14 décembre 2012 - 23:33

Bien, je jetterai très certainement un oeil à ton programme pendant les prochaines vacances mais là je n'en ai absolument pas le temps, désolé.

Voir le messageEpervier666, le 14 décembre 2012 - 23:15, dit :

- Pour info, je me sers de la librairie Zlib pour décompresser et recompresser les champs … compressés !

C'est justement la question qui me titille...

Les champs compressés ne contiennent pas forcément du texte mais puisque ton programme a vocation à modifier des esp il va probablement toucher à leur structure. Alors justement : as-tu créé un esp de test qui ne sert à rien mais qui contient juste différents type de records, dont des records compressés ? As-tu essayé de les manipuler/décompresser/recompresser avec ton programme ? Le fichier obtenu est-il un clone binaire de l'original ?
Canard mystique, grand instigateur et créateur de la carpe d'ondepluie.

#3 Epervier666

Epervier666

Posté 14 décembre 2012 - 23:56

J'ai fait beaucoup de test sur le PNO pour tout dire. et oui, sans aucune traduction, le retour était strictement identique (vive notepad++ et son "comparator".
De plus, je ne touche qu'aux champs contenant du texte, les autres sont copiés tel quel, en binaire.
Pour l'instant, dans tous mes tests, seuls les champs CELL était compressé, mais j'ai mis ma fonction (poétiquement appelé DecompressField) sur tout les... euh... "fields" (enfin s'ils sont compressé hein, y'a une valeur qui nous le dit). Par exemple pour les CELL, l'ID était en clair, et tout ce qui suivait jusqu'au GRUP ou à la CELL suivante était compressé (donc l'edid, le FULL (le nom quoi)...)
Ma fonction decompresse, traduit, fait les calculs pour les tailles de champ, de record et de groupe et recompresse.
Bref, oui, j'ai pas mal testé et pour l'instant pas de problème. Attention, par test j'entend que j'ai traduit un mod, puis l'ai ouvert dans le CK et vérifié les différentes données. Pas vu de souci, mais je suis loin d'être infaillible. Autre info utile sans doute, la version de zlib utilisée est la 1.2.3
Voilou, je sais que je suis loin d'être clair mais j'essaie ! :P
ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#4 Nico coiN

Nico coiN

    Commissaire Magret


Posté 15 décembre 2012 - 00:17

Je te propose de pousser tes tests sur des mods un peu plus complexes qui modifient pas mal de cells.

Je te recommande la dernière version d' "Open Cities Skyrim" (Arthmoor m'avait donné l'autorisation de le traduire). D'un point de vue localisation il n'y a presque qu'à faire du copier-coller des noms des cells. Il y a aussi 2 ou 3 répliques à traduire "à la main".

Je te recommande aussi "Alternate Start - Live Another Life" (également d'Arthmoor, et on a l'autorisation bien que la conf' soit déjà dessus). Pas autant de cells créées/modifiées qu'Open Cities mais un travail de traduction "maison" vraiment important, par contre...

Ces deux mods me semblent vraiment être des cobayes pleins de potentiel. ;)
Canard mystique, grand instigateur et créateur de la carpe d'ondepluie.

#5 Epervier666

Epervier666

Posté 16 décembre 2012 - 19:33

J'ai fait le test rapide sans traduction : fichiers exactement pareils

Je ferai le test avec traduction tout à l'heure, je poste juste pour signaler que j'ai corrigé un gros bug qui faisait que plein de choses n'était pas traduite correctement ! Juste une bêtise dans une requête :P

Arf, tu m'as fait peur !!! Erreur lorsque j'ouvre le Open city modifié avec le ck... et puis souvenir de ce qui m'est arrivé avec un autre mod, je me dis, on va essayer d'ouvrir l'original... et mêmes erreurs...ouf :)
J'ai tellement galéré pour les cell (vive la récursivité) que j'ai eu peur d'avoir à y retoucher à nouveau.
Pareil pour alternate start. Peut-être qu'il faut enregistrer le bsa d'une manière ou d'une autre ? en tout cas, pas d'autre soucis. Et tous les tests que j'ai fait sont pour l'instant concluants. A vot' bon coeur msieur dames, testez moi tout ça !! :)

EDIT encore : Je viens d'ajouter les bsa dans le ini. Cela règle le problème de Alternate Start (qui est bien traduit), mais même erreur avec Open Cities (pour l'original comme pour la traduction). Cela dit, ces erreurs semblent normales dans le sens ou le CK nous prévient que des pathfinding sont modifié et que des références de CELL sont modifiés... un peu logique pour ce genre de mod je pense. Quoi qu'il en soit, les erreurs ne viennent pas de la trad :)

EDIT :
Nouvelle mise à jour :
- Tester avec pas mal de mod, corriger un ptit problème, mais rien de méchant
- J'ai enfin diminuer la mémoire nécessaire pour importer un mod (amis développeurs : le stream reader, c'est cool !) Du coup on peut importer Skyrim.esm en une fois, du coup j'ai virer la liste déroulante qui permettait l'import en plusieurs parties (mais j'ai laissé celle permettant de sélectionner le groupe.
- J'ai un peu amélioré l'interface : Possibilité de redimenssionner les lignes, et surtout, en cas de double clic, une nouvelle fenêtre s'ouvre pour la traduction. Beaucoup plus pratique pour traduire !!
- J'ai corrigé la base de données (j'espère pour la dernière fois cette fois) et ajouté Hearthfire dedans !!!
- J'ai mis une version !!! Donc ce sera la 1.0

Enfin, rien à voir, mais j'ai contacté le fondateur du nexus et mis un message sur le forum du même nom pour savoir si je pouvais mettre ce prog. Pas de réponse du gars pour l'instant, et pas de réponse concluante sur le forum (mais je pense que j'aurai du poster à un autre endroit, j'ai mis ça dans "Mod Request".

Modifié par Epervier666, 15 décembre 2012 - 13:08.

ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#6 Nico coiN

Nico coiN

    Commissaire Magret


Posté 16 décembre 2012 - 19:57

Voir le messageEpervier666, le 16 décembre 2012 - 19:33, dit :

Enfin, rien à voir, mais j'ai contacté le fondateur du nexus et mis un message sur le forum du même nom pour savoir si je pouvais mettre ce prog. Pas de réponse du gars pour l'instant, et pas de réponse concluante sur le forum (mais je pense que j'aurai du poster à un autre endroit, j'ai mis ça dans "Mod Request".

Pas besoin d'autorisation pour ça : tu peux mettre absolument ce que tu veux sur Nexus du moment que ça n'enfreint pas les droits d'auteur. Sinon je ne pourrai pas faire de test avant fin janvier...

Petite info si tu manipules des STRINGS :

- Si elles sont en "loose files" il n'y aura aucun problème, que ce soit pour le CK ou pour le jeu.
- Si par contre elles sont incluses dans l'archive bsa associée du mod en question :
    - Le CK ne pourra les lire QUE si l'archive bsa est correctement enregistrée dans le ini.
    - Le jeu peut par contre avoir du mal à les lire : plein de "LOOKUP FAILED !" sur les stages de quêtes du très très gros fichier sur lequel j'ai travaillé (et je n'ai pas encore le droit de te dire ce que c'est).

Et dans ce dernier cas il n'y a hélas qu'une seule solution viable : réincruster les STRINGS dans l'esp. Je t'invite donc également à faire cette manip' et à vérifier que tout est toujours fonctionnel.
Canard mystique, grand instigateur et créateur de la carpe d'ondepluie.

#7 Epervier666

Epervier666

Posté 16 décembre 2012 - 20:00

Je sais, mais justement, le fait de joindre une base de données contenant les textes anglais et francais du jeu... Je ne sais pas trop si c'est autorisé... Comme je leur ai dit, je pense que ça ne pose pas de problème dans le sens où les gens venant sur le site ont déjà Skyrim, et avec steam, accès à toutes les langues... Mais comme je télécharge beaucoup là-bas, je voudrais éviter de me faire bannir :)

EDIT : et pas de soucis pour les tests. C'est justement pour ça que je veux le mettre sur le nexus : avoir un maximum de retour, et de préférence centralisés :).

Modifié par Epervier666, 16 décembre 2012 - 20:03.

ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#8 Nico coiN

Nico coiN

    Commissaire Magret


Posté 16 décembre 2012 - 20:11

Voir le messageEpervier666, le 16 décembre 2012 - 20:00, dit :

Je sais, mais justement, le fait de joindre une base de données contenant les textes anglais et francais du jeu... Je ne sais pas trop si c'est autorisé... Comme je leur ai dit, je pense que ça ne pose pas de problème dans le sens où les gens venant sur le site ont déjà Skyrim, et avec steam, accès à toutes les langues... Mais comme je télécharge beaucoup là-bas, je voudrais éviter de me faire bannir :)

EDIT : et pas de soucis pour les tests. C'est justement pour ça que je veux le mettre sur le nexus : avoir un maximum de retour, et de préférence centralisés :).

Je crois bien que quelqu'un y a déjà mis en ligne les fichiers STRINGS de toutes les langues du jeu sans s'attirer les foudres des admins.

Pour les retours sur les tests je serais plus réservé : la communauté française est quand même très "pantouflarde" et ne se bouge pas tellement (beaucoup se contentent de télécharger du mod et de brailler quand ça ne marche pas, mais côté développement il n'y a pas grand monde...). C'est doublement handicapant sur un site ou 98 % du public est international. Je te souhaite quand même bonne chance et bon courage. ;)
Canard mystique, grand instigateur et créateur de la carpe d'ondepluie.

#9 Gérauld

Gérauld

Posté 16 décembre 2012 - 21:27

Concernant les fichiers strings, le plus simple et d'expliquer dans un lisez-moi comment les extraire d'un bsa. Comme ça, plus besoin de les distribuer et un soucis en moins pour toi.

Petite question d'un moddeur : est-ce que ton programme permet également de traduire sans soucis du français vers l'anglais?
Je suis toujours à la recherche d'une solution simple pour passer du français à l'anglais et inversement à chaque mise à jour de mes mods (j'ai tendance à en sortir quelques uns et à les mettre à jour régulièrement).
Ce qui m'embête le plus, c'est de devoir recommencer la traduction de termes que j'avais déjà traduits pour une version précédente.
Pour résumer le problème, les scripts ne sont pas un soucis car les miens sont maintenant bilingues, histoire de ne plus avoir à les traduire (de toutes façons, il y a aussi CKPE qui est là pour les traduire). Par contre, les objets ajoutés par mes soins ne peuvent être traduits automatiquement et cela me gonfle de faire des copier-coller d'un viel esp vers le nouveau de la même langue...
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#10 Epervier666

Epervier666

Posté 16 décembre 2012 - 22:10

Je ne souhaite pas mettre les fichiers strings sur le nexus. Tout est dans une base de données en xml.
Par contre, désolé, mais je n'ai pas prévu le coup du français vers l'anglais.
Cela dit, il y a moyen de "gruger" le logiciel. Par contre, cela nécéssitera de réimporter complètement la base de données, et de choisir d'importer les esm anglais comme étant la langue francaise, et inversement. C'est vrai qu'il faudrait que je pense aux autres langues :P
Cela dit ,c'est juste quelques requêtes à modifier je crois... mmm... je jetterai un oeil demain...
Par contre tu peux sans souci traduire "à la main" un mod français vers l'anglais avec ce prog. mais... "à la main" :P
(comme je l'ai dit plus haut, j'ai fait énormément de test avec l'esm du PNO, car il contient un grand nombre de texte et de champs différents)

@Nico coin : Que les gens râlent, ça m'irait bien... enfin s'ils ralent à moitié intelligemment. Genre "ptain t nul ton prog il a planté à tel endroit quand j'ai essayé de traduire xxx.esp" plutôt que "ptain t nul"... Après, un 'whoua ça marche bien t'es trop fort", je ne suis pas contre non plus :)
Pareil, je pense attendre un peu pour le mettre sur le nexus, mais sans réponse au bout de quelque jours, je le ferait, et advienne que pourra !
ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#11 Nico coiN

Nico coiN

    Commissaire Magret


Posté 17 décembre 2012 - 17:42

@Gérauld : Le plus simple c'est de charger ton ancien et ton nouveau mod dans TES5Edit. Tu te mets sur le nouveau puis, record après record, tu fais du drag'n drop des textes de l'ancien vers le nouveau. Ça se fait très rapidement sur des mods "standards" et pas trop conséquents au niveau texte. Par contre sur des mods très très conséquents il faut s'armer d'énormément de temps et de patience... :jester:
Canard mystique, grand instigateur et créateur de la carpe d'ondepluie.

#12 Epervier666

Epervier666

Posté 17 décembre 2012 - 17:51

Yop

J'ai pas encore mis en ligne mais j'ai modifié le truc. Bon, j'ai corrigé quelques bugs à droite à gauche (vu que je vais attaquer bientôt une nouvelle partie, je me prépare en traduisant mes mods, et du coup, je tombe sur des bugs :)), et surtout j'ai rajouté la fonctionnalité évoquée.
Donc on peut (enfin je mettrais en ligne ce soir) traduire de l'anglais vers le français et réciproquement (en utilisant la base dans les deux sens), et on peut, lors du chargement d'une sauvegarde de traduction, choisir de charger la colonne de texte non traduite et par ID uniquement. Du coup, tu as ton mod en français et en anglais déjà existant : Tu fais une sauvegarde de la traduction de la VA que tu as déjà faite. Ensuite, tu travailles que sur ton mod en français, et quand tu veux le retraduire, bah tu charge l'ancienne traduction. Si les ID n'ont pas changé, pas de problème :) Je sais pas si je suis bien clair.
ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#13 Nico coiN

Nico coiN

    Commissaire Magret


Posté 17 décembre 2012 - 18:11

Voir le messageEpervier666, le 17 décembre 2012 - 17:51, dit :

Si les ID n'ont pas changé, pas de problème :) Je sais pas si je suis bien clair.

C'est clair, mais je t'avouerai que le processus qui les génère m'échappe totalement... :(

Voir le messageEpervier666, le 17 décembre 2012 - 17:51, dit :

[...] vu que je vais attaquer bientôt une nouvelle partie[...]

On te conseille vraiment d'attendre quoi... disons une semaine... :huhu:
Canard mystique, grand instigateur et créateur de la carpe d'ondepluie.

#14 Epervier666

Epervier666

Posté 17 décembre 2012 - 18:48

Après, si les ID ne sont pas les mêmes, il faudra faire la traduction dans le soft une fois au moins, afin que la sauvegarde (qui génère une mini base de données xml) contiennent les termes Anglais ET français. Du coup, comme le chargement de la sauvegarde peut aussi s'appliquer sur les textes uniquement, ça roulera :)
Une semaine ? arf... dire que j'ai une nouvelle carte graphique depuis deux semaines, et que je passe tout mon temps sur ce programme... même pas encore jouer avec :(

Modifié par Epervier666, 17 décembre 2012 - 18:48.

ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#15 Lucead

Lucead

Posté 17 décembre 2012 - 19:35

Je ne suis pas le genre de personne qui va utiliser ton outil, mais comme je sais qu'il est "parfois" un peu difficile d'avoir des retours de bugs, je suis en train de jeter un oeil.
En l’occurrence, je viens d'avoir le droit à une OutOfMemoryException lors de l'importation des Strings de Skyrim.esm (petite capture à l'appui) :
Spoiler

Soit je mis prends mal, soit c'est bien un bug. Dans le second cas, j'ai bien mon idée sur le problème, mais j'ai honnêtement pas le courage d'aller jeter un oeil aux sources (via IL Spy) ^^ Je continue de regarder pour trouver d'éventuelles pistes d'améliorations (hors coeur d'application, je laisse les pro s'en charger :P).

#16 Epervier666

Epervier666

Posté 17 décembre 2012 - 20:20

Alors moi de mon coté j'ai trouvé à nouveau un bug tout bête... Mais qui fait que ma base de données est incomplète :( Je suis en train de la réimporter.
Les Out Of memory sont dus à l'utilisation intensive des string et substring. Il garde un milliard d'info en mémoire... Et encore, depuis que j'utilise le streamreader pour la lecture originale, ça va beaucoup mieux !! Je pourrais encore alléger en utiliser le reader en question dans la fonction qui analyse par groupe, mais je serais obligé de réunir 2 fonctions (ou de passer le reader en paramètre), donc ça demande pas mal de modif... Mais je vais surement y venir...
Je ne connais pas IL Spy (comme je disais, je ne suis pas développeur), mais ça permet d'avoir tout mon code ? si quelqu'un de calé regarde dedans, il va soit rigoler, soit pleurer :P
Cela dit, je vois que tu as encore la liste déroulante "importer en plusieurs fois", donc vieille version, donc je n'utilisais pas encore le stream reader, donc c'est "normal" :P
La version que je mettrais  ce soir sera normalement complète au niveau de la BDD, et les Out of Memory en Import devrait disparaître.
En tout cas, merci beaucoup de jeter un oeil !!!
ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#17 Lucead

Lucead

Posté 17 décembre 2012 - 20:30

Voir le messageEpervier666, le 17 décembre 2012 - 20:20, dit :

Je ne connais pas IL Spy (comme je disais, je ne suis pas développeur), mais ça permet d'avoir tout mon code ? si quelqu'un de calé regarde dedans, il va soit rigoler, soit pleurer :P
Je viens de jeter un oeil, et effectivement, mes yeux ont un peu saignés quand j'ai vu que tu codes en français :angry: Sinon, voici un aperçu de ce que peut faire IL Spy :
Spoiler
Tout n'est pas récupéré, mais largement assez en général pour pouvoir recréer le projet derrière ^^ Ce petit programme est parfois très utile lorsqu'on récupère un programme écrit en .Net et qu'on se dit : "Wouah ! Comment ils ont fait ça ? oO" ^^

Concernant le StringBuilder, au pire, tu peux le "vider" toutes les 10 ou 20 enregistrements lus (si c'est possible bien sûr) par exemple : tu perds un peu en performances, mais tu ne satures plus la mémoire. De façon générale, je préfère faire un processus légèrement plus lent mais avec un barre de progression et une interface qui ne freeze pas qu'un processus qui envoit du steack mais plante une fois sur deux (raison pour laquelle j'ai horreur de Wrye Bash d'ailleurs).

Modifié par Lucead, 17 décembre 2012 - 20:31.


#18 MagikMike

MagikMike

    Crétins de bugs !


Posté 17 décembre 2012 - 21:06

iLSpy?

Et par rapport a Reflector ca vaut quoi?

:P

Voir le messageLucead, le 17 décembre 2012 - 20:30, dit :


Concernant le StringBuilder, au pire, tu peux le "vider" toutes les 10 ou 20 enregistrements lus (si c'est possible bien sûr) par exemple : tu perds un peu en performances, mais tu ne satures plus la mémoire. De façon générale, je préfère faire un processus légèrement plus lent mais avec un barre de progression et une interface qui ne freeze pas qu'un processus qui envoit du steack mais plante une fois sur deux (raison pour laquelle j'ai horreur de Wrye Bash d'ailleurs).

Je plussoie !
PNOG
PNOS

On a toujours besoin d'un petit PNO chez soi (merci Neluche)

#19 Epervier666

Epervier666

Posté 17 décembre 2012 - 21:15

Bah le process plantait parfois (Out of Memory) sur des stringbuilder.clear()
Du coup, je les ai viré et ai fait des "new stringbuilder" et ça va mieux.
Marrant que le prog le ressorte en C# alors que je code en VB :P
Et oui, je code en français :) Pourquoi faire des variables avec des noms anglais ? (bien que je le fasse de temps en temps :P)
Effectivement, faudrait que je rajoute une barre de progression. Le problème de ces barres, c'est que si on va sur une autre fenêtre (genre IE) pendant le process, quand on revient, c'est "freezé"... Du coup on sait pas trop si le programme a planté ou pas... Même problème sans barre aussi remarquez... :P
Là par exemple, j'importe toujours :) (Mais je n'ai plus de problème de Out of Memory depuis que je suis passé au stream reader)
Ce qui est marrant, c'est que j'ai vachement progressé en développant ce machin, qui m'a obligé à chercher des solutions que je ne connaissais pas du tout (le xml, le stream reader, le dataset...)
ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#20 Lucead

Lucead

Posté 17 décembre 2012 - 21:39

Voir le messageEpervier666, le 17 décembre 2012 - 21:15, dit :

Marrant que le prog le ressorte en C# alors que je code en VB :P
Il peut ressortir le code dans le langage que tu veux. Comme je développe en C#, c'est normal qu'il soit réglé ainsi. ^^

Voir le messageEpervier666, le 17 décembre 2012 - 21:15, dit :

Et oui, je code en français :) Pourquoi faire des variables avec des noms anglais ? (bien que je le fasse de temps en temps :P)
C'est plus une habitude qu'autre chose. En général, l'anglais est utilisé car plus concis.

Voir le messageEpervier666, le 17 décembre 2012 - 21:15, dit :

Effectivement, faudrait que je rajoute une barre de progression. Le problème de ces barres, c'est que si on va sur une autre fenêtre (genre IE) pendant le process, quand on revient, c'est "freezé"... Du coup on sait pas trop si le programme a planté ou pas... Même problème sans barre aussi remarquez... :P
Dans la mesure où tu fais du WinForms, l'idéal pour résoudre ce problème facilement à ton niveau serait d'utiliser un BackgroundWorker. Le problème que tu détailles ici se retrouve malheureusement souvent, alors qu'il suffit de faire un petit thread pour s'en débarrasser. Juste une petite astuce, sinon si tu vas chercher penant 100 ans : pour mettre à jour une interface graphique depuis un thread différent (ou depuis le BackgroundWorker), il faut utiliser le code suivant (en C#, je te laisse traduire) :
// La fonction 'Invoke' est disponible sur les formulaires
Invoke(new MethodInvoker( () => { /* code de mise à jour ici  */ } ));

Voir le messageEpervier666, le 17 décembre 2012 - 21:15, dit :

Là par exemple, j'importe toujours :) (Mais je n'ai plus de problème de Out of Memory depuis que je suis passé au stream reader)
Ce qui est marrant, c'est que j'ai vachement progressé en développant ce machin, qui m'a obligé à chercher des solutions que je ne connaissais pas du tout (le xml, le stream reader, le dataset...)
C'est la meilleure façon d'apprendre de toute façon. J'ai aussi appris beaucoup de chose en faisant CKPE, et pourtant j'estime avoir un niveau plutôt correct :P

EDIT :

Voir le messageMagikMike, le 17 décembre 2012 - 21:06, dit :

iLSpy?

Et par rapport a Reflector ca vaut quoi?

:P
Je teste IL Spy depuis peu, mais pour l'instant, je n'ai pas vu beaucoup de différence. Le gros avantage d'IL Spy est qu'il est open-source et gratuit :P

Voir le messageMagikMike, le 17 décembre 2012 - 21:06, dit :

Je plussoie !
J'ai tellement HORREUR de Wrye Bash :icon8:

Modifié par Lucead, 17 décembre 2012 - 21:42.


#21 Gérauld

Gérauld

Posté 17 décembre 2012 - 22:12

Ça y est, les deux développeurs se sont rencontrés et commencent à parler bizarrement...
N'empêche que cela ne règle pas le problème de passage rapide et automatique (en ajoutant les strings par rapport à l'ID dans une base mise à jour par le moddeur par exemple) du français à l'anglais et inversement pour les moddeurs ayant pas mal de mods et sortant régulièrement des MAJ... Nous ne sommes certes pas nombreux dans ce cas mais si, pour une fois, un outil de traduction pouvait se pencher un peu sur le sort des moddeurs et non seulement des traducteurs, ce serait sympa. (Oui, j'insiste ouvertement).
Si l'un de vous deux (je profite d'avoir les deux développeurs sous la main) vient à envisager l'ajout d'une fonction de ce type dans un logiciel, je la testerai sans soucis. Lucead pourra te parler des tests effectués sur CKPE pour te convaincre du sérieux de ma demande et les rubriques "téléchargements" et "mods et travaux" témoigner du besoin que je commence à avoir de gagner du temps dans les traductions ...
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#22 Lucead

Lucead

Posté 17 décembre 2012 - 22:28

Voir le messageGérauld, le 17 décembre 2012 - 22:12, dit :

N'empêche que cela ne règle pas le problème de passage rapide et automatique (en ajoutant les strings par rapport à l'ID dans une base mise à jour par le moddeur par exemple) du français à l'anglais et inversement pour les moddeurs ayant pas mal de mods et sortant régulièrement des MAJ... Nous ne sommes certes pas nombreux dans ce cas mais si, pour une fois, un outil de traduction pouvait se pencher un peu sur le sort des moddeurs et non seulement des traducteurs, ce serait sympa. (Oui, j'insiste ouvertement).tions ...
Je t'avouerais que je ne me suis jamais vraiment pencher sur les formats de fichiers des TES : c'est un boulot assez long et pénible, surtout pour trouver comment optimiser au mieux l’utilisation d'un tel logiciel (comme je disais ci-dessus, optimisation du chargement/de la mémoire utilisée, paralléliser les tâches, etc). Et tout ça, c'est sans comptais sur les spécificités de fonctionnement dont vous débattez ici.


Voir le messageGérauld, le 17 décembre 2012 - 22:12, dit :

Si l'un de vous deux (je profite d'avoir les deux développeurs sous la main) vient à envisager l'ajout d'une fonction de ce type dans un logiciel, je la testerai sans soucis.
J'avais plus ou moins imaginé une gestion des esx/bsa au sein de CKPE (notamment pour la génération automatique de propriétés, un 'assistant' de création de quête et enfin un 'assistant' de création de level...enfin j'me comprends :mdr: j'avais [j'ai] juste pleins de projets mais pas assez de temps). Mais réaliser ce genre de fonctionnalités est assez lourd et long (et je parle pas des tâches "lourdes et longues" de CKPE où en fait je mettais 2 heures chrono en main :grin: ).


Voir le messageGérauld, le 17 décembre 2012 - 22:12, dit :

Lucead pourra te parler des tests effectués sur CKPE pour te convaincre du sérieux de ma demande et les rubriques "téléchargements" et "mods et travaux" témoigner du besoin que je commence à avoir de gagner du temps dans les traductions ...
Oh que oui ! J'ai économisé d'innombrables jours avec son aide ! Cela permet aussi de conserver la motivation aussi :good:


Voir le messageGérauld, le 17 décembre 2012 - 22:12, dit :

Ça y est, les deux développeurs se sont rencontrés et commencent à parler bizarrement...
Un de ces jours, je te ferai une leçon sur Skype :jester:

Modifié par Lucead, 17 décembre 2012 - 22:31.


#23 Epervier666

Epervier666

Posté 17 décembre 2012 - 22:48

Bon ca y est, j'ai refait la base de données. Donc nouvelle version 1.01 :)
Voilà les pseudos nouveautés :
- Possibilité de traduire de l'anglais vers le français et du français vers l'anglais
- Possibilité d'affiner le chargement des sauvegardes de traduction (en permettant par exemple de charger la colonne anglais au lieu de Français, ou encore en ne se basant que sur l'ID.
- Correction d'un buf sur l'analyse, concernant les descriptions
- Correction de la Base de données, incomplète à cause du bug ci-dessus
- J'ai fourni dans le répertoire Bases perso des trads (pas terrible et sans doute incomplète, mais c'est pour l'exemple) de Deadly Dragons, Birds of Skyrim, Dynamic Merchant, Dovahkiin Hideout et un autre dont le nom m'échappe mais qui modifie l'armure des Thalmor.
- J'ai corrigé deux trois coquilles sur lesquelles je suis tombé, à nouveau rien de grave (et rien pour l'instant qui concerne les process de traduction proprement dits)

Voilou
Je vais éditer mon premier message avec ces infos

Normalement Monsieur Gerauld, mon prog devrait te permettre de faire ce que tu désires. Voilà la marche à suivre :
Tu charge une version française ou anglaise de ton mod.
Tu sauvegardes (pas besoin d'eefectuer les trads)
Tu analyses ensuite l'autre version.
Tu charge la sauvegarde précédente en cochant la case pour charger la colonne de texte original
Normalement, la case à cocher pour ne charger que les ID devrait se cocher d'elle-même. Si ce n'est pas le cas, il faut la cocher avant le chargement.
Et normalement, tous les ID correspondants seront mis en relation.
A partir de là, tu re-sauvegardes.
Maintenant, tu fais une nouvelle version en fr ou en anglais, et pour passer dans l'autre langue, tu analyse ton fichier et tu recharges la sauvegarde. Puis tu fais Traduire le mod (en prenant soin de copier l'original sous un autre nom avant).
Et voilà !
Bien sûr, cette méthode est valable si les deux mods ont les mêmes ID, mais j'imagine que c'est le cas ? ça m'etonnerai que tu reparte de zéro pour changer la langue.
Si par hasard ce n'est pas le cas, l'autre solution sera d'analyse ta version, puis de traduire à la main et de sauvegarder. Ce sera long la première fois mais la sauvegarde devrait par la suite te simplifier la vie.

Le but que j'espère atteindre un jour avec ce prog, c'est qu'on ait beaucoup de trad facilement accessibles. Etant donné le format, je ne pense pas que les permissions des auteurs soient nécessaires, dans le sens ou il faut toujours aller récupérer le mod chez eux, puis appliquer la trad. Après, la politesse voudrait quand même qu'on les prévienne quand même hein !

Re-Voilou

Je jetterai un oeil à ce "Invoke" demain, je crois que j'ai pas beaucoup de boulot de prévu :)
ESP Translation : Pour la traduction des Mods de Skyrim / EdJModificator : Pour avoir un joli explorateur de jeux
Mon Site : ...oui je sais, un jour...

#24 Lucead

Lucead

Posté 17 décembre 2012 - 23:06

Voir le messageEpervier666, le 17 décembre 2012 - 22:48, dit :

Je jetterai un oeil à ce "Invoke" demain, je crois que j'ai pas beaucoup de boulot de prévu :)
Si tu n'ai pas allergique à l'anglais, voici un petit article sur ce problème (en VB.Net):
http://tech.xster.ne...eads-on-vb-net/

Le code qu'il propose est propre, cependant évite le coup du IllegalCheck, c'est juste :icon8:  D-E-G-U-E-L-A-S-S-E !!! :icon8:

#25 Gérauld

Gérauld

Posté 17 décembre 2012 - 23:17

* Ça y est, ils recommencent à parler bizarre... *
Merci beaucoup, je teste la manip de traduction dans la semaine (au plus tard ce weekend, j'ai un mod à mettre à jour dans les deux langues). :)
Je te tiendrai au courant (et en profiterai pour pousser un peu les tests en y étant...)

Concernant les moddeurs étrangers, un moyen simple d'avoir directement leur avis et d'en impliquer quelques-uns est de parler du projet et de l'expliquer sur le forum officiel (avec un lien vers une ALPHA ou une BETA). C'est dessus que je suis le thread de SkyUI 3.0 Alpha et il y a quand même pas mal de moddeurs qui passent (même si quelques joueurs se perdent des fois...) et qui causent technique (avec un niveau qui reste très abordable).
Nexus, c'est sympa et pratique pour distribuer des versions en cours mais le forum officiel est quand même un cran au-dessus niveau qualité des retours à mon avis. En site anglophone, Tes Alliance est très bien aussi et mériterait sans aucun doute un sujet sur ton programme par la suite.
Sinon, côté français, je ne traine que sur deux sites (la Confrérie et Wiwiland) et tu as déjà posté sur les deux. La communauté française étant moins active que la communauté anglophone, il va falloir s'armer de patience. La plupart préfère également ne pas essuyer les plâtres lors de l'utilisation des 1ères versions d'un logiciel alors que c'est ce qu'il y a de plus intéressant.

Je contacterai 2-3 moddeurs pour leur demander si ça les intéresse également d'essayer la manip de sauvegarde de traduction de leurs mods (S.S.L. avait tendance à inverser les chaines chez moi... Grrr).
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)