add contributors to the about page
This commit is contained in:
@@ -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": []
|
||||
}
|
||||
}
|
||||
Vendored
+6
@@ -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<string, string[]>;
|
||||
}
|
||||
|
||||
declare interface LicenseInfo {
|
||||
name: string;
|
||||
copyright?: string;
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export function getContributors(): ContributorInfo {
|
||||
return __EZBOOKKEEPING_CONTRIBUTORS__ || {};
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import type { LatestExchangeRateResponse } from '@/models/exchange_rate.ts';
|
||||
import { parseDateTimeFromUnixTime } from '@/lib/datetime.ts';
|
||||
import { getMapProvider } from '@/lib/server_settings.ts';
|
||||
import { getMapWebsite } from '@/lib/map/index.ts';
|
||||
import { getContributors } from '@/lib/contributors.ts';
|
||||
import { getLicense, getThirdPartyLicenses } from '@/lib/licenses.ts';
|
||||
import { formatDisplayVersion, getClientDisplayVersion, getClientBuildTime } from '@/lib/version.ts';
|
||||
import { clearBrowserCaches } from '@/lib/ui/common.ts';
|
||||
@@ -55,6 +56,7 @@ export function useAboutPageBase() {
|
||||
});
|
||||
const mapProviderWebsite = computed<string>(() => getMapWebsite());
|
||||
|
||||
const contributors = computed<ContributorInfo>(() => getContributors());
|
||||
const licenseLines = computed<string[]>(() => getLicense().replace(/\r/g, '').split('\n'));
|
||||
const thirdPartyLicenses = computed<LicenseInfo[]>(() => getThirdPartyLicenses());
|
||||
|
||||
@@ -83,6 +85,7 @@ export function useAboutPageBase() {
|
||||
isUserCustomExchangeRates,
|
||||
mapProviderName,
|
||||
mapProviderWebsite,
|
||||
contributors,
|
||||
licenseLines,
|
||||
thirdPartyLicenses,
|
||||
// functions
|
||||
|
||||
@@ -110,12 +110,69 @@
|
||||
{{ line }}
|
||||
</span>
|
||||
</p>
|
||||
<v-divider/><br/>
|
||||
<v-divider/>
|
||||
<br/>
|
||||
<p>
|
||||
<span>ezBookkeeping also contains additional third party software and illustration.</span><br/>
|
||||
<span>All the third party software/illustration included or linked is redistributed under the terms and conditions of their original licenses.</span>
|
||||
<span>ezBookkeeping's codebase and localization translation rely on contributions from the community. The following people have contributed to ezBookkeeping:</span>
|
||||
</p>
|
||||
<div>
|
||||
<strong>Project Maintainer</strong>
|
||||
<div class="mt-2">
|
||||
<a target="_blank" href="https://github.com/mayswind">@mayswind</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<strong>Code Contributors</strong>
|
||||
</p>
|
||||
<table class="contributors-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Contributor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr :key="index" v-for="(contributor, index) in contributors.code">
|
||||
<td>
|
||||
<a target="_blank" :href="`https://github.com/${contributor}`">
|
||||
@{{ contributor }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="mt-4">
|
||||
<strong>Translation Contributors</strong>
|
||||
</p>
|
||||
<table class="contributors-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Language</th>
|
||||
<th>Contributors</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr :key="languageTag"
|
||||
v-for="(languageContributors, languageTag) in contributors.translators"
|
||||
v-show="!!getLanguageInfo(languageTag)?.displayName">
|
||||
<td>{{ languageTag }}</td>
|
||||
<td>{{ getLanguageInfo(languageTag)?.displayName }}</td>
|
||||
<td>
|
||||
<template :key="contributor" v-for="(contributor, index) in languageContributors">
|
||||
<a target="_blank" :href="`https://github.com/${contributor}`">
|
||||
@{{ contributor }}
|
||||
</a>
|
||||
<span v-if="index < languageContributors.length - 1">, </span>
|
||||
</template>
|
||||
<span v-if="!languageContributors || languageContributors.length < 1">/</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="mt-4 mb-4">
|
||||
<span>ezBookkeeping also contains additional third party software and illustration.</span><br/>
|
||||
<span>All the third party software / illustration included or linked is redistributed under the terms and conditions of their original licenses.</span>
|
||||
</p>
|
||||
<p></p>
|
||||
<p :key="license.name" v-for="license in thirdPartyLicenses">
|
||||
<strong>{{ license.name }}</strong>
|
||||
<br v-if="license.copyright"/><span v-if="license.copyright">{{ license.copyright }}</span>
|
||||
@@ -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();
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.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 rgba(var(--v-border-color), var(--v-border-opacity));
|
||||
text-align: start;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -49,10 +49,66 @@
|
||||
</p>
|
||||
<hr/>
|
||||
<p>
|
||||
<span>ezBookkeeping also contains additional third party software and illustration.</span><br/>
|
||||
<span>All the third party software/illustration included or linked is redistributed under the terms and conditions of their original licenses.</span>
|
||||
<span>ezBookkeeping's codebase and localization translation rely on contributions from the community. The following people have contributed to ezBookkeeping:</span>
|
||||
</p>
|
||||
<div>
|
||||
<strong>Project Maintainer</strong>
|
||||
<div class="margin-top-half">
|
||||
<f7-link target="_blank" @click="openExternalUrl('https://github.com/mayswind')">@mayswind</f7-link>
|
||||
</div>
|
||||
</div>
|
||||
<p class="margin-top">
|
||||
<strong>Code Contributors</strong>
|
||||
</p>
|
||||
<table class="contributors-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Contributor</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr :key="index" v-for="(contributor, index) in contributors.code">
|
||||
<td>
|
||||
<f7-link target="_blank" @click="openExternalUrl(`https://github.com/${contributor}`)">
|
||||
@{{ contributor }}
|
||||
</f7-link>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="margin-top">
|
||||
<strong>Translation Contributors</strong>
|
||||
</p>
|
||||
<table class="contributors-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Language</th>
|
||||
<th>Contributors</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr :key="languageTag"
|
||||
v-for="(languageContributors, languageTag) in contributors.translators"
|
||||
v-show="!!getLanguageInfo(languageTag)?.displayName">
|
||||
<td>{{ languageTag }}</td>
|
||||
<td>{{ getLanguageInfo(languageTag)?.displayName }}</td>
|
||||
<td>
|
||||
<template :key="contributor" v-for="(contributor, index) in languageContributors">
|
||||
<f7-link target="_blank" @click="openExternalUrl(`https://github.com/${contributor}`)">
|
||||
@{{ contributor }}
|
||||
</f7-link>
|
||||
<span v-if="index < languageContributors.length - 1">, </span>
|
||||
</template>
|
||||
<span v-if="!languageContributors || languageContributors.length < 1">/</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="margin-top margin-bottom">
|
||||
<span>ezBookkeeping also contains additional third party software and illustration.</span><br/>
|
||||
<span>All the third party software / illustration included or linked is redistributed under the terms and conditions of their original licenses.</span>
|
||||
</p>
|
||||
<p></p>
|
||||
<p :key="license.name" v-for="license in thirdPartyLicenses">
|
||||
<strong>{{ license.name }}</strong>
|
||||
<br v-if="license.copyright"/><span v-if="license.copyright">{{ license.copyright }}</span>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -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)
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user