mirror of
https://github.com/LucasDower/ObjToSchematic.git
synced 2025-12-11 20:15:30 +01:00
Added missing translation keys for tooltips
This commit is contained in:
parent
2576d12278
commit
5efbbab234
20
loc/en_GB.ts
20
loc/en_GB.ts
@ -39,6 +39,7 @@ export const en_GB = {
|
|||||||
unsupported_image_type: 'Cannot read \'{{file_name}}\', unsupported file type \'{{file_type}}\'',
|
unsupported_image_type: 'Cannot read \'{{file_name}}\', unsupported file type \'{{file_type}}\'',
|
||||||
components: {
|
components: {
|
||||||
input: '3D Model (.obj, .glb)',
|
input: '3D Model (.obj, .glb)',
|
||||||
|
no_file_chosen: 'No file chosen',
|
||||||
rotation: 'Rotation',
|
rotation: 'Rotation',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -162,5 +163,24 @@ export const en_GB = {
|
|||||||
off: 'Off',
|
off: 'Off',
|
||||||
advanced_settings: 'Advanced settings'
|
advanced_settings: 'Advanced settings'
|
||||||
},
|
},
|
||||||
|
toolbar: {
|
||||||
|
view_mesh: 'View mesh',
|
||||||
|
view_voxel_mesh: 'View voxel mesh',
|
||||||
|
view_block_mesh: 'View block mesh',
|
||||||
|
toggle_grid: 'Toggle grid',
|
||||||
|
toggle_axes: 'Toggle axes',
|
||||||
|
toggle_night_vision: 'Toggle night vision',
|
||||||
|
toggle_slice_viewer: 'Toggle slice viewer',
|
||||||
|
decrement_slice: 'Decrement slice',
|
||||||
|
increment_slice: 'Increment slice',
|
||||||
|
zoom_in: 'Zoom in',
|
||||||
|
zoom_out: 'Zoom out',
|
||||||
|
reset_camera: 'Reset camera',
|
||||||
|
perspective_camera: 'Perspective camera',
|
||||||
|
orthographic_camera: 'Orthographic camera',
|
||||||
|
open_github_repo: 'Open GitHub repo',
|
||||||
|
open_github_issues: 'Open GitHub issues',
|
||||||
|
join_discord: 'Join Discord server',
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -11,7 +11,7 @@ export class AppConfig {
|
|||||||
public readonly RELEASE_MODE;
|
public readonly RELEASE_MODE;
|
||||||
public readonly MAJOR_VERSION = 0;
|
public readonly MAJOR_VERSION = 0;
|
||||||
public readonly MINOR_VERSION = 8;
|
public readonly MINOR_VERSION = 8;
|
||||||
public readonly HOTFIX_VERSION = 6;
|
public readonly HOTFIX_VERSION = 7;
|
||||||
public readonly VERSION_TYPE: 'd' | 'a' | 'r' = 'r'; // dev, alpha, or release build
|
public readonly VERSION_TYPE: 'd' | 'a' | 'r' = 'r'; // dev, alpha, or release build
|
||||||
public readonly MINECRAFT_VERSION = '1.19.4';
|
public readonly MINECRAFT_VERSION = '1.19.4';
|
||||||
|
|
||||||
|
|||||||
@ -23,6 +23,8 @@ export type Concat<K extends string, P extends string> =
|
|||||||
|
|
||||||
export type TLocalisedString = TBrand<string, 'loc'>;
|
export type TLocalisedString = TBrand<string, 'loc'>;
|
||||||
|
|
||||||
|
export type TLocalisedKey = DeepLeafKeys<TTranslationMap>;
|
||||||
|
|
||||||
export class Localiser {
|
export class Localiser {
|
||||||
/* Singleton */
|
/* Singleton */
|
||||||
private static _instance: Localiser;
|
private static _instance: Localiser;
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { ASSERT } from '../../util/error_util';
|
|||||||
import { UIUtil } from '../../util/ui_util';
|
import { UIUtil } from '../../util/ui_util';
|
||||||
import { ConfigComponent } from './config';
|
import { ConfigComponent } from './config';
|
||||||
import { AppIcons } from '../icons';
|
import { AppIcons } from '../icons';
|
||||||
|
import { LOC } from '../../localiser';
|
||||||
|
|
||||||
export class FileComponent extends ConfigComponent<File, HTMLDivElement> {
|
export class FileComponent extends ConfigComponent<File, HTMLDivElement> {
|
||||||
private _loadedFilePath: string | null;
|
private _loadedFilePath: string | null;
|
||||||
@ -17,7 +18,7 @@ export class FileComponent extends ConfigComponent<File, HTMLDivElement> {
|
|||||||
return `
|
return `
|
||||||
<div class="input-file struct-prop" id="${this._getId()}">
|
<div class="input-file struct-prop" id="${this._getId()}">
|
||||||
<input type="file" accept=".obj,,.glb" style="display: none;" id="${this._getId()}-input">
|
<input type="file" accept=".obj,,.glb" style="display: none;" id="${this._getId()}-input">
|
||||||
${this._loadedFilePath ?? 'No file chosen'}
|
${this._loadedFilePath ?? LOC('import.components.no_file_chosen')}
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -67,7 +68,7 @@ export class FileComponent extends ConfigComponent<File, HTMLDivElement> {
|
|||||||
const parsedPath = path.parse(this._loadedFilePath);
|
const parsedPath = path.parse(this._loadedFilePath);
|
||||||
this._getElement().innerHTML = parsedPath.name + parsedPath.ext;
|
this._getElement().innerHTML = parsedPath.name + parsedPath.ext;
|
||||||
} else {
|
} else {
|
||||||
this._getElement().innerHTML = '<i>No file chosen</i>';
|
this._getElement().innerHTML = `<i>${LOC('import.components.no_file_chosen')}</i>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIUtil.updateStyles(this._getElement(), {
|
UIUtil.updateStyles(this._getElement(), {
|
||||||
@ -76,4 +77,8 @@ export class FileComponent extends ConfigComponent<File, HTMLDivElement> {
|
|||||||
isActive: false,
|
isActive: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override refresh(): void {
|
||||||
|
this._getElement().innerHTML = `<i>${LOC('import.components.no_file_chosen')}</i>`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,19 +23,19 @@ export class HeaderComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
window.open('https://github.com/LucasDower/ObjToSchematic');
|
window.open('https://github.com/LucasDower/ObjToSchematic');
|
||||||
})
|
})
|
||||||
.setTooltip('Open GitHub repo');
|
.setTooltip('toolbar.open_github_repo');
|
||||||
|
|
||||||
this._bugButton = new ToolbarItemComponent({ id: 'bug', iconSVG: AppIcons.BUG })
|
this._bugButton = new ToolbarItemComponent({ id: 'bug', iconSVG: AppIcons.BUG })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
window.open('https://github.com/LucasDower/ObjToSchematic/issues');
|
window.open('https://github.com/LucasDower/ObjToSchematic/issues');
|
||||||
})
|
})
|
||||||
.setTooltip('Open GitHub issues');
|
.setTooltip('toolbar.open_github_issues');
|
||||||
|
|
||||||
this._discordButton = new ToolbarItemComponent({ id: 'disc', iconSVG: AppIcons.DISCORD })
|
this._discordButton = new ToolbarItemComponent({ id: 'disc', iconSVG: AppIcons.DISCORD })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
window.open('https://discord.gg/McS2VrBZPD');
|
window.open('https://discord.gg/McS2VrBZPD');
|
||||||
})
|
})
|
||||||
.setTooltip('Open Discord server');
|
.setTooltip('toolbar.join_discord');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header element shouldn't be
|
// Header element shouldn't be
|
||||||
@ -80,6 +80,10 @@ export class HeaderComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
|
|
||||||
public refresh() {
|
public refresh() {
|
||||||
UIUtil.getElementById('header-desc').innerText = LOC('description');
|
UIUtil.getElementById('header-desc').innerText = LOC('description');
|
||||||
|
|
||||||
|
this._githubButton.updateTranslation();
|
||||||
|
this._bugButton.updateTranslation();
|
||||||
|
this._discordButton.updateTranslation();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override registerEvents(): void {
|
public override registerEvents(): void {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { ASSERT } from '../../util/error_util';
|
import { ASSERT } from '../../util/error_util';
|
||||||
import { UIUtil } from '../../util/ui_util';
|
import { UIUtil } from '../../util/ui_util';
|
||||||
import { BaseComponent } from './base';
|
import { BaseComponent } from './base';
|
||||||
|
import { LOC, TLocalisedKey } from '../../localiser';
|
||||||
|
|
||||||
export type TToolbarBooleanProperty = 'enabled' | 'active';
|
export type TToolbarBooleanProperty = 'enabled' | 'active';
|
||||||
|
|
||||||
@ -12,10 +13,10 @@ export type TToolbarItemParams = {
|
|||||||
export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
||||||
private _iconSVG: SVGSVGElement;
|
private _iconSVG: SVGSVGElement;
|
||||||
private _label: string;
|
private _label: string;
|
||||||
private _tooltip: string | null;
|
|
||||||
private _onClick?: () => void;
|
private _onClick?: () => void;
|
||||||
private _isActive: boolean;
|
private _isActive: boolean;
|
||||||
private _grow: boolean;
|
private _grow: boolean;
|
||||||
|
private _tooltipLocKey: TLocalisedKey | null;
|
||||||
|
|
||||||
public constructor(params: TToolbarItemParams) {
|
public constructor(params: TToolbarItemParams) {
|
||||||
super();
|
super();
|
||||||
@ -34,7 +35,7 @@ export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._label = '';
|
this._label = '';
|
||||||
this._tooltip = null;
|
this._tooltipLocKey = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setGrow() {
|
public setGrow() {
|
||||||
@ -42,6 +43,12 @@ export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public updateTranslation() {
|
||||||
|
if (this._tooltipLocKey) {
|
||||||
|
UIUtil.getElementById(this._getId() + '-tooltip').innerHTML = LOC(this._tooltipLocKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public setActive(isActive: boolean) {
|
public setActive(isActive: boolean) {
|
||||||
this._isActive = isActive;
|
this._isActive = isActive;
|
||||||
this._updateStyles();
|
this._updateStyles();
|
||||||
@ -92,8 +99,8 @@ export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setTooltip(text: string) {
|
public setTooltip(text: TLocalisedKey) {
|
||||||
this._tooltip = text;
|
this._tooltipLocKey = text;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +112,7 @@ export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
} else {
|
} else {
|
||||||
if (this._tooltip === null) {
|
if (this._tooltipLocKey === null) {
|
||||||
return `
|
return `
|
||||||
<div class="struct-prop container-icon-button " style="aspect-ratio: 1;" id="${this._getId()}">
|
<div class="struct-prop container-icon-button " style="aspect-ratio: 1;" id="${this._getId()}">
|
||||||
${this._iconSVG.outerHTML} ${this._label}
|
${this._iconSVG.outerHTML} ${this._label}
|
||||||
@ -115,7 +122,7 @@ export class ToolbarItemComponent extends BaseComponent<HTMLDivElement> {
|
|||||||
return `
|
return `
|
||||||
<div class="struct-prop container-icon-button hover-text" style="aspect-ratio: 1;" id="${this._getId()}">
|
<div class="struct-prop container-icon-button hover-text" style="aspect-ratio: 1;" id="${this._getId()}">
|
||||||
${this._iconSVG.outerHTML} ${this._label}
|
${this._iconSVG.outerHTML} ${this._label}
|
||||||
<span class="tooltip-text left">${this._tooltip}</span>
|
<span class="tooltip-text left" id="${this._getId()}-tooltip">${LOC(this._tooltipLocKey)}</span>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -379,7 +379,7 @@ export class UI {
|
|||||||
.isEnabled(() => {
|
.isEnabled(() => {
|
||||||
return Renderer.Get.getModelsAvailable() >= MeshType.TriangleMesh;
|
return Renderer.Get.getModelsAvailable() >= MeshType.TriangleMesh;
|
||||||
})
|
})
|
||||||
.setTooltip('View mesh'),
|
.setTooltip('toolbar.view_mesh'),
|
||||||
'voxelMesh': new ToolbarItemComponent({ id: 'voxelMesh', iconSVG: AppIcons.VOXEL })
|
'voxelMesh': new ToolbarItemComponent({ id: 'voxelMesh', iconSVG: AppIcons.VOXEL })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
Renderer.Get.setModelToUse(MeshType.VoxelMesh);
|
Renderer.Get.setModelToUse(MeshType.VoxelMesh);
|
||||||
@ -390,7 +390,7 @@ export class UI {
|
|||||||
.isEnabled(() => {
|
.isEnabled(() => {
|
||||||
return Renderer.Get.getModelsAvailable() >= MeshType.VoxelMesh;
|
return Renderer.Get.getModelsAvailable() >= MeshType.VoxelMesh;
|
||||||
})
|
})
|
||||||
.setTooltip('View voxel mesh'),
|
.setTooltip('toolbar.view_voxel_mesh'),
|
||||||
'blockMesh': new ToolbarItemComponent({ id: 'blockMesh', iconSVG: AppIcons.BLOCK })
|
'blockMesh': new ToolbarItemComponent({ id: 'blockMesh', iconSVG: AppIcons.BLOCK })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
Renderer.Get.setModelToUse(MeshType.BlockMesh);
|
Renderer.Get.setModelToUse(MeshType.BlockMesh);
|
||||||
@ -401,7 +401,7 @@ export class UI {
|
|||||||
.isEnabled(() => {
|
.isEnabled(() => {
|
||||||
return Renderer.Get.getModelsAvailable() >= MeshType.BlockMesh;
|
return Renderer.Get.getModelsAvailable() >= MeshType.BlockMesh;
|
||||||
})
|
})
|
||||||
.setTooltip('View block mesh'),
|
.setTooltip('toolbar.view_block_mesh'),
|
||||||
},
|
},
|
||||||
componentOrder: ['mesh', 'voxelMesh', 'blockMesh'],
|
componentOrder: ['mesh', 'voxelMesh', 'blockMesh'],
|
||||||
},
|
},
|
||||||
@ -417,7 +417,7 @@ export class UI {
|
|||||||
.isEnabled(() => {
|
.isEnabled(() => {
|
||||||
return Renderer.Get.getActiveMeshType() !== MeshType.None;
|
return Renderer.Get.getActiveMeshType() !== MeshType.None;
|
||||||
})
|
})
|
||||||
.setTooltip('Toggle grid'),
|
.setTooltip('toolbar.toggle_grid'),
|
||||||
'axes': new ToolbarItemComponent({ id: 'axes', iconSVG: AppIcons.AXES })
|
'axes': new ToolbarItemComponent({ id: 'axes', iconSVG: AppIcons.AXES })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
Renderer.Get.toggleIsAxesEnabled();
|
Renderer.Get.toggleIsAxesEnabled();
|
||||||
@ -425,7 +425,7 @@ export class UI {
|
|||||||
.isActive(() => {
|
.isActive(() => {
|
||||||
return Renderer.Get.isAxesEnabled();
|
return Renderer.Get.isAxesEnabled();
|
||||||
})
|
})
|
||||||
.setTooltip('Toggle axes'),
|
.setTooltip('toolbar.toggle_axes'),
|
||||||
'night-vision': new ToolbarItemComponent({ id: 'night', iconSVG: AppIcons.BULB })
|
'night-vision': new ToolbarItemComponent({ id: 'night', iconSVG: AppIcons.BULB })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
Renderer.Get.toggleIsNightVisionEnabled();
|
Renderer.Get.toggleIsNightVisionEnabled();
|
||||||
@ -436,7 +436,7 @@ export class UI {
|
|||||||
.isEnabled(() => {
|
.isEnabled(() => {
|
||||||
return Renderer.Get.canToggleNightVision();
|
return Renderer.Get.canToggleNightVision();
|
||||||
})
|
})
|
||||||
.setTooltip('Toggle night vision'),
|
.setTooltip('toolbar.toggle_night_vision'),
|
||||||
},
|
},
|
||||||
componentOrder: ['grid', 'axes', 'night-vision'],
|
componentOrder: ['grid', 'axes', 'night-vision'],
|
||||||
},
|
},
|
||||||
@ -452,7 +452,7 @@ export class UI {
|
|||||||
.isActive(() => {
|
.isActive(() => {
|
||||||
return Renderer.Get.isSliceViewerEnabled();
|
return Renderer.Get.isSliceViewerEnabled();
|
||||||
})
|
})
|
||||||
.setTooltip('Toggle slice viewer'),
|
.setTooltip('toolbar.toggle_slice_viewer'),
|
||||||
'plus': new ToolbarItemComponent({ id: 'plus', iconSVG: AppIcons.PLUS })
|
'plus': new ToolbarItemComponent({ id: 'plus', iconSVG: AppIcons.PLUS })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
Renderer.Get.incrementSliceHeight();
|
Renderer.Get.incrementSliceHeight();
|
||||||
@ -461,7 +461,7 @@ export class UI {
|
|||||||
return Renderer.Get.isSliceViewerEnabled() &&
|
return Renderer.Get.isSliceViewerEnabled() &&
|
||||||
Renderer.Get.canIncrementSliceHeight();
|
Renderer.Get.canIncrementSliceHeight();
|
||||||
})
|
})
|
||||||
.setTooltip('Decrement slice'),
|
.setTooltip('toolbar.decrement_slice'),
|
||||||
'minus': new ToolbarItemComponent({ id: 'minus', iconSVG: AppIcons.MINUS })
|
'minus': new ToolbarItemComponent({ id: 'minus', iconSVG: AppIcons.MINUS })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
Renderer.Get.decrementSliceHeight();
|
Renderer.Get.decrementSliceHeight();
|
||||||
@ -470,7 +470,7 @@ export class UI {
|
|||||||
return Renderer.Get.isSliceViewerEnabled() &&
|
return Renderer.Get.isSliceViewerEnabled() &&
|
||||||
Renderer.Get.canDecrementSliceHeight();
|
Renderer.Get.canDecrementSliceHeight();
|
||||||
})
|
})
|
||||||
.setTooltip('Increment slice'),
|
.setTooltip('toolbar.increment_slice'),
|
||||||
},
|
},
|
||||||
componentOrder: ['slice', 'plus', 'minus'],
|
componentOrder: ['slice', 'plus', 'minus'],
|
||||||
},
|
},
|
||||||
@ -486,17 +486,17 @@ export class UI {
|
|||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
ArcballCamera.Get.onZoomOut();
|
ArcballCamera.Get.onZoomOut();
|
||||||
})
|
})
|
||||||
.setTooltip('Zoom out'),
|
.setTooltip('toolbar.zoom_out'),
|
||||||
'zoomIn': new ToolbarItemComponent({ id: 'zin', iconSVG: AppIcons.PLUS })
|
'zoomIn': new ToolbarItemComponent({ id: 'zin', iconSVG: AppIcons.PLUS })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
ArcballCamera.Get.onZoomIn();
|
ArcballCamera.Get.onZoomIn();
|
||||||
})
|
})
|
||||||
.setTooltip('Zoom in'),
|
.setTooltip('toolbar.zoom_in'),
|
||||||
'reset': new ToolbarItemComponent({ id: 'reset', iconSVG: AppIcons.CENTRE })
|
'reset': new ToolbarItemComponent({ id: 'reset', iconSVG: AppIcons.CENTRE })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
ArcballCamera.Get.reset();
|
ArcballCamera.Get.reset();
|
||||||
})
|
})
|
||||||
.setTooltip('Reset camera'),
|
.setTooltip('toolbar.reset_camera'),
|
||||||
},
|
},
|
||||||
componentOrder: ['zoomOut', 'zoomIn', 'reset'],
|
componentOrder: ['zoomOut', 'zoomIn', 'reset'],
|
||||||
},
|
},
|
||||||
@ -509,7 +509,7 @@ export class UI {
|
|||||||
.isActive(() => {
|
.isActive(() => {
|
||||||
return ArcballCamera.Get.isPerspective();
|
return ArcballCamera.Get.isPerspective();
|
||||||
})
|
})
|
||||||
.setTooltip('Perspective camera'),
|
.setTooltip('toolbar.perspective_camera'),
|
||||||
'orthographic': new ToolbarItemComponent({ id: 'orth', iconSVG: AppIcons.ORTHOGRAPHIC })
|
'orthographic': new ToolbarItemComponent({ id: 'orth', iconSVG: AppIcons.ORTHOGRAPHIC })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
ArcballCamera.Get.setCameraMode('orthographic');
|
ArcballCamera.Get.setCameraMode('orthographic');
|
||||||
@ -517,7 +517,7 @@ export class UI {
|
|||||||
.isActive(() => {
|
.isActive(() => {
|
||||||
return ArcballCamera.Get.isOrthographic();
|
return ArcballCamera.Get.isOrthographic();
|
||||||
})
|
})
|
||||||
.setTooltip('Orthographic camera'),
|
.setTooltip('toolbar.orthographic_camera'),
|
||||||
},
|
},
|
||||||
componentOrder: ['perspective', 'orthographic'],
|
componentOrder: ['perspective', 'orthographic'],
|
||||||
},
|
},
|
||||||
@ -679,6 +679,20 @@ export class UI {
|
|||||||
private _handleLanguageChange() {
|
private _handleLanguageChange() {
|
||||||
HeaderComponent.Get.refresh();
|
HeaderComponent.Get.refresh();
|
||||||
|
|
||||||
|
|
||||||
|
Object.values(this._toolbarLeft.groups).forEach((group) => {
|
||||||
|
Object.values(group.components).forEach((comp) => {
|
||||||
|
comp.updateTranslation();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.values(this._toolbarRight.groups).forEach((group) => {
|
||||||
|
Object.values(group.components).forEach((comp) => {
|
||||||
|
comp.updateTranslation();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
for (let i = 0; i < EAction.MAX; ++i) {
|
for (let i = 0; i < EAction.MAX; ++i) {
|
||||||
const group = this._getGroup(i);
|
const group = this._getGroup(i);
|
||||||
const header = UIUtil.getElementById(`component_header_${group.id}`);
|
const header = UIUtil.getElementById(`component_header_${group.id}`);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user