Revise translation form scrape

Iterate through all constructor paths
This commit is contained in:
Kurt 2026-03-14 22:33:44 -05:00
parent ff69f82234
commit 2faa1b10b1
14 changed files with 71 additions and 7 deletions

View File

@ -21,7 +21,6 @@ protected override void Dispose(bool disposing)
components.Dispose();
}
base.Dispose(disposing);
qr.Dispose();
}
#region Windows Form Designer generated code

View File

@ -31,6 +31,7 @@ public QR(Bitmap qr, Image icon, params string[] lines)
public QR(Bitmap qr, Image icon, PKM pk, params string[] lines)
{
InitializeComponent();
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
this.qr = qr;
this.icon = icon;
Lines = lines;

View File

@ -7,6 +7,7 @@ KChart=Tabelle
Main=PKHeX
MemoryAmie=Erinnerung / Ami Editor
MoveShopEditor=Attacken Tutor Editor
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=Band Editor
SAV_Apricorn=Aprikoko Editor
SAV_BattlePass=Kampfpass Editor
@ -23,6 +24,7 @@ SAV_Encounters=Begegnungen
SAV_EventFlags=Event Flag Editor
SAV_EventReset1=Event Rücksetzer
SAV_EventWork=Event Flag Editor
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=Event Flag Editor
SAV_FolderList=Verzeichnis Liste
SAV_Gear=Accessoire Editor
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=Alle
RibbonEditor.B_Cancel=Abbrechen
RibbonEditor.B_None=Alle entfernen
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=Untersuchen
SAV_EventWork.GB_Researcher=Flag Vergleich
SAV_EventWork.L_EventFlagWarn=Wandelhöhlen Event Flags könnten andere Story Events beeinflussen. Backups sind empfohlen.
SAV_EventWork.L_Stats=Konstante:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Anwenden
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=Anwenden

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=Memory / Amie Editor
MoveShopEditor=Move Shop Editor
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=Ribbon Editor
SAV_Apricorn=Apricorn Editor
SAV_BattlePass=Battle Pass Editor
@ -23,6 +24,7 @@ SAV_Encounters=Database
SAV_EventFlags=Event Flag Editor
SAV_EventReset1=Event Resetter
SAV_EventWork=Event Flag Editor
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=Event Flag Editor
SAV_FolderList=Folder List
SAV_Gear=Gear Editor
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=Give All
RibbonEditor.B_Cancel=Cancel
RibbonEditor.B_None=Remove All
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=Research
SAV_EventWork.GB_Researcher=FlagDiff Researcher
SAV_EventWork.L_EventFlagWarn=Altering Event Flags may impact other story events. Save file backups are recommended.
SAV_EventWork.L_Stats=Constant:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Apply
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=Apply

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=Editor de Memorias / Poké Recreo
MoveShopEditor=Editor de la Tienda de Movimientos
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=Editor de Cintas
SAV_Apricorn=Editor de Bonguri
SAV_BattlePass=Editor de pases de combate
@ -23,6 +24,7 @@ SAV_Encounters=Base de Datos
SAV_EventFlags=Editor de marca de eventos
SAV_EventReset1=Reiniciado de eventos
SAV_EventWork=Editor de marcas de eventos
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=Editor de marcas de eventos
SAV_FolderList=Lista de carpetas
SAV_Gear=Editor de accesorios
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=Dar todos
RibbonEditor.B_Cancel=Cancelar
RibbonEditor.B_None=Ninguno
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=Investigar
SAV_EventWork.GB_Researcher=Investigador de marcas
SAV_EventWork.L_EventFlagWarn=Alterar marcas de eventos podría afectar otros eventos de la historia. Se recomiendan respaldos del archivo de guardado.
SAV_EventWork.L_Stats=Constante:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Aplicar
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=Aplicar

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=Editor de Memorias / Poké Recreo
MoveShopEditor=Editor de la Tienda de Movimientos
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=Editor de Cintas
SAV_Apricorn=Editor de Bonguri
SAV_BattlePass=Editor de pases de combate
@ -23,6 +24,7 @@ SAV_Encounters=Base de Datos
SAV_EventFlags=Editor de marca de eventos
SAV_EventReset1=Reiniciado de eventos
SAV_EventWork=Editor de marcas de eventos
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=Editor de marcas de eventos
SAV_FolderList=Lista de carpetas
SAV_Gear=Editor de accesorios
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=Dar todos
RibbonEditor.B_Cancel=Cancelar
RibbonEditor.B_None=Ninguno
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=Investigar
SAV_EventWork.GB_Researcher=Investigador de marcas
SAV_EventWork.L_EventFlagWarn=Alterar marcas de eventos podría afectar otros eventos de la historia. Se recomiendan respaldos del archivo de guardado.
SAV_EventWork.L_Stats=Constante:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Aplicar
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=Aplicar

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=Éditeur souvenir/ami
MoveShopEditor=Éditeur de capacités
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=Éditeur de rubans
SAV_Apricorn=Éditeur de noigrumes
SAV_BattlePass=Éditeur de cartes de combat
@ -23,6 +24,7 @@ SAV_Encounters=Base de données
SAV_EventFlags=Éditeur de drapeaux d'évènements
SAV_EventReset1=Réinitialisateur d'évènements
SAV_EventWork=Éditeur de drapeaux d'évènements
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=Éditeur de drapeaux d'évènements
SAV_FolderList=Liste des dossiers
SAV_Gear=Éditeur d'accessoires
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=Tout donner
RibbonEditor.B_Cancel=Annuler
RibbonEditor.B_None=Retirer Tout
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=Rechercher
SAV_EventWork.GB_Researcher=Chercher une différence de drapeaux
SAV_EventWork.L_EventFlagWarn=Modifier les drapeaux peut avoir un impact sur d'autres évènements. Il est recommandé de faire une copie.
SAV_EventWork.L_Stats=Valeur :
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Appliquer
SAV_FlagWork8b.B_ApplyFlagSystem=Appliquer
SAV_FlagWork8b.B_ApplyWork=Appliquer

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=Editor Memorie / Poké Io e Te
MoveShopEditor=Editor Negozio Mosse
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=Editor Fiocchi
SAV_Apricorn=Editor Ghicocche
SAV_BattlePass=Editor Pass Lotta
@ -23,6 +24,7 @@ SAV_Encounters=Database
SAV_EventFlags=Editor Segnali Evento
SAV_EventReset1=Reset di Eventi
SAV_EventWork=Editor Segnali Evento
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=Editor Segnali Evento
SAV_FolderList=Lista Cartelle
SAV_Gear=Editor Accessori
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=Dai Tutto
RibbonEditor.B_Cancel=Annulla
RibbonEditor.B_None=Rimuovi Tutto
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=Ricerca
SAV_EventWork.GB_Researcher=Ricerca Differenze
SAV_EventWork.L_EventFlagWarn=Alterare i segnali Evento può impattare altri eventi legati alla storia di gioco. È consigliabile effettuare un Backup del salvataggio.
SAV_EventWork.L_Stats=Constant:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Applica
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=Applica

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=おもいで
MoveShopEditor=技教え
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=取得リボン
SAV_Apricorn=ぼんぐり
SAV_BattlePass=バトルパス
@ -23,6 +24,7 @@ SAV_Encounters=データベース
SAV_EventFlags=イベントフラグ
SAV_EventReset1=イベントリセット
SAV_EventWork=イベントフラグ
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=イベントフラグ
SAV_FolderList=フォルダリスト
SAV_Gear=パーツ
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=全て
RibbonEditor.B_Cancel=キャンセル
RibbonEditor.B_None=全て消去
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=リサーチ
SAV_EventWork.GB_Researcher=フラグ差分リサーチ
SAV_EventWork.L_EventFlagWarn=ストーリー進行に影響が出る可能性があります。必ずセーブデータのバックアップを保存してください。
SAV_EventWork.L_Stats=定数:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=適用
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=適用

View File

@ -7,6 +7,7 @@ KChart=KChart
Main=PKHeX
MemoryAmie=기억 / 파를레 편집 도구
MoveShopEditor=기술 상점 편집 도구
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=리본 편집 도구
SAV_Apricorn=규토리 편집 도구
SAV_BattlePass=Battle Pass Editor
@ -23,6 +24,7 @@ SAV_Encounters=데이터베이스
SAV_EventFlags=이벤트 플래그 편집 도구
SAV_EventReset1=이벤트 초기화 도구
SAV_EventWork=이벤트 플래그 편집 도구
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=이벤트 플래그 편집 도구
SAV_FolderList=폴더 목록
SAV_Gear=Gear Editor
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=모두 주기
RibbonEditor.B_Cancel=취소
RibbonEditor.B_None=모두 제거
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=연구
SAV_EventWork.GB_Researcher=플래그 차이점 확인 도구
SAV_EventWork.L_EventFlagWarn=이벤트 플래그를 변경하면 스토리 진행에 영향이 있을 수 있습니다. 먼저 세이브 파일을 백업하세요.
SAV_EventWork.L_Stats=상수:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=Apply
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=Apply

View File

@ -7,6 +7,7 @@ KChart=信息列表
Main=PKHeX
MemoryAmie=回忆编辑器
MoveShopEditor=招式商店编辑器
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=奖章
SAV_Apricorn=球果编辑
SAV_BattlePass=对战通行证编辑
@ -891,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=获得全部
RibbonEditor.B_Cancel=取消
RibbonEditor.B_None=全部清除

View File

@ -7,6 +7,7 @@ KChart=信息清單
Main=PKHeX
MemoryAmie=回憶編輯器
MoveShopEditor=招式商店編輯器
QR=PKHeX QR Code (Click QR to Copy Image)
RibbonEditor=獎章
SAV_Apricorn=球果編輯
SAV_BattlePass=對戰通行證編輯
@ -23,6 +24,7 @@ SAV_Encounters=遇見資料庫
SAV_EventFlags=事件旗標編輯
SAV_EventReset1=事件重置
SAV_EventWork=事件標誌編輯器
SAV_Fashion9=Fashion Editor
SAV_FlagWork8b=事件標誌編輯器
SAV_FolderList=資料夾清單
SAV_Gear=裝扮配件編輯器
@ -890,6 +892,7 @@ PokeSizeDetailed.XXL=XXL
PokeSizeDetailed.XXS=XXS
PokeSizeDetailed.XXXL=XXXL
PokeSizeDetailed.XXXS=XXXS
QR.B_Refresh=Refresh
RibbonEditor.B_All=取得全部獎章
RibbonEditor.B_Cancel=取消
RibbonEditor.B_None=全部清除
@ -1206,6 +1209,9 @@ SAV_EventWork.GB_Research=研究
SAV_EventWork.GB_Researcher=旗標差異研究
SAV_EventWork.L_EventFlagWarn=更改事件旗標可能會破壞劇情.建議備份儲存資料.
SAV_EventWork.L_Stats=常數:
SAV_Fashion9.B_Cancel=Cancel
SAV_Fashion9.B_Save=Save
SAV_Fashion9.B_SetAllOwned=Set All Owned
SAV_FlagWork8b.B_ApplyFlag=應用
SAV_FlagWork8b.B_ApplyFlagSystem=Apply
SAV_FlagWork8b.B_ApplyWork=應用

View File

@ -15,9 +15,9 @@ public sealed partial class SAV_Fashion9 : Form
private SAV_Fashion9(SaveFile sav)
{
InitializeComponent();
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
SAV = (Origin = sav).Clone();
WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
// Allow drag/drop on form and main tab control
AllowDrop = true;

View File

@ -303,13 +303,21 @@ public static void LoadAllForms(IEnumerable<Type> types, ReadOnlySpan<string> ba
continue;
var constructors = t.GetConstructors();
if (constructors.Length == 0)
{ System.Diagnostics.Debug.WriteLine($"No constructors: {t.Name}"); continue; }
var argCount = constructors[0].GetParameters().Length;
try
{
var form = (Form?)Activator.CreateInstance(t, new object[argCount]);
form?.Dispose();
if (constructors.Length == 0)
{
Activator.CreateInstance(t, true);
}
else
{
foreach (var ctor in constructors)
{
var parameters = ctor.GetParameters();
var args = new object[parameters.Length];
ctor.Invoke(args);
}
}
}
// This is a debug utility method, will always be logging. Shouldn't ever fail.
catch (TargetInvocationException)