From 3313ccf05173e05407f3bb8130cadeb15631b969 Mon Sep 17 00:00:00 2001
From: MaysWind
Date: Tue, 30 Dec 2025 00:28:20 +0800
Subject: [PATCH] add contributors to the about page
---
contributors.json | 59 +++++++++++++++++++++
src/global.d.ts | 6 +++
src/lib/contributors.ts | 3 ++
src/views/base/AboutPageBase.ts | 3 ++
src/views/desktop/AboutPage.vue | 91 +++++++++++++++++++++++++++++++--
src/views/mobile/AboutPage.vue | 86 +++++++++++++++++++++++++++++--
vite.config.ts | 2 +
7 files changed, 241 insertions(+), 9 deletions(-)
create mode 100644 contributors.json
create mode 100644 src/lib/contributors.ts
diff --git a/contributors.json b/contributors.json
new file mode 100644
index 00000000..8a5a3e15
--- /dev/null
+++ b/contributors.json
@@ -0,0 +1,59 @@
+{
+ "code": [
+ "jiangshengwu",
+ "vigdail",
+ "f97",
+ "Miguelonlonlon",
+ "seb26",
+ "nktlitvinenko",
+ "lvdou-bing"
+ ],
+ "translators": {
+ "de": [
+ "chrgm"
+ ],
+ "en": [],
+ "es": [
+ "Miguelonlonlon",
+ "abrugues"
+ ],
+ "fr": [
+ "brieucdlf"
+ ],
+ "it": [
+ "waron97"
+ ],
+ "ja": [
+ "tkymmm"
+ ],
+ "kn": [
+ "Darshanbm05"
+ ],
+ "ko": [
+ "overworks"
+ ],
+ "nl": [
+ "automagics"
+ ],
+ "pt-BR": [
+ "thecodergus"
+ ],
+ "ru": [
+ "artegoser"
+ ],
+ "th": [
+ "natthavat28"
+ ],
+ "tr": [
+ "aydnykn"
+ ],
+ "uk": [
+ "nktlitvinenko"
+ ],
+ "vi": [
+ "f97"
+ ],
+ "zh-Hans": [],
+ "zh-Hant": []
+ }
+}
diff --git a/src/global.d.ts b/src/global.d.ts
index 51c5cd34..68610a54 100644
--- a/src/global.d.ts
+++ b/src/global.d.ts
@@ -3,8 +3,14 @@ declare const __EZBOOKKEEPING_VERSION__: string;
declare const __EZBOOKKEEPING_BUILD_UNIX_TIME__: string;
declare const __EZBOOKKEEPING_BUILD_COMMIT_HASH__: string;
declare const __EZBOOKKEEPING_LICENSE__: string;
+declare const __EZBOOKKEEPING_CONTRIBUTORS__: ContributorInfo;
declare const __EZBOOKKEEPING_THIRD_PARTY_LICENSES__: LicenseInfo[];
+declare interface ContributorInfo {
+ code: string[];
+ translators: Record
- ezBookkeeping also contains additional third party software and illustration.
- All the third party software/illustration included or linked is redistributed under the terms and conditions of their original licenses.
+ ezBookkeeping's codebase and localization translation rely on contributions from the community. The following people have contributed to ezBookkeeping:
+
+ Code Contributors +
+| Contributor | +
|---|
| + + @{{ contributor }} + + | +
+ Translation Contributors +
+| Tag | +Language | +Contributors | +
|---|---|---|
| {{ languageTag }} | +{{ getLanguageInfo(languageTag)?.displayName }} | ++ + + @{{ contributor }} + + , + + / + | +
+ ezBookkeeping also contains additional third party software and illustration.
+ All the third party software / illustration included or linked is redistributed under the terms and conditions of their original licenses.
{{ license.name }}
{{ license.copyright }}
@@ -139,7 +196,7 @@ import {
mdiWebRefresh
} from '@mdi/js';
-const { tt } = useI18n();
+const { tt, getLanguageInfo } = useI18n();
const {
clientVersion,
clientVersionMatchServerVersion,
@@ -148,6 +205,7 @@ const {
isUserCustomExchangeRates,
mapProviderName,
mapProviderWebsite,
+ contributors,
licenseLines,
thirdPartyLicenses,
refreshBrowserCache,
@@ -156,3 +214,26 @@ const {
init();
+
+
diff --git a/src/views/mobile/AboutPage.vue b/src/views/mobile/AboutPage.vue
index 1b42ef6f..cfa69a04 100644
--- a/src/views/mobile/AboutPage.vue
+++ b/src/views/mobile/AboutPage.vue
@@ -49,10 +49,66 @@
- ezBookkeeping also contains additional third party software and illustration.
- All the third party software/illustration included or linked is redistributed under the terms and conditions of their original licenses.
+ ezBookkeeping's codebase and localization translation rely on contributions from the community. The following people have contributed to ezBookkeeping:
+
+ Code Contributors +
+| Contributor | +
|---|
|
+ |
+
+ Translation Contributors +
+| Tag | +Language | +Contributors | +
|---|---|---|
| {{ languageTag }} | +{{ getLanguageInfo(languageTag)?.displayName }} | +
+
+ |
+
+ ezBookkeeping also contains additional third party software and illustration.
+ All the third party software / illustration included or linked is redistributed under the terms and conditions of their original licenses.
{{ license.name }}
{{ license.copyright }}
@@ -81,7 +137,7 @@ import { useI18n } from '@/locales/helpers.ts';
import { useI18nUIComponents } from '@/lib/ui/mobile.ts';
import { useAboutPageBase } from '@/views/base/AboutPageBase.ts';
-const { tt } = useI18n();
+const { tt, getLanguageInfo } = useI18n();
const { showAlert, openExternalUrl } = useI18nUIComponents();
const {
clientVersion,
@@ -92,6 +148,7 @@ const {
isUserCustomExchangeRates,
mapProviderName,
mapProviderWebsite,
+ contributors,
licenseLines,
thirdPartyLicenses,
refreshBrowserCache,
@@ -128,4 +185,25 @@ init();
.license-content {
font-size: var(--ebk-license-content-font-size);
}
+
+.contributors-table {
+ border-collapse: collapse;
+
+ > thead > tr {
+ > th:not(:first-child) {
+ padding-inline-start: 10px;
+ }
+
+ > th:not(:last-child) {
+ padding-inline-end: 10px;
+ }
+ }
+
+ > thead > tr > th,
+ > tbody > tr > td {
+ padding: 4px 8px;
+ border: 1px solid var(--f7-list-item-border-color);
+ text-align: start;
+ }
+}
diff --git a/vite.config.ts b/vite.config.ts
index 6e2a1ca5..6bc980f9 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -9,6 +9,7 @@ import Checker from 'vite-plugin-checker';
import git from 'git-rev-sync';
import packageFile from './package.json';
+import contributorsFile from './contributors.json';
import thirdPartyLicenseFile from './third-party-dependencies.json';
const SRC_DIR = resolve(__dirname, './src');
@@ -75,6 +76,7 @@ export default defineConfig(() => {
__EZBOOKKEEPING_VERSION__: JSON.stringify(packageFile.version),
__EZBOOKKEEPING_BUILD_UNIX_TIME__: JSON.stringify(buildUnixTime),
__EZBOOKKEEPING_BUILD_COMMIT_HASH__: JSON.stringify(git.short()),
+ __EZBOOKKEEPING_CONTRIBUTORS__: JSON.stringify(contributorsFile),
__EZBOOKKEEPING_LICENSE__: JSON.stringify(licenseContent),
__EZBOOKKEEPING_THIRD_PARTY_LICENSES__: JSON.stringify(thirdPartyLicenseFile)
},