Fix: Babele-Registrierung in Hooks.once('babele.init', ...) verschoben (Kernursache fuer 'Items werden nicht uebersetzt')
Laut Babele 2.8+ Developer Migration Guide muessen register()/
registerConverters() vor dem Aufbau von Babeles eigener Runtime-Session
erfolgen, ueber einen dedizierten Hook 'babele.init' - nicht in Foundrys
allgemeinem 'init'-Hook. Registrierungen, die zu spaet erfolgen, werden
seit Babele 2.8+ still verworfen ('late calls are rejected'), sobald die
Runtime-Session installiert ist.
Das erklaert das beobachtete Verhalten vollstaendig: Babele las unsere
Uebersetzungsdateien zwar erfolgreich ein (Konsole zeigte 'successfully
loaded'), aber ohne erfolgreiche Registrierung blieb inspectMapping()
fuer betroffene Packs leer (layers: [], effective.mapping: {}), und
isTranslated()/translate() lieferten false/{} zurueck - obwohl die
Match-Daten (id/name) nachweislich korrekt waren. Journals funktionierten
vermutlich ueber eingebaute Babele-Standardmappings, die keine eigene
Registrierung benoetigen.
Fix: game.babele.register(...) und game.babele.registerConverters(...)
laufen jetzt in einem eigenen Hooks.once('babele.init', ...) statt im
bisherigen Hooks.once('init', ...). Ausserdem den fehlerhaften Typ-Check
'game.babele !== "undefined"' (String-Vergleich statt typeof) korrigiert.
Version auf 8.6.15 angehoben.
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@
|
||||
}
|
||||
],
|
||||
"url": "https://gitea.palmenalzer.de/alzer/wfrp-4e-de",
|
||||
"version": "8.6.14",
|
||||
"version": "8.6.15",
|
||||
"esmodules": [
|
||||
"modules/babele-register.js",
|
||||
"modules/addon-register.js",
|
||||
|
||||
@@ -132,9 +132,19 @@ Hooks.once('init', () => {
|
||||
console.log("WFRP4E-DE | Loading Babele translation module ...");
|
||||
loadScripts();
|
||||
|
||||
/*---------------------------------------------------------------------*/
|
||||
// Converters area
|
||||
if (game.babele !== 'undefined') {
|
||||
});
|
||||
|
||||
/************************************************************************************/
|
||||
// Babele registration must happen in Babele's own "babele.init" hook (fires before
|
||||
// Babele builds its runtime session/mapping layers). Registering in Foundry's
|
||||
// "init" hook is too late for Babele 2.8+: once the runtime session is installed,
|
||||
// late register()/registerConverters() calls are silently rejected, leaving the
|
||||
// pack "loaded" (JSON parsed) but with no effective mapping applied - which is
|
||||
// exactly the "everything stays English except journals" symptom.
|
||||
// See: https://gitlab.com/riccisi/foundryvtt-babele/-/raw/master/DEVELOPER_MIGRATION_2_8_0.md
|
||||
Hooks.once('babele.init', () => {
|
||||
|
||||
if (typeof game.babele !== 'undefined') {
|
||||
|
||||
game.babele.register({
|
||||
module: 'wh4-de-translation',
|
||||
|
||||
Reference in New Issue
Block a user