Atualização 2.214
02/08/2026
v2.214.0.0BETAMINOR
Seymour2 de ago. de 2026
pipeline i18n baseado no corpus oficial do jogo (8 regiões) + bases de 7 idiomas + traduções oficiais aplicadas (ES/FR/DE/IT)
- Fase 1 — Extração do editor:
work/_extract_editor_strings.py→Text\editor_strings.json(251 chaves resx + 2.414 literais hardcoded em 96.axaml). - Fase 2 — Corpus do jogo:
RuntimeTools/TextCorpusLab(usa parsers FfxLib de produção) extrai 117 arquivos / 14.832 linhas de 8 regiões (new_uspc,new_sppc,new_frpc,new_depc,new_itpc,jppc/new_jppc,new_krpc,new_chpc) × 13 tabelas (btl_txt, name/item/menu/status/summon/arms/mmain/save/config/build/btlend_txt, w_name) →Text\game_{region}\. - Phase 3 — Smart linking:
work/_linker.py(inverted word index → (file,index,slot) + exact/substring/rare-word matching) →Text\linkage.json(57 strong links) +linkage_weak.json(523 candidates). - Fase 4 — Aplicação:
work/_apply_translations.pyaplica as traduções OFICIAIS do jogo aStrings.{es,fr,de,it}.resx(e.g. "Sphere Grid"→ES Desarrollo/FR Sphérier/DE Sphärobrett/IT Sviluppo; "Overdrive"→ES/IT Turbo/DE Ekstase) + geraterms_latin.json(34 termos). - Bases para 7 idiomas criadas:
Strings.{es,fr,de,it,ja,ko,zh}.resx(estrutura completa, fallback em EN). - Limitações honestas: JA/KO/ZH =
<K:n>marcadores (banco de fontes ainda aberto, documentação existente); o alinhamento dos slots tem lacunas em algumas regiões (e.g. IT "Niente"); 2,414 literais fixos aguardam a migração para chaves (dicionário pronto). - Doc:
docs/ai/I18N_GAME_CORPUS_PIPELINE_2026-08-02.md. Build 0 erros (lab + editor). ### MINOR
v2.213.0.0
v2.214.0.1BETAREVISION
Seymour2 de ago. de 2026
link code→glyph Event-text PROVEN no EXE (desbloqueia o decoder JP/KO/ZH)
FFX_EventText_AdvanceCharGlyph(0x8B92E0) descompilado — contém o mapeamento completo code→glyph que o doc de 2026-06-06 marcou como aberto: pares de 1 byte (≥0x30→idx = byte-0x30no slot atual) + pares de 2 bytes (leads0x2C-0x2F→slot 0,0x2A-0x2B→slot 1,0x28-0x29→slot 2,0x26-0x27→slot 3,0x06→slot 5) com fórmulas lineares208*lead + next - K; largura =*(char*)(SlotGlyphMeta + idx) * 0.25.FFX_Font_GetSlotGlyphMeta(0x8AC380) = ponteiro embyte_183FA78[16*slot + 8940](tabela de 6 slots em 0x183FA78).- GOLDEN RULE: comentários aplicados no db canônico (0x8B92E0, 0x8AC380, 0x183FA78 — OK1/OK2/OK3 True). Doc:
docs/reverse/FFX_EVENTTEXT_GLYPH_ELO_PROVADO_2026-08-02.md. - Desbloqueia: resolver os tokens
<K:n>do corpus JA/KO/ZH (pipeline i18n v2.214.0.0) — só falta o probe RT2 para capturar os ponteiros SlotGlyphMeta em runtime. ### MINOR
v2.214.0.0
v2.214.0.2BETAPATCH
Seymour2 de ago. de 2026
Remiem RT2 (2º teste): posições VANILLA preservadas + câmera calculada a partir da geometria real
- Lição RT2: kino00_00 (Mushroom Rock) tem uma câmera top-down — um forward camera-derived tem direção horizontal indefinida (eye acima → o componente XZ é ruído) → auto-layout espalha party/monstros errado (empacotado). Fix: para cenários com posições NATIVE no bin (remiem), o compose preserva as posições vanilla (party à direita / monstros à esquerda — a verdade do cenário) e só ajusta count/chunk2/câmera.
BuildVanillaMonsterPositions(novo): âncoras nativas monLive + extras derivados do centroide do grupo para contagens acima da capacidade. - Câmera x4 do Remiem calculada da geometria (
ApplyRemiemX4BehindPartyCamerarefatorado): h agora vem do forward party→monstros do chunk3 (h 12.9→−83.9 no kino00_00) — antes era o fixo −104.6 + elevação −25 (o que deixava a câmera top-down). Elev −11.3 e dist 122.1 vanilla preservados. - Diff cirúrgico: 73 bytes (era 132) — só IDs do chunk2 + count + splice (+16) + ponteiros re-stamped + câmera h; posições monLive byte-identical ao vanilla (x4:
grew 4→4com as 4 coords nativas). - Camera-derived auto-layout continua como ferramenta de inspeção (
--auto-layout-check); o compose usa a verdade do bin (o hook continua passando--auto-layout— o lab decide). - RT2
Needs Testing: Custom Mix → Mushroom Rock x4 → Launch → a batalha deve abrir com a câmera atrás da party (não top-down), party/monstros nas posições nativas do cenário, e os 4 aeons nos slots. ### PATCH
v2.214.0.1
v2.214.1.0BETAPATCH
Seymour2 de ago. de 2026
i18n Wave 1: termos oficiais do jogo migrados para chaves resx com traduções oficiais em ES/FR/DE/IT (corpus do jogo)
- 25 chaves
Term*criadas nos 9 resx (Strings.{,pt,es,fr,de,it,ja,ko,zh}.resx) com as traduções oficiais do pipelineText\terms_latin.json(Weapon→Armas/Armes/Waffe/Arma; Overdrive→Turbo/Overdrive/Ekstase/Turbo; Status→Condición/Etat/Status/Status; Scan→Libra/Scan/Analyse; Distill*/Shield/Boost/Doom etc.). Gaps de slot IT (Niente) caem em EN honestamente (desalinhamento documentado). PT/JA/KO/ZH = EN (sem corpus oficial PT; JA/KO/ZH aguardam font-bank — link code→glyph provado em v2.214.0.1, probe RT2 pendente). - 41 literais hardcoded substituídos por
{x:Static res:Strings.TermX}em 9 módulos ativos (KernelCommands 16, MonEditor 17, CustomBossCreator 1, InventoryTracker 2, LiveBattleLab 1, MonsterAiEditor 1, SaveEditorCharacter 1, SaveEditorItems 1, WeaponGear 1) +xmlns:resadicionado aos headers que não tinham.MonsterAiEditor2intocado (descontinuado, regra dura). - Script reutilizável:
work/_i18n_onda1_migrate.py(resx + axaml, substituição exata de atributo/valor — sem falsos positivos como "Cost Overdrive"). - Gate: build Release 0 erros; suíte 381/381 PASS (inclui o
StringsTestsda lane). Wave 1 pendente: smoke manual no editor (trocar PT/EN e abrir os 9 módulos). ### PATCH
v2.214.0.2
v2.214.2.0BETAPATCH
Seymour2 de ago. de 2026
i18n Wave 2: 261 literais repetidos migrados para 51 chaves EN/PT comuns (varredura em 91 módulos)
- 51
Common*chaves criadas nos 9 resx (EN neutro + PT traduzido; ES/FR/DE/IT/JA/KO/ZH = EN — sem corpus oficial para UI do editor) cobrindo os 56 valores com ≥3 ocorrências (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...). - Reuso de chaves existentes:
Session Controls→SessionControls(20x),Salvar→ActionSave(6x) — zero duplicação. - 261 substituições em 91 arquivos .axaml com
{x:Static res:Strings.X}+xmlns:resgarantidos.MonsterAiEditor2*excluído da varredura (regra dura descontinuada — 0 diffs verificados). - Scripts:
work/_i18n_onda2_migrate.py(COMMON/REUSE centralizados, walk recursivo com exclusão) +_i18n_onda2_check.py(0 literais residuais). - Gate: build Release 0 erros; suíte 381/381 PASS. Waves 1+2 cumulativas: 302 literais migrados (2.414 → 2.112).
- Pendente: smoke manual PT/EN no editor; Wave 3 (literais per-file únicos) em progresso. ### PATCH
v2.214.1.0