diff options
author | Jimmy Cai <jimmehcai@gmail.com> | 2020-11-06 13:49:30 +0300 |
---|---|---|
committer | Jimmy Cai <jimmehcai@gmail.com> | 2020-11-06 13:49:30 +0300 |
commit | c018f4967ab5896b1592fcf971287b8e01f61fdb (patch) | |
tree | a00e43b5e39cc732c538d985df8cf1a1b39ff131 /assets | |
parent | f5d45458fd55a4fdbff846f132d039518b07d3a3 (diff) |
feat(search): i18n support
Diffstat (limited to 'assets')
-rw-r--r-- | assets/ts/search.tsx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/assets/ts/search.tsx b/assets/ts/search.tsx index 9539caa..8e4eb6f 100644 --- a/assets/ts/search.tsx +++ b/assets/ts/search.tsx @@ -39,12 +39,14 @@ class Search { private input: HTMLInputElement; private list: HTMLDivElement; private resultTitle: HTMLHeadElement; + private resultTitleTemplate: string; - constructor({ form, input, list, resultTitle }) { + constructor({ form, input, list, resultTitle, resultTitleTemplate }) { this.form = form; this.input = input; this.list = list; this.resultTitle = resultTitle; + this.resultTitleTemplate = resultTitleTemplate; this.handleQueryString(); this.bindQueryStringChange(); @@ -136,7 +138,11 @@ class Search { const endTime = performance.now(); - this.resultTitle.innerText = `${results.length} pages (${((endTime - startTime) / 1000).toPrecision(1)} seconds)`; + this.resultTitle.innerText = this.generateResultTitle(results.length, ((endTime - startTime) / 1000).toPrecision(1)); + } + + private generateResultTitle(resultLen, time) { + return this.resultTitleTemplate.replace("#PAGES_COUNT", resultLen).replace("#TIME_SECONDS", time); } public async getData() { @@ -231,6 +237,12 @@ class Search { } } +declare global { + interface Window { + searchResultTitleTemplate: string; + } +} + window.addEventListener('load', () => { setTimeout(function () { const searchForm = document.querySelector('.search-form') as HTMLFormElement, @@ -242,7 +254,8 @@ window.addEventListener('load', () => { form: searchForm, input: searchInput, list: searchResultList, - resultTitle: searchResultTitle + resultTitle: searchResultTitle, + resultTitleTemplate: window.searchResultTitleTemplate }); }, 0); }) |