Mise à jour 2.214
02/08/2026
v2.214.0.0BETAMINOR
Seymour2 août 2026
Pipeline i18n basé sur le corpus officiel du jeu (8 régions) + bases 7 langues + traductions officielles appliquées (ES/FR/DE/IT)
- Phase 1 — Extraction de l'éditeur :
work/_extract_editor_strings.py→Text\editor_strings.json(251 clés resx + 2 414 littéraux codés en dur dans 96.axaml). - Phase 2 — Corpus du jeu :
RuntimeTools/TextCorpusLab(utilise les parseurs FfxLib de production) extrait 117 fichiers / 14 832 lignes de 8 régions (new_uspc,new_sppc,new_frpc,new_depc,new_itpc,jppc/new_jppc,new_krpc,new_chpc) × 13 tables (btl_txt, name/item/menu/status/summon/arms/mmain/save/config/build/btlend_txt, w_name) →Text\game_{region}\. - Phase 3 — Liaison intelligente :
work/_linker.py(index de mots inversé → (fichier,index,slot) + correspondance exacte/sous-chaîne/mot-rare) →Text\linkage.json(57 liens forts) +linkage_weak.json(523 candidats). - Phase 4 — Application :
work/_apply_translations.pyapplique les traductions OFFICIELLES du jeu àStrings.{es,fr,de,it}.resx(ex. « Sphere Grid »→ES Desarrollo/FR Sphérier/DE Sphärobrett/IT Sviluppo ; « Overdrive »→ES/IT Turbo/DE Ekstase) + génèreterms_latin.json(34 termes). - Bases 7 langues créées :
Strings.{es,fr,de,it,ja,ko,zh}.resx(structure complète, repli EN). - Limites honnêtes : JA/KO/ZH = tokens
<K:n>(banque de polices toujours ouverte, doc existante) ; l'alignement de slots a des écarts dans certaines régions (ex. IT « Niente ») ; 2 414 littéraux codés en dur attendent une migration de clés (dictionnaire prêt). - Doc :
docs/ai/I18N_GAME_CORPUS_PIPELINE_2026-08-02.md. Build 0 erreurs (lab + éditeur). ### MINOR
v2.213.0.0
v2.214.0.1BETAREVISION
Seymour2 août 2026
Lien code→glyphe du texte d'événement PROUVÉ dans l'EXE (débloque le décodeur JP/KO/ZH)
FFX_EventText_AdvanceCharGlyph(0x8B92E0) décompilé — contient le mapping code→glyphe complet que le doc 2026-06-06 marquait comme ouvert : 1 octet (≥0x30→idx = byte-0x30sur le slot actuel) + paires 2 octets (leads0x2C-0x2F→slot 0,0x2A-0x2B→slot 1,0x28-0x29→slot 2,0x26-0x27→slot 3,0x06→slot 5) avec formules linéaires208*lead + next - K; largeur =*(char*)(SlotGlyphMeta + idx) * 0.25.FFX_Font_GetSlotGlyphMeta(0x8AC380) = pointeur àbyte_183FA78[16*slot + 8940](table 6 slots à 0x183FA78).- RÈGLE D'OR : commentaires appliqués sur la base canonique (0x8B92E0, 0x8AC380, 0x183FA78 — OK1/OK2/OK3 True). Doc :
docs/reverse/FFX_EVENTTEXT_GLYPH_ELO_PROVADO_2026-08-02.md. - Débloque : la résolution des tokens
<K:n>du corpus JA/KO/ZH (pipeline i18n v2.214.0.0) — seule la sonde RT2 pour capturer les pointeurs SlotGlyphMeta au runtime manque encore. ### MINOR
v2.214.0.0
v2.214.0.2BETAPATCH
Seymour2 août 2026
Remiem RT2 (2e test) : positions VANILLA préservées + caméra calculée à partir de la géométrie réelle
- Leçon RT2 : kino00_00 (Mushroom Rock) a une caméra vue de dessus — un avant dérivé de la caméra a une direction horizontale indéfinie (œil au-dessus → la composante XZ est du bruit) → le spread auto-layout party/monstres était faux (tassé). Correctif : pour les scénarios avec positions NATIVES dans le bin (remiem), le compose préserve les positions vanilla (party à droite / monstres à gauche — la vérité du scénario) et n'ajuste que compte/chunk2/caméra.
BuildVanillaMonsterPositions(nouveau) : ancres monLive natives + extras dérivés du centroïde de groupe pour les comptes au-dessus de la capacité. - Caméra Remiem x4 calculée depuis la géométrie (
ApplyRemiemX4BehindPartyCamerarefactoré) : h vient désormais de l'avant party→monstres du chunk3 (h 12,9→−83,9 sur kino00_00) — avant c'était le −104,6 fixe + l'élévation −25 (ce qui rendait la caméra vue de dessus). Élev −11,3 et dist 122,1 vanilla préservés. - Diff chirurgical : 73 octets (était 132) — seulement les ids chunk2 + compte + splice (+16) + pointeurs ré-estampillés + h de caméra ; positions monLive byte-identiques au vanilla (x4 :
grew 4→4avec les 4 coordonnées natives). - L'auto-layout dérivé de la caméra reste comme outil d'inspection (
--auto-layout-check) ; le compose utilise la vérité du bin (le hook continue de passer--auto-layout— le lab décide). - RT2
Needs Testing: Custom Alchimie → Mushroom Rock x4 → Launch → la bataille devrait s'ouvrir avec la caméra derrière la party (pas vue de dessus), party/monstres aux positions natives du scénario, et les 4 aeons dans les slots. ### PATCH
v2.214.0.1
v2.214.1.0BETAPATCH
Seymour2 août 2026
i18n Vague 1 : termes officiels du jeu migrés vers des clés resx avec les traductions officielles ES/FR/DE/IT (corpus du jeu)
- 25 clés
Term*créées dans les 9 fichiers resx (Strings.{,pt,es,fr,de,it,ja,ko,zh}.resx) avec les traductions officielles du pipelineText\terms_latin.json(Armes→Armas/Armes/Waffe/Arma ; Overdrive→Turbo/Overdrive/Ekstase/Turbo ; Status→Condición/Etat/Status/Status ; Scan→Libra/Scan/Analyse ; Distill*/Shield/Boost/Doom etc.). Les écarts de slots IT (Niente) retombent honnêtement sur l'EN (désalignement documenté). PT/JA/KO/ZH = EN (pas de corpus PT officiel ; JA/KO/ZH attendent la banque de polices — lien code→glyphe prouvé en v2.214.0.1, sonde RT2 en attente). - 41 littéraux codés en dur remplacés par
{x:Static res:Strings.TermX}dans 9 modules actifs (KernelCommands 16, MonEditor 17, CustomBossCreator 1, InventoryTracker 2, LiveBattleLab 1, MonsterAiEditor 1, SaveEditorCharacter 1, SaveEditorItems 1, WeaponGear 1) +xmlns:resajouté aux en-têtes qui en manquaient.MonsterAiEditor2intact (abandonné, règle dure). - Script réutilisable :
work/_i18n_onda1_migrate.py(resx + axaml, substitution exacte attribut/valeur — pas de faux positifs comme « Cost Overdrive »). - Porte : build Release 0 erreurs ; suite 381/381 PASS (incluant les
StringsTestsde la voie). Vague 1 en attente : smoke manuel dans l'éditeur (basculer PT/EN et ouvrir les 9 modules). ### PATCH
v2.214.0.2
v2.214.2.0BETAPATCH
Seymour2 août 2026
i18n Vague 2 : 261 littéraux répétés migrés vers 51 clés EN/PT communes (balayage de 91 modules)
- 51
Common*clés créées dans les 9 resx (neutre EN + PT traduit ; ES/FR/DE/IT/JA/KO/ZH = EN — pas de corpus officiel pour l'UI d'éditeur) couvrant les 56 valeurs avec ≥3 occurrences (herdado27x,Fechar20x,valor8x,Aplicar7x,Foco6x,Prévia humana5x,BIBLE OF SPIRA4x,Pesquisar habilidade por nome ou hex4x,+ fase comum/+ última fase/remover fase3x,Exigir HP <3x,Comando (0x####)3x, PosX/PosY, US Description...). - Réutilisation de clés existantes :
Session Controls→SessionControls(20x),Salvar→ActionSave(6x) — zéro duplication. - 261 remplacements dans 91 fichiers .axaml avec
{x:Static res:Strings.X}+xmlns:resgaranti.MonsterAiEditor2*exclu du balayage (règle dure abandonnée — 0 diff vérifié). - Scripts :
work/_i18n_onda2_migrate.py(COMMON/REUSE centralisé, marche récursive avec exclusion) +_i18n_onda2_check.py(0 littéral résiduel). - Porte : build Release 0 erreurs ; suite 381/381 PASS. Vagues 1+2 cumulées : 302 littéraux migrés (2 414 → 2 112).
- En attente : smoke manuel PT/EN dans l'éditeur ; Vague 3 (littéraux uniques par fichier) en cours. ### PATCH
v2.214.1.0