From 58e6a41142fdad273aea8eeb87f4f07cf02274cd Mon Sep 17 00:00:00 2001 From: Dean Campbell Date: Mon, 19 Oct 2020 13:38:49 -0700 Subject: [PATCH] Add 'Released At' column for addon pages --- .../src/app/addon-providers/curse-addon-provider.ts | 1 + .../src/app/addon-providers/tukui-addon-provider.ts | 5 +++-- .../addon-providers/wow-interface-addon-provider.ts | 3 ++- wowup-electron/src/app/entities/addon.ts | 1 + wowup-electron/src/app/models/tukui/tukui-addon.ts | 2 +- .../src/app/models/wowup/addon-search-result.ts | 1 + .../app/pages/get-addons/get-addons.component.html | 11 ++++++++++- .../app/pages/get-addons/get-addons.component.ts | 10 +++++++--- wowup-electron/src/app/pages/home/home.module.ts | 2 ++ .../app/pages/my-addons/my-addons.component.html | 9 +++++++++ .../src/app/pages/my-addons/my-addons.component.ts | 6 ++++++ .../get-addon-list-item-file-prop.pipe.spec.ts | 8 ++++++++ .../app/pipes/get-addon-list-item-file-prop.pipe.ts | 13 +++++++++++++ .../src/app/services/addons/addon.service.ts | 7 ++++++- wowup-electron/src/assets/i18n/de.json | 6 ++++-- wowup-electron/src/assets/i18n/en.json | 6 ++++-- wowup-electron/src/assets/i18n/es.json | 6 ++++-- wowup-electron/src/assets/i18n/fr.json | 6 ++++-- wowup-electron/src/assets/i18n/it.json | 6 ++++-- wowup-electron/src/assets/i18n/pt.json | 6 ++++-- wowup-electron/src/assets/i18n/ru.json | 6 ++++-- wowup-electron/src/assets/i18n/zh.json | 6 ++++-- 22 files changed, 102 insertions(+), 25 deletions(-) create mode 100644 wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.spec.ts create mode 100644 wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.ts diff --git a/wowup-electron/src/app/addon-providers/curse-addon-provider.ts b/wowup-electron/src/app/addon-providers/curse-addon-provider.ts index 8ee7296a..a03addac 100644 --- a/wowup-electron/src/app/addon-providers/curse-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/curse-addon-provider.ts @@ -609,6 +609,7 @@ export class CurseAddonProvider implements AddonProvider { screenshotUrls: this.getScreenshotUrls(scanResult.searchResult), downloadCount: scanResult.searchResult.downloadCount, summary: scanResult.searchResult.summary, + releasedAt: new Date(latestVersion.fileDate), }; } } diff --git a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts index a752a0cd..9a84567b 100644 --- a/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/tukui-addon-provider.ts @@ -176,6 +176,7 @@ export class TukUiAddonProvider implements AddonProvider { summary: tukUiAddon.small_desc, downloadCount: Number.parseFloat(tukUiAddon.downloads), screenshotUrls: [tukUiAddon.screenshot_url], + releasedAt: new Date(`${tukUiAddon.lastupdate} UTC`), }; } } @@ -195,14 +196,14 @@ export class TukUiAddonProvider implements AddonProvider { if (!addon) { return undefined; } - + var latestFile: AddonSearchResultFile = { channelType: AddonChannelType.Stable, folders: folderName ? [folderName] : [], downloadUrl: addon.url, gameVersion: addon.patch, version: addon.version, - releaseDate: new Date(addon.lastUpdate), + releaseDate: new Date(`${addon.lastupdate} UTC`), }; return { diff --git a/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts b/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts index 441b4b8b..22a669a1 100644 --- a/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts +++ b/wowup-electron/src/app/addon-providers/wow-interface-addon-provider.ts @@ -199,6 +199,7 @@ export class WowInterfaceAddonProvider implements AddonProvider { summary: response.description, screenshotUrls: response.images?.map((img) => img.imageUrl), downloadCount: response.downloads, + releasedAt: new Date(response.lastUpdate), }; } @@ -213,7 +214,7 @@ export class WowInterfaceAddonProvider implements AddonProvider { downloadUrl: response.downloadUri, folders: folderName ? [folderName] : [], gameVersion: "", - releaseDate: new Date(), + releaseDate: new Date(response.lastUpdate), }; return { diff --git a/wowup-electron/src/app/entities/addon.ts b/wowup-electron/src/app/entities/addon.ts index 8e45648f..ce3c6e10 100644 --- a/wowup-electron/src/app/entities/addon.ts +++ b/wowup-electron/src/app/entities/addon.ts @@ -28,4 +28,5 @@ export interface Addon { downloadCount?: number; summary?: string; screenshotUrls?: string[]; + releasedAt?: Date; } \ No newline at end of file diff --git a/wowup-electron/src/app/models/tukui/tukui-addon.ts b/wowup-electron/src/app/models/tukui/tukui-addon.ts index f2bacc98..ba359b89 100644 --- a/wowup-electron/src/app/models/tukui/tukui-addon.ts +++ b/wowup-electron/src/app/models/tukui/tukui-addon.ts @@ -8,7 +8,7 @@ export interface TukUiAddon { url: string; category: string; downloads: string; - lastUpdate: string; + lastupdate: string; patch: string; web_url: string; last_download: string; diff --git a/wowup-electron/src/app/models/wowup/addon-search-result.ts b/wowup-electron/src/app/models/wowup/addon-search-result.ts index 8c46b0d8..73df894d 100644 --- a/wowup-electron/src/app/models/wowup/addon-search-result.ts +++ b/wowup-electron/src/app/models/wowup/addon-search-result.ts @@ -12,4 +12,5 @@ export interface AddonSearchResult { screenshotUrls?: string[]; summary?: string; thumbnailUrl: string; + releasedAt?: Date; } diff --git a/wowup-electron/src/app/pages/get-addons/get-addons.component.html b/wowup-electron/src/app/pages/get-addons/get-addons.component.html index 3a432240..b7ff4c9c 100644 --- a/wowup-electron/src/app/pages/get-addons/get-addons.component.html +++ b/wowup-electron/src/app/pages/get-addons/get-addons.component.html @@ -58,7 +58,16 @@ {{element.downloadCount | downloadCount}} - + + + + {{'PAGES.GET_ADDONS.TABLE.RELEASED_AT_COLUMN_HEADER' | translate}} + + + {{element | getAddonListItemFileProp:'releaseDate':defaultAddonChannel | date:'short'}} + + + {{'PAGES.GET_ADDONS.TABLE.PROVIDER_COLUMN_HEADER' | translate}} diff --git a/wowup-electron/src/app/pages/get-addons/get-addons.component.ts b/wowup-electron/src/app/pages/get-addons/get-addons.component.ts index ee4efbee..46ecc8ed 100644 --- a/wowup-electron/src/app/pages/get-addons/get-addons.component.ts +++ b/wowup-electron/src/app/pages/get-addons/get-addons.component.ts @@ -16,7 +16,6 @@ import { MatSort } from "@angular/material/sort"; import * as _ from "lodash"; import { GetAddonListItem } from "app/business-objects/get-addon-list-item"; import { AddonSearchResult } from "app/models/wowup/addon-search-result"; -import { AddonChannelType } from "app/models/wowup/addon-channel-type"; import { WowUpService } from "app/services/wowup/wowup.service"; @Component({ @@ -35,13 +34,13 @@ export class GetAddonsComponent implements OnInit, OnDestroy { private readonly _destroyed$ = new Subject(); private subscriptions: Subscription[] = []; private isSelectedTab: boolean = false; - private channelTypeKey: string = ""; public dataSource = new MatTableDataSource([]); columns: ColumnState[] = [ { name: "name", display: "Addon", visible: true }, { name: "downloadCount", display: "Downloads", visible: true }, + { name: "releasedAt", display: "Released At", visible: true }, { name: "author", display: "Author", visible: true }, { name: "providerName", display: "Provider", visible: true }, { name: "status", display: "Status", visible: true }, @@ -104,7 +103,12 @@ export class GetAddonsComponent implements OnInit, OnDestroy { const displayAddonSubscription = this._displayAddonsSrc.subscribe( (items: GetAddonListItem[]) => { this.dataSource.data = items; - this.dataSource.sortingDataAccessor = _.get; + this.dataSource.sortingDataAccessor = (item: GetAddonListItem, prop: string) => { + if (prop === 'releasedAt') { + return item.getLatestFile(this.defaultAddonChannel)?.releaseDate; + } + return _.get(item, prop); + } this.dataSource.sort = this.sort; } ); diff --git a/wowup-electron/src/app/pages/home/home.module.ts b/wowup-electron/src/app/pages/home/home.module.ts index 50202b5b..23e68d28 100644 --- a/wowup-electron/src/app/pages/home/home.module.ts +++ b/wowup-electron/src/app/pages/home/home.module.ts @@ -15,6 +15,7 @@ import { MyAddonsAddonCellComponent } from "app/components/my-addons-addon-cell/ import { ProgressSpinnerComponent } from "app/components/progress-spinner/progress-spinner.component"; import { DownloadCountPipe } from "app/pipes/download-count.pipe"; import { InterfaceFormatPipe } from "app/pipes/interface-format.pipe"; +import { GetAddonListItemFilePropPipe } from "app/pipes/get-addon-list-item-file-prop.pipe"; import { TelemetryDialogComponent } from "app/components/telemetry-dialog/telemetry-dialog.component"; import { ConfirmDialogComponent } from "app/components/confirm-dialog/confirm-dialog.component"; import { AlertDialogComponent } from "app/components/alert-dialog/alert-dialog.component"; @@ -40,6 +41,7 @@ import { MyAddonStatusColumnComponent } from "app/components/my-addon-status-col PotentialAddonTableColumnComponent, DownloadCountPipe, InterfaceFormatPipe, + GetAddonListItemFilePropPipe, TelemetryDialogComponent, ConfirmDialogComponent, AlertDialogComponent, diff --git a/wowup-electron/src/app/pages/my-addons/my-addons.component.html b/wowup-electron/src/app/pages/my-addons/my-addons.component.html index 5c288378..fdc97401 100644 --- a/wowup-electron/src/app/pages/my-addons/my-addons.component.html +++ b/wowup-electron/src/app/pages/my-addons/my-addons.component.html @@ -78,6 +78,15 @@ + + + {{'PAGES.MY_ADDONS.TABLE.RELEASED_AT_COLUMN_HEADER' | translate}} + + + {{element.addon.releasedAt | date:'short'}} + + + {{'PAGES.MY_ADDONS.TABLE.GAME_VERSION_COLUMN_HEADER' | translate}} diff --git a/wowup-electron/src/app/pages/my-addons/my-addons.component.ts b/wowup-electron/src/app/pages/my-addons/my-addons.component.ts index 21119a5f..3f7ce5f6 100644 --- a/wowup-electron/src/app/pages/my-addons/my-addons.component.ts +++ b/wowup-electron/src/app/pages/my-addons/my-addons.component.ts @@ -73,6 +73,12 @@ export class MyAddonsComponent implements OnInit, OnDestroy { visible: true, allowToggle: true, }, + { + name: "addon.releasedAt", + display: "Released At", + visible: true, + allowToggle: true, + }, { name: "addon.gameVersion", display: "Game Version", diff --git a/wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.spec.ts b/wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.spec.ts new file mode 100644 index 00000000..fbc38b38 --- /dev/null +++ b/wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.spec.ts @@ -0,0 +1,8 @@ +import { GetAddonListItemFilePropPipe } from './get-addon-list-item-file-prop.pipe'; + +describe('GetAddonListItemFilePropPipe', () => { + it('create an instance', () => { + const pipe = new GetAddonListItemFilePropPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.ts b/wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.ts new file mode 100644 index 00000000..63565a39 --- /dev/null +++ b/wowup-electron/src/app/pipes/get-addon-list-item-file-prop.pipe.ts @@ -0,0 +1,13 @@ +import { Pipe, PipeTransform } from "@angular/core"; +import { GetAddonListItem } from "../business-objects/get-addon-list-item"; +import { AddonChannelType } from "../models/wowup/addon-channel-type"; + +@Pipe({ + name: "getAddonListItemFileProp", +}) +export class GetAddonListItemFilePropPipe implements PipeTransform { + transform(item: GetAddonListItem, prop: string, channel: AddonChannelType): any { + const file = item.getLatestFile(channel); + return file && file.hasOwnProperty(prop) ? file[prop] : ''; + } +} diff --git a/wowup-electron/src/app/services/addons/addon.service.ts b/wowup-electron/src/app/services/addons/addon.service.ts index 219fd9f1..2d6e56e8 100644 --- a/wowup-electron/src/app/services/addons/addon.service.ts +++ b/wowup-electron/src/app/services/addons/addon.service.ts @@ -495,12 +495,16 @@ export class AddonService { if ( !result || !latestFile || - latestFile.version === addon.latestVersion + ( + latestFile.version === addon.latestVersion && + latestFile.releaseDate === addon.releasedAt + ) ) { continue; } addon.latestVersion = latestFile.version; + addon.releasedAt = latestFile.releaseDate; addon.downloadUrl = latestFile.downloadUrl; addon.name = result.name; addon.author = result.author; @@ -687,6 +691,7 @@ export class AddonService { channelType: this._wowUpService.getDefaultAddonChannel(clientType), isIgnored: false, autoUpdateEnabled: this._wowUpService.getDefaultAutoUpdate(clientType), + releasedAt: latestFile.releaseDate, }; } } diff --git a/wowup-electron/src/assets/i18n/de.json b/wowup-electron/src/assets/i18n/de.json index facce1bb..3a3e60d9 100644 --- a/wowup-electron/src/assets/i18n/de.json +++ b/wowup-electron/src/assets/i18n/de.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Autor", "PROVIDER_COLUMN_HEADER": "Anbieter", "STATUS_COLUMN_HEADER": "Status", - "DOWNLOAD_COUNT_COLUMN_HEADER": "TEXT_ELEMENT" + "DOWNLOAD_COUNT_COLUMN_HEADER": "DOWNLOAD_COUNT_COLUMN_HEADER", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -43,7 +44,8 @@ "GAME_VERSION_COLUMN_HEADER": "Spielversion", "LATEST_VERSION_COLUMN_HEADER": "Neueste Version", "PROVIDER_COLUMN_HEADER": "Anbieter", - "STATUS_COLUMN_HEADER": "Status" + "STATUS_COLUMN_HEADER": "Status", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Ignorieren", diff --git a/wowup-electron/src/assets/i18n/en.json b/wowup-electron/src/assets/i18n/en.json index a0633739..a1acc3f5 100644 --- a/wowup-electron/src/assets/i18n/en.json +++ b/wowup-electron/src/assets/i18n/en.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Author", "PROVIDER_COLUMN_HEADER": "Provider", "STATUS_COLUMN_HEADER": "Status", - "DOWNLOAD_COUNT_COLUMN_HEADER": "Downloads" + "DOWNLOAD_COUNT_COLUMN_HEADER": "Downloads", + "RELEASED_AT_COLUMN_HEADER": "Released At" } }, "HOME": { @@ -44,7 +45,8 @@ "GAME_VERSION_COLUMN_HEADER": "Game Version", "LATEST_VERSION_COLUMN_HEADER": "Latest Version", "PROVIDER_COLUMN_HEADER": "Provider", - "STATUS_COLUMN_HEADER": "Status" + "STATUS_COLUMN_HEADER": "Status", + "RELEASED_AT_COLUMN_HEADER": "Released At" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Ignore", diff --git a/wowup-electron/src/assets/i18n/es.json b/wowup-electron/src/assets/i18n/es.json index 9b8387e3..7f28e7b5 100644 --- a/wowup-electron/src/assets/i18n/es.json +++ b/wowup-electron/src/assets/i18n/es.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Autor", "PROVIDER_COLUMN_HEADER": "Proveedor", "STATUS_COLUMN_HEADER": "Estado", - "DOWNLOAD_COUNT_COLUMN_HEADER": "TEXT_ELEMENT" + "DOWNLOAD_COUNT_COLUMN_HEADER": "DOWNLOAD_COUNT_COLUMN_HEADER", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -43,7 +44,8 @@ "GAME_VERSION_COLUMN_HEADER": "Versión del juego", "LATEST_VERSION_COLUMN_HEADER": "Última Versión", "PROVIDER_COLUMN_HEADER": "Proveedor", - "STATUS_COLUMN_HEADER": "Situación" + "STATUS_COLUMN_HEADER": "Situación", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Ignorar", diff --git a/wowup-electron/src/assets/i18n/fr.json b/wowup-electron/src/assets/i18n/fr.json index 804747bd..4c71c8e2 100644 --- a/wowup-electron/src/assets/i18n/fr.json +++ b/wowup-electron/src/assets/i18n/fr.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Auteur", "PROVIDER_COLUMN_HEADER": "Fournisseur", "STATUS_COLUMN_HEADER": "Statut", - "DOWNLOAD_COUNT_COLUMN_HEADER": "TEXT_ELEMENT" + "DOWNLOAD_COUNT_COLUMN_HEADER": "DOWNLOAD_COUNT_COLUMN_HEADER", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -43,7 +44,8 @@ "GAME_VERSION_COLUMN_HEADER": "Version du jeu", "LATEST_VERSION_COLUMN_HEADER": "Dernière version", "PROVIDER_COLUMN_HEADER": "Fournisseur", - "STATUS_COLUMN_HEADER": "Statut" + "STATUS_COLUMN_HEADER": "Statut", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Ignorer", diff --git a/wowup-electron/src/assets/i18n/it.json b/wowup-electron/src/assets/i18n/it.json index c6da296b..36afa649 100644 --- a/wowup-electron/src/assets/i18n/it.json +++ b/wowup-electron/src/assets/i18n/it.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Autore", "PROVIDER_COLUMN_HEADER": "Provveditore", "STATUS_COLUMN_HEADER": "Stato", - "DOWNLOAD_COUNT_COLUMN_HEADER": "TEXT_ELEMENT" + "DOWNLOAD_COUNT_COLUMN_HEADER": "DOWNLOAD_COUNT_COLUMN_HEADER", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -43,7 +44,8 @@ "GAME_VERSION_COLUMN_HEADER": "Versione Del Gioco", "LATEST_VERSION_COLUMN_HEADER": "Ultima Versione", "PROVIDER_COLUMN_HEADER": "Provveditore", - "STATUS_COLUMN_HEADER": "Stato" + "STATUS_COLUMN_HEADER": "Stato", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Ignora", diff --git a/wowup-electron/src/assets/i18n/pt.json b/wowup-electron/src/assets/i18n/pt.json index 99433711..689b5ce1 100644 --- a/wowup-electron/src/assets/i18n/pt.json +++ b/wowup-electron/src/assets/i18n/pt.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Autor", "PROVIDER_COLUMN_HEADER": "Provedor", "STATUS_COLUMN_HEADER": "Estado", - "DOWNLOAD_COUNT_COLUMN_HEADER": "TEXT_ELEMENT" + "DOWNLOAD_COUNT_COLUMN_HEADER": "DOWNLOAD_COUNT_COLUMN_HEADER", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -43,7 +44,8 @@ "GAME_VERSION_COLUMN_HEADER": "Versão do Jogo", "LATEST_VERSION_COLUMN_HEADER": "Ultima versão", "PROVIDER_COLUMN_HEADER": "Provedor", - "STATUS_COLUMN_HEADER": "Estado" + "STATUS_COLUMN_HEADER": "Estado", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Ignorar", diff --git a/wowup-electron/src/assets/i18n/ru.json b/wowup-electron/src/assets/i18n/ru.json index 30d6208f..6189bbbc 100644 --- a/wowup-electron/src/assets/i18n/ru.json +++ b/wowup-electron/src/assets/i18n/ru.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "Автор", "PROVIDER_COLUMN_HEADER": "Источник", "STATUS_COLUMN_HEADER": "Статус", - "DOWNLOAD_COUNT_COLUMN_HEADER": "Кол-во загрузок" + "DOWNLOAD_COUNT_COLUMN_HEADER": "Кол-во загрузок", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -44,7 +45,8 @@ "GAME_VERSION_COLUMN_HEADER": "Версия игры", "LATEST_VERSION_COLUMN_HEADER": "Последняя версия", "PROVIDER_COLUMN_HEADER": "Источник", - "STATUS_COLUMN_HEADER": "Статус" + "STATUS_COLUMN_HEADER": "Статус", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "Пропускать", diff --git a/wowup-electron/src/assets/i18n/zh.json b/wowup-electron/src/assets/i18n/zh.json index 47b261f5..21f29d43 100644 --- a/wowup-electron/src/assets/i18n/zh.json +++ b/wowup-electron/src/assets/i18n/zh.json @@ -15,7 +15,8 @@ "AUTHOR_COLUMN_HEADER": "作者", "PROVIDER_COLUMN_HEADER": "提供商", "STATUS_COLUMN_HEADER": "状态", - "DOWNLOAD_COUNT_COLUMN_HEADER": "TEXT_ELEMENT" + "DOWNLOAD_COUNT_COLUMN_HEADER": "DOWNLOAD_COUNT_COLUMN_HEADER", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" } }, "HOME": { @@ -43,7 +44,8 @@ "GAME_VERSION_COLUMN_HEADER": "游戏版本", "LATEST_VERSION_COLUMN_HEADER": "最新版本", "PROVIDER_COLUMN_HEADER": "提供商", - "STATUS_COLUMN_HEADER": "状态" + "STATUS_COLUMN_HEADER": "状态", + "RELEASED_AT_COLUMN_HEADER": "RELEASED_AT_COLUMN_HEADER" }, "ADDON_CONTEXT_MENU": { "IGNORE_ADDON_BUTTON": "忽略",