Browse Source

Feature/improve localization of personal finance tools (#2274)

* Improve localization

* Update changelog
pull/2285/head
Thomas Kaul 2 years ago
committed by GitHub
parent
commit
93e1ee3ba7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 104
      apps/api/src/assets/sitemap.xml
  3. 2
      apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts
  4. 1
      apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts
  5. 2
      apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
  6. 16
      apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html
  7. 82
      apps/client/src/app/pages/resources/personal-finance-tools/products.ts
  8. 1026
      apps/client/src/locales/messages.de.xlf
  9. 1026
      apps/client/src/locales/messages.es.xlf
  10. 1026
      apps/client/src/locales/messages.fr.xlf
  11. 1026
      apps/client/src/locales/messages.it.xlf
  12. 1026
      apps/client/src/locales/messages.nl.xlf
  13. 1026
      apps/client/src/locales/messages.pt.xlf
  14. 1006
      apps/client/src/locales/messages.xlf

1
CHANGELOG.md

@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Shortened the page titles
- Improved the language localization for German (`de`)
- Upgraded `prisma` from version `4.16.2` to `5.2.0`
- Upgraded `yahoo-finance2` from version `2.4.3` to `2.4.4`

104
apps/api/src/assets/sitemap.xml

@ -50,6 +50,110 @@
<loc>https://ghostfol.io/de/ressourcen</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-altoo</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-copilot-money</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-delta</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-divvydiary</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-exirio</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-folishare</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-getquin</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-gospatz</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-justetf</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-kubera</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-markets.sh</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-maybe-finance</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-monse</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-parqet</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-plannix</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-portfolio-dividend-tracker</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-portseido</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-projectionlab</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-seeking-alpha</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-sharesight</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-simple-portfolio</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-snowball-analytics</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-sumio</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-utluna</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-yeekatee</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://ghostfol.io/de/ueber-uns</loc>
<lastmod>${currentDate}T00:00:00+00:00</lastmod>

2
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts

@ -19,7 +19,7 @@ const routes: Routes = [
.map(({ component, key, name }) => {
return {
canActivate: [AuthGuard],
path: `open-source-alternative-to-${key}`,
path: $localize`open-source-alternative-to` + `-${key}`,
loadComponent: () =>
import(`./products/${key}-page.component`).then(() => component),
title: $localize`Open Source Alternative to ${name}`

1
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts

@ -10,6 +10,7 @@ import { products } from './products';
templateUrl: './personal-finance-tools-page.html'
})
export class PersonalFinanceToolsPageComponent implements OnDestroy {
public pathAlternativeTo = $localize`open-source-alternative-to` + '-';
public pathResources = '/' + $localize`resources`;
public products = products.filter(({ key }) => {
return key !== 'ghostfolio';

2
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html

@ -29,7 +29,7 @@
<a
class="d-flex overflow-hidden w-100"
title="Compare Ghostfolio to {{ product.name }}"
[routerLink]="[pathResources, 'personal-finance-tools', 'open-source-alternative-to-' + product.key]"
[routerLink]="[pathResources, 'personal-finance-tools', pathAlternativeTo + product.key]"
>
<div class="flex-grow-1 overflow-hidden">
<div class="h6 m-0 text-truncate" i18n>

16
apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html

@ -10,7 +10,7 @@
</h1>
</div>
<section class="mb-4">
<p>
<p i18n>
Are you looking for an open source alternative to {{ product2.name
}}? <a [routerLink]="routerLinkAbout">Ghostfolio</a> is a powerful
portfolio management tool that provides individuals with a
@ -23,7 +23,7 @@
to help you make informed decisions and take control of your
financial future.
</p>
<p>
<p i18n>
Ghostfolio is an open source software (OSS), providing a
cost-effective alternative to {{ product2.name }} making it
particularly suitable for individuals on a tight budget, such as
@ -34,7 +34,7 @@
and personal finance enthusiasts, Ghostfolio continuously enhances
its capabilities, security, and user experience.
</p>
<p>
<p i18n>
Let’s dive deeper into the detailed comparison table below to gain a
thorough understanding of how Ghostfolio positions itself relative
to {{ product2.name }}. We will explore various aspects such as
@ -177,11 +177,11 @@
</tr>
<tr class="mat-mdc-row">
<td class="mat-mdc-cell px-3 py-2 text-right" i18n>Pricing</td>
<td class="mat-mdc-cell px-1 py-2">
<td class="mat-mdc-cell px-1 py-2" i18n>
Starting from {{ product1.pricingPerYear }} / year
</td>
<td class="mat-mdc-cell px-1 py-2">
<ng-container *ngIf="product2.pricingPerYear"
<ng-container *ngIf="product2.pricingPerYear" i18n
>Starting from {{ product2.pricingPerYear }} /
year</ng-container
>
@ -196,7 +196,7 @@
</table>
</section>
<section class="mb-4">
<p>
<p i18n>
Please note that the information provided is based on our
independent research and analysis. This website is not affiliated
with {{ product2.name }} or any other product mentioned in the
@ -208,7 +208,7 @@
</p>
</section>
<section class="call-to-action mb-4 py-3 rounded">
<h2 class="h4 mb-0 text-center">
<h2 class="h4 mb-0 text-center" i18n>
Ready to take your <strong>investments</strong> to the
<strong>next level</strong>?
</h2>
@ -217,7 +217,7 @@
Ghostfolio.
</p>
<div class="text-center">
<a color="primary" href="https://ghostfol.io" mat-flat-button>
<a color="primary" href="https://ghostfol.io" i18n mat-flat-button>
Get Started
</a>
</div>

82
apps/client/src/app/pages/resources/personal-finance-tools/products.ts

@ -35,18 +35,18 @@ export const products: Product[] = [
isOpenSource: true,
key: 'ghostfolio',
languages: [
'Dutch',
'Deutsch',
'English',
'French',
'German',
'Italian',
'Portuguese',
'Spanish'
'Español',
'Français',
'Italiano',
'Nederlands',
'Português'
],
name: 'Ghostfolio',
origin: 'Switzerland',
origin: $localize`Switzerland`,
pricingPerYear: '$19',
region: 'Global',
region: $localize`Global`,
slogan: 'Open Source Wealth Management',
useAnonymously: true
},
@ -57,7 +57,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'altoo',
name: 'Altoo Wealth Platform',
origin: 'Switzerland',
origin: $localize`Switzerland`,
slogan: 'Simplicity for Complex Wealth'
},
{
@ -68,7 +68,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'copilot-money',
name: 'Copilot Money',
origin: 'United States',
origin: $localize`United States`,
pricingPerYear: '$70',
slogan: 'Do money better with Copilot'
},
@ -81,7 +81,7 @@ export const products: Product[] = [
key: 'delta',
name: 'Delta Investment Tracker',
note: 'Acquired by eToro',
origin: 'Belgium',
origin: $localize`Belgium`,
slogan: 'The app to track all your investments. Make smart moves only.'
},
{
@ -91,9 +91,9 @@ export const products: Product[] = [
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'divvydiary',
languages: ['English', 'German'],
languages: ['Deutsch', 'English'],
name: 'DivvyDiary',
origin: 'Germany',
origin: $localize`Germany`,
pricingPerYear: '€65',
slogan: 'Your personal Dividend Calendar'
},
@ -105,7 +105,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'exirio',
name: 'Exirio',
origin: 'United States',
origin: $localize`United States`,
pricingPerYear: '$100',
slogan: 'All your wealth, in one place.'
},
@ -115,9 +115,9 @@ export const products: Product[] = [
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'folishare',
languages: ['English', 'German'],
languages: ['Deutsch', 'English'],
name: 'folishare',
origin: 'Austria',
origin: $localize`Austria`,
pricingPerYear: '$65',
slogan: 'Take control over your investments'
},
@ -128,9 +128,9 @@ export const products: Product[] = [
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'getquin',
languages: ['English', 'German'],
languages: ['Deutsch', 'English'],
name: 'getquin',
origin: 'Germany',
origin: $localize`Germany`,
pricingPerYear: '€48',
slogan: 'Portfolio Tracker, Analysis & Community'
},
@ -141,7 +141,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'gospatz',
name: 'goSPATZ',
origin: 'Germany',
origin: $localize`Germany`,
slogan: 'Volle Kontrolle über deine Investitionen'
},
{
@ -152,7 +152,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'justetf',
name: 'justETF',
origin: 'Germany',
origin: $localize`Germany`,
pricingPerYear: '€119',
slogan: 'ETF portfolios made simple'
},
@ -164,7 +164,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'kubera',
name: 'Kubera®',
origin: 'United States',
origin: $localize`United States`,
pricingPerYear: '$150',
slogan: 'The Time Machine for your Net Worth'
},
@ -177,9 +177,9 @@ export const products: Product[] = [
key: 'markets.sh',
languages: ['English'],
name: 'markets.sh',
origin: 'Germany',
origin: $localize`Germany`,
pricingPerYear: '€168',
region: 'Global',
region: $localize`Global`,
slogan: 'Track your investments'
},
{
@ -191,9 +191,9 @@ export const products: Product[] = [
languages: ['English'],
name: 'Maybe Finance',
note: 'Sunset in 2023',
origin: 'United States',
origin: $localize`United States`,
pricingPerYear: '$145',
region: 'United States',
region: $localize`United States`,
slogan: 'Your financial future, in your control'
},
{
@ -215,7 +215,7 @@ export const products: Product[] = [
key: 'parqet',
name: 'Parqet',
note: 'Originally named as Tresor One',
origin: 'Germany',
origin: $localize`Germany`,
pricingPerYear: '€88',
region: 'Austria, Germany, Switzerland',
slogan: 'Dein Vermögen immer im Blick'
@ -227,7 +227,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'plannix',
name: 'Plannix',
origin: 'Italy',
origin: $localize`Italy`,
slogan: 'Your Personal Finance Hub'
},
{
@ -236,9 +236,9 @@ export const products: Product[] = [
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'portfolio-dividend-tracker',
languages: ['English', 'Dutch'],
languages: ['English', 'Nederlands'],
name: 'Portfolio Dividend Tracker',
origin: 'Netherlands',
origin: $localize`Netherlands`,
pricingPerYear: '€60',
slogan: 'Manage all your portfolios'
},
@ -249,9 +249,9 @@ export const products: Product[] = [
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'portseido',
languages: ['Dutch', 'English', 'French', 'German'],
languages: ['Deutsch', 'English', 'Français', 'Nederlands'],
name: 'Portseido',
origin: 'Thailand',
origin: $localize`Thailand`,
pricingPerYear: '$96',
slogan: 'Portfolio Performance and Dividend Tracker'
},
@ -263,7 +263,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'projectionlab',
name: 'ProjectionLab',
origin: 'United States',
origin: $localize`United States`,
pricingPerYear: '$108',
slogan: 'Build Financial Plans You Love.'
},
@ -275,7 +275,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'seeking-alpha',
name: 'Seeking Alpha',
origin: 'United States',
origin: $localize`United States`,
pricingPerYear: '$239',
slogan: 'Stock Market Analysis & Tools for Investors'
},
@ -287,9 +287,9 @@ export const products: Product[] = [
isOpenSource: false,
key: 'sharesight',
name: 'Sharesight',
origin: 'New Zealand',
origin: $localize`New Zealand`,
pricingPerYear: '$135',
region: 'Global',
region: $localize`Global`,
slogan: 'Stock Portfolio Tracker'
},
{
@ -299,7 +299,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'simple-portfolio',
name: 'Simple Portfolio',
origin: 'Czech Republic',
origin: $localize`Czech Republic`,
pricingPerYear: '€80',
slogan: 'Stock Portfolio Tracker'
},
@ -322,7 +322,7 @@ export const products: Product[] = [
isOpenSource: false,
key: 'sumio',
name: 'Sumio',
origin: 'Czech Republic',
origin: $localize`Czech Republic`,
pricingPerYear: '$20',
slogan: 'Sum up and build your wealth.'
},
@ -332,9 +332,9 @@ export const products: Product[] = [
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'utluna',
languages: ['English', 'French', 'German'],
languages: ['Deutsch', 'English', 'Français'],
name: 'Utluna',
origin: 'Switzerland',
origin: $localize`Switzerland`,
pricingPerYear: '$300',
slogan: 'Your Portfolio. Revealed.',
useAnonymously: true
@ -346,8 +346,8 @@ export const products: Product[] = [
isOpenSource: false,
key: 'yeekatee',
name: 'yeekatee',
origin: 'Switzerland',
region: 'Switzerland',
origin: $localize`Switzerland`,
region: $localize`Switzerland`,
slogan: 'Connect. Share. Invest.'
}
];

1026
apps/client/src/locales/messages.de.xlf

File diff suppressed because it is too large

1026
apps/client/src/locales/messages.es.xlf

File diff suppressed because it is too large

1026
apps/client/src/locales/messages.fr.xlf

File diff suppressed because it is too large

1026
apps/client/src/locales/messages.it.xlf

File diff suppressed because it is too large

1026
apps/client/src/locales/messages.nl.xlf

File diff suppressed because it is too large

1026
apps/client/src/locales/messages.pt.xlf

File diff suppressed because it is too large

1006
apps/client/src/locales/messages.xlf

File diff suppressed because it is too large
Loading…
Cancel
Save