Compare commits
45 Commits
Author | SHA1 | Date | |
---|---|---|---|
420f331be9 | |||
e0068c4d5d | |||
85661884a6 | |||
8f6203d296 | |||
2fa723dc3c | |||
a500fb72c5 | |||
02db0db733 | |||
c87b08ca8b | |||
fcc2ab1a48 | |||
7efda2f890 | |||
3794a61d2d | |||
c1d1ea9dde | |||
0d676a46c8 | |||
97db144e01 | |||
cec55127c8 | |||
f3f359bcfb | |||
601e6f4147 | |||
e228b4925c | |||
62e3ffe413 | |||
6af885fde0 | |||
dd15bba359 | |||
43fca7ff43 | |||
faa6af5694 | |||
d2ea7a0bfb | |||
3f6319e00b | |||
5601299648 | |||
6060c7cfe0 | |||
ba78c2783d | |||
48eee5f865 | |||
f4a8acdb46 | |||
1d6ba22598 | |||
e38be8d710 | |||
da5be3fb57 | |||
b5317a7f95 | |||
43afb16808 | |||
d5c56fb16c | |||
b94c1f280b | |||
acc59866a3 | |||
c9fc3e402d | |||
6c1317f978 | |||
89be438e66 | |||
9d6214e93a | |||
0640b24290 | |||
6eb9d9d973 | |||
9ecc3176a5 |
12
.github/workflows/build-code.yml
vendored
12
.github/workflows/build-code.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
node_version:
|
||||
- 18
|
||||
- 20
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
@ -24,16 +24,16 @@ jobs:
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node_version }}
|
||||
cache: 'yarn'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
run: npm ci
|
||||
|
||||
- name: Check formatting
|
||||
run: yarn format:check
|
||||
run: npm run format:check
|
||||
|
||||
- name: Execute tests
|
||||
run: yarn test
|
||||
run: npm test
|
||||
|
||||
- name: Build application
|
||||
run: yarn build:production
|
||||
run: npm run build:production
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -5,8 +5,8 @@
|
||||
/tmp
|
||||
|
||||
# dependencies
|
||||
/.yarn
|
||||
/node_modules
|
||||
npm-debug.log
|
||||
|
||||
# IDEs and editors
|
||||
/.idea
|
||||
@ -34,10 +34,8 @@
|
||||
/coverage
|
||||
/dist
|
||||
/libpeerconnection.log
|
||||
npm-debug.log
|
||||
testem.log
|
||||
/typings
|
||||
yarn-error.log
|
||||
|
||||
# System Files
|
||||
.DS_Store
|
||||
|
83
CHANGELOG.md
83
CHANGELOG.md
@ -5,6 +5,87 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## 2.101.0 - 2024-08-03
|
||||
|
||||
### Changed
|
||||
|
||||
- Hardened container security by switching to a non-root user, setting the filesystem to read-only, and dropping unnecessary capabilities
|
||||
|
||||
## 2.100.0 - 2024-08-03
|
||||
|
||||
### Added
|
||||
|
||||
- Added support to manage tags of holdings in the holding detail dialog
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved the color assignment in the chart of the holdings tab on the home page (experimental)
|
||||
- Persisted the view mode of the holdings tab on the home page (experimental)
|
||||
- Improved the language localization for Catalan (`ca`)
|
||||
- Improved the language localization for Spanish (`es`)
|
||||
|
||||
## 2.99.0 - 2024-07-29
|
||||
|
||||
### Changed
|
||||
|
||||
- Migrated the usage of `yarn` to `npm`
|
||||
- Upgraded `storybook` from version `7.0.9` to `8.2.5`
|
||||
- Downgraded `marked` from version `13.0.0` to `12.0.2`
|
||||
|
||||
## 2.98.0 - 2024-07-27
|
||||
|
||||
### Added
|
||||
|
||||
- Set up the language localization for Catalan (`ca`)
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved the account selector of the create or update activity dialog
|
||||
- Improved the handling of the numerical precision in the value component
|
||||
- Skipped derived currencies in the get quotes functionality of the data provider service
|
||||
- Improved the language localization for Spanish (`es`)
|
||||
- Upgraded `angular` from version `18.0.4` to `18.1.1`
|
||||
- Upgraded `Nx` from version `19.4.3` to `19.5.1`
|
||||
- Upgraded `prisma` from version `5.16.1` to `5.17.0`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the dividend import from a data provider for holdings without an account
|
||||
- Fixed an issue in the public page related to a non-existent access
|
||||
|
||||
## 2.97.0 - 2024-07-20
|
||||
|
||||
### Added
|
||||
|
||||
- Added _selfh.st_ to the _As seen in_ section on the landing page
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved the numerical precision in the holding detail dialog
|
||||
- Improved the handling of the numerical precision in the value component
|
||||
- Optimized the 7d data gathering by prioritizing the currencies
|
||||
- Improved the language localization for German (`de`)
|
||||
- Upgraded `Node.js` from version `18` to `20` (`Dockerfile`)
|
||||
- Upgraded `Nx` from version `19.4.0` to `19.4.3`
|
||||
- Upgraded `prettier` from version `3.3.1` to `3.3.3`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the table sorting of the holdings tab on the home page
|
||||
|
||||
## 2.96.0 - 2024-07-13
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved the chart of the holdings tab on the home page (experimental)
|
||||
- Separated the icon purposes in the `site.webmanifest`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed an issue in the portfolio summary with the currency conversion of fees
|
||||
- Fixed an issue in the the search for a holding
|
||||
- Removed the show condition of the experimental features setting in the user settings
|
||||
|
||||
## 2.95.0 - 2024-07-12
|
||||
|
||||
### Added
|
||||
@ -4799,7 +4880,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Added
|
||||
|
||||
- Added the attribute `precision` in the value component
|
||||
- Added the attribute `precision` to the value component
|
||||
|
||||
### Fixed
|
||||
|
||||
|
@ -30,26 +30,26 @@ Use `@if (user?.settings?.isExperimentalFeatures) {}` in HTML template
|
||||
|
||||
#### Upgrade
|
||||
|
||||
1. Run `yarn nx migrate latest`
|
||||
1. Make sure `package.json` changes make sense and then run `yarn install`
|
||||
1. Run `yarn nx migrate --run-migrations` (Run `YARN_NODE_LINKER="node-modules" NX_MIGRATE_SKIP_INSTALL=1 yarn nx migrate --run-migrations` due to https://github.com/nrwl/nx/issues/16338)
|
||||
1. Run `npx nx migrate latest`
|
||||
1. Make sure `package.json` changes make sense and then run `npm install`
|
||||
1. Run `npx nx migrate --run-migrations`
|
||||
|
||||
### Prisma
|
||||
|
||||
#### Access database via GUI
|
||||
|
||||
Run `yarn database:gui`
|
||||
Run `npm run database:gui`
|
||||
|
||||
https://www.prisma.io/studio
|
||||
|
||||
#### Synchronize schema with database for prototyping
|
||||
|
||||
Run `yarn database:push`
|
||||
Run `npm run database:push`
|
||||
|
||||
https://www.prisma.io/docs/concepts/components/prisma-migrate/db-push
|
||||
|
||||
#### Create schema migration
|
||||
|
||||
Run `yarn prisma migrate dev --name added_job_title`
|
||||
Run `npm run prisma migrate dev --name added_job_title`
|
||||
|
||||
https://www.prisma.io/docs/concepts/components/prisma-migrate#getting-started-with-prisma-migrate
|
||||
|
45
Dockerfile
45
Dockerfile
@ -1,4 +1,4 @@
|
||||
FROM --platform=$BUILDPLATFORM node:18-slim as builder
|
||||
FROM --platform=$BUILDPLATFORM node:20-slim AS builder
|
||||
|
||||
# Build application and add additional files
|
||||
WORKDIR /ghostfolio
|
||||
@ -8,18 +8,17 @@ WORKDIR /ghostfolio
|
||||
COPY ./CHANGELOG.md CHANGELOG.md
|
||||
COPY ./LICENSE LICENSE
|
||||
COPY ./package.json package.json
|
||||
COPY ./yarn.lock yarn.lock
|
||||
COPY ./.yarnrc .yarnrc
|
||||
COPY ./package-lock.json package-lock.json
|
||||
COPY ./prisma/schema.prisma prisma/schema.prisma
|
||||
|
||||
RUN apt update && apt install -y \
|
||||
g++ \
|
||||
git \
|
||||
make \
|
||||
openssl \
|
||||
python3 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN yarn install
|
||||
RUN apt-get update && apt-get install -y --no-install-suggests \
|
||||
g++ \
|
||||
git \
|
||||
make \
|
||||
openssl \
|
||||
python3 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN npm install
|
||||
|
||||
# See https://github.com/nrwl/nx/issues/6586 for further details
|
||||
COPY ./decorate-angular-cli.js decorate-angular-cli.js
|
||||
@ -33,34 +32,36 @@ COPY ./tsconfig.base.json tsconfig.base.json
|
||||
COPY ./libs libs
|
||||
COPY ./apps apps
|
||||
|
||||
RUN yarn build:production
|
||||
RUN npm run build:production
|
||||
|
||||
# Prepare the dist image with additional node_modules
|
||||
WORKDIR /ghostfolio/dist/apps/api
|
||||
# package.json was generated by the build process, however the original
|
||||
# yarn.lock needs to be used to ensure the same versions
|
||||
COPY ./yarn.lock /ghostfolio/dist/apps/api/yarn.lock
|
||||
# package-lock.json needs to be used to ensure the same versions
|
||||
COPY ./package-lock.json /ghostfolio/dist/apps/api/package-lock.json
|
||||
|
||||
RUN yarn
|
||||
RUN npm install
|
||||
COPY prisma /ghostfolio/dist/apps/api/prisma
|
||||
|
||||
# Overwrite the generated package.json with the original one to ensure having
|
||||
# all the scripts
|
||||
COPY package.json /ghostfolio/dist/apps/api
|
||||
RUN yarn database:generate-typings
|
||||
RUN npm run database:generate-typings
|
||||
|
||||
# Image to run, copy everything needed from builder
|
||||
FROM node:18-slim
|
||||
|
||||
FROM node:20-slim
|
||||
LABEL org.opencontainers.image.source="https://github.com/ghostfolio/ghostfolio"
|
||||
ENV NODE_ENV=production
|
||||
|
||||
RUN apt update && apt install -y \
|
||||
curl \
|
||||
openssl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get update && apt-get install -y --no-install-suggests \
|
||||
curl \
|
||||
openssl \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /ghostfolio/dist/apps /ghostfolio/apps
|
||||
COPY ./docker/entrypoint.sh /ghostfolio/entrypoint.sh
|
||||
RUN chown -R node:node /ghostfolio
|
||||
WORKDIR /ghostfolio/apps/api
|
||||
EXPOSE ${PORT:-3333}
|
||||
USER node
|
||||
CMD [ "/ghostfolio/entrypoint.sh" ]
|
||||
|
19
README.md
19
README.md
@ -149,16 +149,15 @@ Ghostfolio is available for various home server systems, including [CasaOS](http
|
||||
### Prerequisites
|
||||
|
||||
- [Docker](https://www.docker.com/products/docker-desktop)
|
||||
- [Node.js](https://nodejs.org/en/download) (version 18+)
|
||||
- [Yarn](https://yarnpkg.com/en/docs/install)
|
||||
- [Node.js](https://nodejs.org/en/download) (version 20+)
|
||||
- Create a local copy of this Git repository (clone)
|
||||
- Copy the file `.env.dev` to `.env` and populate it with your data (`cp .env.dev .env`)
|
||||
|
||||
### Setup
|
||||
|
||||
1. Run `yarn install`
|
||||
1. Run `npm install`
|
||||
1. Run `docker compose --env-file ./.env -f docker/docker-compose.dev.yml up -d` to start [PostgreSQL](https://www.postgresql.org) and [Redis](https://redis.io)
|
||||
1. Run `yarn database:setup` to initialize the database schema
|
||||
1. Run `npm run database:setup` to initialize the database schema
|
||||
1. Run `git config core.hooksPath ./git-hooks/` to setup git hooks
|
||||
1. Start the server and the client (see [_Development_](#Development))
|
||||
1. Open https://localhost:4200/en in your browser
|
||||
@ -168,31 +167,31 @@ Ghostfolio is available for various home server systems, including [CasaOS](http
|
||||
|
||||
#### Debug
|
||||
|
||||
Run `yarn watch:server` and click _Debug API_ in [Visual Studio Code](https://code.visualstudio.com)
|
||||
Run `npm run watch:server` and click _Debug API_ in [Visual Studio Code](https://code.visualstudio.com)
|
||||
|
||||
#### Serve
|
||||
|
||||
Run `yarn start:server`
|
||||
Run `npm run start:server`
|
||||
|
||||
### Start Client
|
||||
|
||||
Run `yarn start:client` and open https://localhost:4200/en in your browser
|
||||
Run `npm run start:client` and open https://localhost:4200/en in your browser
|
||||
|
||||
### Start _Storybook_
|
||||
|
||||
Run `yarn start:storybook`
|
||||
Run `npm run start:storybook`
|
||||
|
||||
### Migrate Database
|
||||
|
||||
With the following command you can keep your database schema in sync:
|
||||
|
||||
```bash
|
||||
yarn database:push
|
||||
npm run database:push
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
Run `yarn test`
|
||||
Run `npm test`
|
||||
|
||||
## Public API
|
||||
|
||||
|
@ -174,8 +174,8 @@ export class AccountService {
|
||||
ACCOUNT: filtersByAccount,
|
||||
ASSET_CLASS: filtersByAssetClass,
|
||||
TAG: filtersByTag
|
||||
} = groupBy(filters, (filter) => {
|
||||
return filter.type;
|
||||
} = groupBy(filters, ({ type }) => {
|
||||
return type;
|
||||
});
|
||||
|
||||
if (filtersByAccount?.length > 0) {
|
||||
|
@ -81,10 +81,11 @@ export class AdminController {
|
||||
@Post('gather/max')
|
||||
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
||||
public async gatherMax(): Promise<void> {
|
||||
const uniqueAssets = await this.dataGatheringService.getUniqueAssets();
|
||||
const assetProfileIdentifiers =
|
||||
await this.dataGatheringService.getAllAssetProfileIdentifiers();
|
||||
|
||||
await this.dataGatheringService.addJobsToQueue(
|
||||
uniqueAssets.map(({ dataSource, symbol }) => {
|
||||
assetProfileIdentifiers.map(({ dataSource, symbol }) => {
|
||||
return {
|
||||
data: {
|
||||
dataSource,
|
||||
@ -107,10 +108,11 @@ export class AdminController {
|
||||
@Post('gather/profile-data')
|
||||
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
||||
public async gatherProfileData(): Promise<void> {
|
||||
const uniqueAssets = await this.dataGatheringService.getUniqueAssets();
|
||||
const assetProfileIdentifiers =
|
||||
await this.dataGatheringService.getAllAssetProfileIdentifiers();
|
||||
|
||||
await this.dataGatheringService.addJobsToQueue(
|
||||
uniqueAssets.map(({ dataSource, symbol }) => {
|
||||
assetProfileIdentifiers.map(({ dataSource, symbol }) => {
|
||||
return {
|
||||
data: {
|
||||
dataSource,
|
||||
|
@ -27,12 +27,13 @@ import {
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { MarketDataPreset } from '@ghostfolio/common/types';
|
||||
|
||||
import { BadRequestException, Injectable } from '@nestjs/common';
|
||||
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
|
||||
import {
|
||||
AssetClass,
|
||||
AssetSubClass,
|
||||
DataSource,
|
||||
Prisma,
|
||||
PrismaClient,
|
||||
Property,
|
||||
SymbolProfile
|
||||
} from '@prisma/client';
|
||||
@ -212,98 +213,113 @@ export class AdminService {
|
||||
}
|
||||
}
|
||||
|
||||
let [assetProfiles, count] = await Promise.all([
|
||||
this.prismaService.symbolProfile.findMany({
|
||||
orderBy,
|
||||
skip,
|
||||
take,
|
||||
where,
|
||||
select: {
|
||||
_count: {
|
||||
select: { Order: true }
|
||||
},
|
||||
assetClass: true,
|
||||
assetSubClass: true,
|
||||
comment: true,
|
||||
countries: true,
|
||||
currency: true,
|
||||
dataSource: true,
|
||||
id: true,
|
||||
name: true,
|
||||
Order: {
|
||||
orderBy: [{ date: 'asc' }],
|
||||
select: { date: true },
|
||||
take: 1
|
||||
},
|
||||
scraperConfiguration: true,
|
||||
sectors: true,
|
||||
symbol: true
|
||||
const extendedPrismaClient = this.getExtendedPrismaClient();
|
||||
|
||||
try {
|
||||
let [assetProfiles, count] = await Promise.all([
|
||||
extendedPrismaClient.symbolProfile.findMany({
|
||||
orderBy,
|
||||
skip,
|
||||
take,
|
||||
where,
|
||||
select: {
|
||||
_count: {
|
||||
select: { Order: true }
|
||||
},
|
||||
assetClass: true,
|
||||
assetSubClass: true,
|
||||
comment: true,
|
||||
countries: true,
|
||||
currency: true,
|
||||
dataSource: true,
|
||||
id: true,
|
||||
isUsedByUsersWithSubscription: true,
|
||||
name: true,
|
||||
Order: {
|
||||
orderBy: [{ date: 'asc' }],
|
||||
select: { date: true },
|
||||
take: 1
|
||||
},
|
||||
scraperConfiguration: true,
|
||||
sectors: true,
|
||||
symbol: true
|
||||
}
|
||||
}),
|
||||
this.prismaService.symbolProfile.count({ where })
|
||||
]);
|
||||
|
||||
let marketData: AdminMarketDataItem[] = await Promise.all(
|
||||
assetProfiles.map(
|
||||
async ({
|
||||
_count,
|
||||
assetClass,
|
||||
assetSubClass,
|
||||
comment,
|
||||
countries,
|
||||
currency,
|
||||
dataSource,
|
||||
id,
|
||||
isUsedByUsersWithSubscription,
|
||||
name,
|
||||
Order,
|
||||
sectors,
|
||||
symbol
|
||||
}) => {
|
||||
const countriesCount = countries
|
||||
? Object.keys(countries).length
|
||||
: 0;
|
||||
const marketDataItemCount =
|
||||
marketDataItems.find((marketDataItem) => {
|
||||
return (
|
||||
marketDataItem.dataSource === dataSource &&
|
||||
marketDataItem.symbol === symbol
|
||||
);
|
||||
})?._count ?? 0;
|
||||
const sectorsCount = sectors ? Object.keys(sectors).length : 0;
|
||||
|
||||
return {
|
||||
assetClass,
|
||||
assetSubClass,
|
||||
comment,
|
||||
currency,
|
||||
countriesCount,
|
||||
dataSource,
|
||||
id,
|
||||
name,
|
||||
symbol,
|
||||
marketDataItemCount,
|
||||
sectorsCount,
|
||||
activitiesCount: _count.Order,
|
||||
date: Order?.[0]?.date,
|
||||
isUsedByUsersWithSubscription: await isUsedByUsersWithSubscription
|
||||
};
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
if (presetId) {
|
||||
if (presetId === 'ETF_WITHOUT_COUNTRIES') {
|
||||
marketData = marketData.filter(({ countriesCount }) => {
|
||||
return countriesCount === 0;
|
||||
});
|
||||
} else if (presetId === 'ETF_WITHOUT_SECTORS') {
|
||||
marketData = marketData.filter(({ sectorsCount }) => {
|
||||
return sectorsCount === 0;
|
||||
});
|
||||
}
|
||||
}),
|
||||
this.prismaService.symbolProfile.count({ where })
|
||||
]);
|
||||
|
||||
let marketData: AdminMarketDataItem[] = assetProfiles.map(
|
||||
({
|
||||
_count,
|
||||
assetClass,
|
||||
assetSubClass,
|
||||
comment,
|
||||
countries,
|
||||
currency,
|
||||
dataSource,
|
||||
id,
|
||||
name,
|
||||
Order,
|
||||
sectors,
|
||||
symbol
|
||||
}) => {
|
||||
const countriesCount = countries ? Object.keys(countries).length : 0;
|
||||
const marketDataItemCount =
|
||||
marketDataItems.find((marketDataItem) => {
|
||||
return (
|
||||
marketDataItem.dataSource === dataSource &&
|
||||
marketDataItem.symbol === symbol
|
||||
);
|
||||
})?._count ?? 0;
|
||||
const sectorsCount = sectors ? Object.keys(sectors).length : 0;
|
||||
|
||||
return {
|
||||
assetClass,
|
||||
assetSubClass,
|
||||
comment,
|
||||
currency,
|
||||
countriesCount,
|
||||
dataSource,
|
||||
id,
|
||||
name,
|
||||
symbol,
|
||||
marketDataItemCount,
|
||||
sectorsCount,
|
||||
activitiesCount: _count.Order,
|
||||
date: Order?.[0]?.date
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
if (presetId) {
|
||||
if (presetId === 'ETF_WITHOUT_COUNTRIES') {
|
||||
marketData = marketData.filter(({ countriesCount }) => {
|
||||
return countriesCount === 0;
|
||||
});
|
||||
} else if (presetId === 'ETF_WITHOUT_SECTORS') {
|
||||
marketData = marketData.filter(({ sectorsCount }) => {
|
||||
return sectorsCount === 0;
|
||||
});
|
||||
count = marketData.length;
|
||||
}
|
||||
|
||||
count = marketData.length;
|
||||
return {
|
||||
count,
|
||||
marketData
|
||||
};
|
||||
} finally {
|
||||
await extendedPrismaClient.$disconnect();
|
||||
|
||||
Logger.debug('Disconnect extended prisma client', 'AdminService');
|
||||
}
|
||||
|
||||
return {
|
||||
count,
|
||||
marketData
|
||||
};
|
||||
}
|
||||
|
||||
public async getMarketDataBySymbol({
|
||||
@ -431,6 +447,52 @@ export class AdminService {
|
||||
return response;
|
||||
}
|
||||
|
||||
private getExtendedPrismaClient() {
|
||||
Logger.debug('Connect extended prisma client', 'AdminService');
|
||||
|
||||
const symbolProfileExtension = Prisma.defineExtension((client) => {
|
||||
return client.$extends({
|
||||
result: {
|
||||
symbolProfile: {
|
||||
isUsedByUsersWithSubscription: {
|
||||
compute: async ({ id }) => {
|
||||
const { _count } =
|
||||
await this.prismaService.symbolProfile.findUnique({
|
||||
select: {
|
||||
_count: {
|
||||
select: {
|
||||
Order: {
|
||||
where: {
|
||||
User: {
|
||||
Subscription: {
|
||||
some: {
|
||||
expiresAt: {
|
||||
gt: new Date()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
where: {
|
||||
id
|
||||
}
|
||||
});
|
||||
|
||||
return _count.Order > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return new PrismaClient().$extends(symbolProfileExtension);
|
||||
}
|
||||
|
||||
private async getMarketDataForCurrencies(): Promise<AdminMarketData> {
|
||||
const marketDataItems = await this.prismaService.marketData.groupBy({
|
||||
_count: true,
|
||||
|
@ -72,9 +72,13 @@ export class ImportService {
|
||||
})
|
||||
]);
|
||||
|
||||
const accounts = orders.map((order) => {
|
||||
return order.Account;
|
||||
});
|
||||
const accounts = orders
|
||||
.filter(({ Account }) => {
|
||||
return !!Account;
|
||||
})
|
||||
.map(({ Account }) => {
|
||||
return Account;
|
||||
});
|
||||
|
||||
const Account = this.isUniqueAccount(accounts) ? accounts[0] : undefined;
|
||||
|
||||
|
@ -46,6 +46,39 @@ export class OrderService {
|
||||
private readonly symbolProfileService: SymbolProfileService
|
||||
) {}
|
||||
|
||||
public async assignTags({
|
||||
dataSource,
|
||||
symbol,
|
||||
tags,
|
||||
userId
|
||||
}: { tags: Tag[]; userId: string } & UniqueAsset) {
|
||||
const orders = await this.prismaService.order.findMany({
|
||||
where: {
|
||||
userId,
|
||||
SymbolProfile: {
|
||||
dataSource,
|
||||
symbol
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return Promise.all(
|
||||
orders.map(({ id }) =>
|
||||
this.prismaService.order.update({
|
||||
data: {
|
||||
tags: {
|
||||
// The set operation replaces all existing connections with the provided ones
|
||||
set: tags.map(({ id }) => {
|
||||
return { id };
|
||||
})
|
||||
}
|
||||
},
|
||||
where: { id }
|
||||
})
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public async createOrder(
|
||||
data: Prisma.OrderCreateInput & {
|
||||
accountId?: string;
|
||||
@ -312,10 +345,14 @@ export class OrderService {
|
||||
ACCOUNT: filtersByAccount,
|
||||
ASSET_CLASS: filtersByAssetClass,
|
||||
TAG: filtersByTag
|
||||
} = groupBy(filters, (filter) => {
|
||||
return filter.type;
|
||||
} = groupBy(filters, ({ type }) => {
|
||||
return type;
|
||||
});
|
||||
|
||||
const searchQuery = filters?.find(({ type }) => {
|
||||
return type === 'SEARCH_QUERY';
|
||||
})?.id;
|
||||
|
||||
if (filtersByAccount?.length > 0) {
|
||||
where.accountId = {
|
||||
in: filtersByAccount.map(({ id }) => {
|
||||
@ -357,6 +394,30 @@ export class OrderService {
|
||||
};
|
||||
}
|
||||
|
||||
if (searchQuery) {
|
||||
const searchQueryWhereInput: Prisma.SymbolProfileWhereInput[] = [
|
||||
{ id: { mode: 'insensitive', startsWith: searchQuery } },
|
||||
{ isin: { mode: 'insensitive', startsWith: searchQuery } },
|
||||
{ name: { mode: 'insensitive', startsWith: searchQuery } },
|
||||
{ symbol: { mode: 'insensitive', startsWith: searchQuery } }
|
||||
];
|
||||
|
||||
if (where.SymbolProfile) {
|
||||
where.SymbolProfile = {
|
||||
AND: [
|
||||
where.SymbolProfile,
|
||||
{
|
||||
OR: searchQueryWhereInput
|
||||
}
|
||||
]
|
||||
};
|
||||
} else {
|
||||
where.SymbolProfile = {
|
||||
OR: searchQueryWhereInput
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
if (filtersByTag?.length > 0) {
|
||||
where.tags = {
|
||||
some: {
|
||||
|
@ -300,6 +300,12 @@ export abstract class PortfolioCalculator {
|
||||
const errors: ResponseError['errors'] = [];
|
||||
|
||||
for (const item of lastTransactionPoint.items) {
|
||||
const feeInBaseCurrency = item.fee.mul(
|
||||
exchangeRatesByCurrency[`${item.currency}${this.currency}`]?.[
|
||||
lastTransactionPoint.date
|
||||
]
|
||||
);
|
||||
|
||||
const marketPriceInBaseCurrency = (
|
||||
marketSymbolMap[endDateString]?.[item.symbol] ?? item.averagePrice
|
||||
).mul(
|
||||
@ -340,10 +346,11 @@ export abstract class PortfolioCalculator {
|
||||
hasAnySymbolMetricsErrors = hasAnySymbolMetricsErrors || hasErrors;
|
||||
|
||||
positions.push({
|
||||
dividend: totalDividend,
|
||||
dividendInBaseCurrency: totalDividendInBaseCurrency,
|
||||
feeInBaseCurrency,
|
||||
timeWeightedInvestment,
|
||||
timeWeightedInvestmentWithCurrencyEffect,
|
||||
dividend: totalDividend,
|
||||
dividendInBaseCurrency: totalDividendInBaseCurrency,
|
||||
averagePrice: item.averagePrice,
|
||||
currency: item.currency,
|
||||
dataSource: item.dataSource,
|
||||
|
@ -168,6 +168,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('3.2'),
|
||||
feeInBaseCurrency: new Big('3.2'),
|
||||
firstBuyDate: '2021-11-22',
|
||||
grossPerformance: new Big('-12.6'),
|
||||
grossPerformancePercentage: new Big('-0.04408677396780965649'),
|
||||
|
@ -153,6 +153,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('3.2'),
|
||||
feeInBaseCurrency: new Big('3.2'),
|
||||
firstBuyDate: '2021-11-22',
|
||||
grossPerformance: new Big('-12.6'),
|
||||
grossPerformancePercentage: new Big('-0.0440867739678096571'),
|
||||
|
@ -138,6 +138,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('1.55'),
|
||||
feeInBaseCurrency: new Big('1.55'),
|
||||
firstBuyDate: '2021-11-30',
|
||||
grossPerformance: new Big('24.6'),
|
||||
grossPerformancePercentage: new Big('0.09004392386530014641'),
|
||||
|
@ -166,6 +166,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('0'),
|
||||
feeInBaseCurrency: new Big('0'),
|
||||
firstBuyDate: '2015-01-01',
|
||||
grossPerformance: new Big('27172.74'),
|
||||
grossPerformancePercentage: new Big('42.41978276196153750666'),
|
||||
|
@ -123,6 +123,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('49'),
|
||||
feeInBaseCurrency: new Big('49'),
|
||||
firstBuyDate: '2021-09-01',
|
||||
grossPerformance: null,
|
||||
grossPerformancePercentage: null,
|
||||
|
@ -151,6 +151,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('1'),
|
||||
feeInBaseCurrency: new Big('0.9238'),
|
||||
firstBuyDate: '2023-01-03',
|
||||
grossPerformance: new Big('27.33'),
|
||||
grossPerformancePercentage: new Big('0.3066651705565529623'),
|
||||
@ -177,7 +178,7 @@ describe('PortfolioCalculator', () => {
|
||||
valueInBaseCurrency: new Big('103.10483')
|
||||
}
|
||||
],
|
||||
totalFeesWithCurrencyEffect: new Big('1'),
|
||||
totalFeesWithCurrencyEffect: new Big('0.9238'),
|
||||
totalInterestWithCurrencyEffect: new Big('0'),
|
||||
totalInvestment: new Big('89.12'),
|
||||
totalInvestmentWithCurrencyEffect: new Big('82.329056'),
|
||||
|
@ -123,6 +123,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('0'),
|
||||
feeInBaseCurrency: new Big('0'),
|
||||
firstBuyDate: '2022-01-01',
|
||||
grossPerformance: null,
|
||||
grossPerformancePercentage: null,
|
||||
|
@ -153,6 +153,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('4.25'),
|
||||
feeInBaseCurrency: new Big('4.25'),
|
||||
firstBuyDate: '2022-03-07',
|
||||
grossPerformance: new Big('21.93'),
|
||||
grossPerformancePercentage: new Big('0.15113417083448194384'),
|
||||
|
@ -183,6 +183,7 @@ describe('PortfolioCalculator', () => {
|
||||
dividend: new Big('0'),
|
||||
dividendInBaseCurrency: new Big('0'),
|
||||
fee: new Big('0'),
|
||||
feeInBaseCurrency: new Big('0'),
|
||||
firstBuyDate: '2022-03-07',
|
||||
grossPerformance: new Big('19.86'),
|
||||
grossPerformancePercentage: new Big('0.13100263852242744063'),
|
||||
|
@ -34,9 +34,9 @@ export class TWRPortfolioCalculator extends PortfolioCalculator {
|
||||
let totalTimeWeightedInvestmentWithCurrencyEffect = new Big(0);
|
||||
|
||||
for (const currentPosition of positions) {
|
||||
if (currentPosition.fee) {
|
||||
if (currentPosition.feeInBaseCurrency) {
|
||||
totalFeesWithCurrencyEffect = totalFeesWithCurrencyEffect.plus(
|
||||
currentPosition.fee
|
||||
currentPosition.feeInBaseCurrency
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { AccessService } from '@ghostfolio/api/app/access/access.service';
|
||||
import { OrderService } from '@ghostfolio/api/app/order/order.service';
|
||||
import { UserService } from '@ghostfolio/api/app/user/user.service';
|
||||
import { HasPermission } from '@ghostfolio/api/decorators/has-permission.decorator';
|
||||
import { HasPermissionGuard } from '@ghostfolio/api/guards/has-permission.guard';
|
||||
import {
|
||||
hasNotDefinedValuesInObject,
|
||||
@ -29,7 +30,8 @@ import {
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import {
|
||||
hasReadRestrictedAccessPermission,
|
||||
isRestrictedView
|
||||
isRestrictedView,
|
||||
permissions
|
||||
} from '@ghostfolio/common/permissions';
|
||||
import type {
|
||||
DateRange,
|
||||
@ -38,12 +40,14 @@ import type {
|
||||
} from '@ghostfolio/common/types';
|
||||
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
Headers,
|
||||
HttpException,
|
||||
Inject,
|
||||
Param,
|
||||
Put,
|
||||
Query,
|
||||
UseGuards,
|
||||
UseInterceptors,
|
||||
@ -51,12 +55,13 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { REQUEST } from '@nestjs/core';
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { AssetClass, AssetSubClass } from '@prisma/client';
|
||||
import { AssetClass, AssetSubClass, DataSource } from '@prisma/client';
|
||||
import { Big } from 'big.js';
|
||||
import { StatusCodes, getReasonPhrase } from 'http-status-codes';
|
||||
|
||||
import { PortfolioHoldingDetail } from './interfaces/portfolio-holding-detail.interface';
|
||||
import { PortfolioService } from './portfolio.service';
|
||||
import { UpdateHoldingTagsDto } from './update-holding-tags.dto';
|
||||
|
||||
@Controller('portfolio')
|
||||
export class PortfolioController {
|
||||
@ -496,9 +501,6 @@ export class PortfolioController {
|
||||
@Param('accessId') accessId
|
||||
): Promise<PortfolioPublicDetails> {
|
||||
const access = await this.accessService.access({ id: accessId });
|
||||
const user = await this.userService.user({
|
||||
id: access.userId
|
||||
});
|
||||
|
||||
if (!access) {
|
||||
throw new HttpException(
|
||||
@ -508,6 +510,11 @@ export class PortfolioController {
|
||||
}
|
||||
|
||||
let hasDetails = true;
|
||||
|
||||
const user = await this.userService.user({
|
||||
id: access.userId
|
||||
});
|
||||
|
||||
if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) {
|
||||
hasDetails = user.subscription.type === 'Premium';
|
||||
}
|
||||
@ -564,23 +571,23 @@ export class PortfolioController {
|
||||
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
||||
public async getPosition(
|
||||
@Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string,
|
||||
@Param('dataSource') dataSource,
|
||||
@Param('symbol') symbol
|
||||
@Param('dataSource') dataSource: DataSource,
|
||||
@Param('symbol') symbol: string
|
||||
): Promise<PortfolioHoldingDetail> {
|
||||
const position = await this.portfolioService.getPosition(
|
||||
const holding = await this.portfolioService.getPosition(
|
||||
dataSource,
|
||||
impersonationId,
|
||||
symbol
|
||||
);
|
||||
|
||||
if (position) {
|
||||
return position;
|
||||
if (!holding) {
|
||||
throw new HttpException(
|
||||
getReasonPhrase(StatusCodes.NOT_FOUND),
|
||||
StatusCodes.NOT_FOUND
|
||||
);
|
||||
}
|
||||
|
||||
throw new HttpException(
|
||||
getReasonPhrase(StatusCodes.NOT_FOUND),
|
||||
StatusCodes.NOT_FOUND
|
||||
);
|
||||
return holding;
|
||||
}
|
||||
|
||||
@Get('report')
|
||||
@ -603,4 +610,36 @@ export class PortfolioController {
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
@HasPermission(permissions.updateOrder)
|
||||
@Put('position/:dataSource/:symbol/tags')
|
||||
@UseInterceptors(TransformDataSourceInRequestInterceptor)
|
||||
@UseGuards(AuthGuard('jwt'), HasPermissionGuard)
|
||||
public async updateHoldingTags(
|
||||
@Body() data: UpdateHoldingTagsDto,
|
||||
@Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string,
|
||||
@Param('dataSource') dataSource: DataSource,
|
||||
@Param('symbol') symbol: string
|
||||
): Promise<void> {
|
||||
const holding = await this.portfolioService.getPosition(
|
||||
dataSource,
|
||||
impersonationId,
|
||||
symbol
|
||||
);
|
||||
|
||||
if (!holding) {
|
||||
throw new HttpException(
|
||||
getReasonPhrase(StatusCodes.NOT_FOUND),
|
||||
StatusCodes.NOT_FOUND
|
||||
);
|
||||
}
|
||||
|
||||
await this.portfolioService.updateTags({
|
||||
dataSource,
|
||||
impersonationId,
|
||||
symbol,
|
||||
tags: data.tags,
|
||||
userId: this.request.user.id
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1,78 +0,0 @@
|
||||
import { Big } from 'big.js';
|
||||
|
||||
import { PortfolioService } from './portfolio.service';
|
||||
|
||||
describe('PortfolioService', () => {
|
||||
let portfolioService: PortfolioService;
|
||||
|
||||
beforeAll(async () => {
|
||||
portfolioService = new PortfolioService(
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
);
|
||||
});
|
||||
|
||||
describe('annualized performance percentage', () => {
|
||||
it('Get annualized performance', async () => {
|
||||
expect(
|
||||
portfolioService
|
||||
.getAnnualizedPerformancePercent({
|
||||
daysInMarket: NaN, // differenceInDays of date-fns returns NaN for the same day
|
||||
netPerformancePercentage: new Big(0)
|
||||
})
|
||||
.toNumber()
|
||||
).toEqual(0);
|
||||
|
||||
expect(
|
||||
portfolioService
|
||||
.getAnnualizedPerformancePercent({
|
||||
daysInMarket: 0,
|
||||
netPerformancePercentage: new Big(0)
|
||||
})
|
||||
.toNumber()
|
||||
).toEqual(0);
|
||||
|
||||
/**
|
||||
* Source: https://www.readyratios.com/reference/analysis/annualized_rate.html
|
||||
*/
|
||||
expect(
|
||||
portfolioService
|
||||
.getAnnualizedPerformancePercent({
|
||||
daysInMarket: 65, // < 1 year
|
||||
netPerformancePercentage: new Big(0.1025)
|
||||
})
|
||||
.toNumber()
|
||||
).toBeCloseTo(0.729705);
|
||||
|
||||
expect(
|
||||
portfolioService
|
||||
.getAnnualizedPerformancePercent({
|
||||
daysInMarket: 365, // 1 year
|
||||
netPerformancePercentage: new Big(0.05)
|
||||
})
|
||||
.toNumber()
|
||||
).toBeCloseTo(0.05);
|
||||
|
||||
/**
|
||||
* Source: https://www.investopedia.com/terms/a/annualized-total-return.asp#annualized-return-formula-and-calculation
|
||||
*/
|
||||
expect(
|
||||
portfolioService
|
||||
.getAnnualizedPerformancePercent({
|
||||
daysInMarket: 575, // > 1 year
|
||||
netPerformancePercentage: new Big(0.2374)
|
||||
})
|
||||
.toNumber()
|
||||
).toBeCloseTo(0.145);
|
||||
});
|
||||
});
|
||||
});
|
@ -18,6 +18,7 @@ import { DataProviderService } from '@ghostfolio/api/services/data-provider/data
|
||||
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
|
||||
import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service';
|
||||
import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service';
|
||||
import { getAnnualizedPerformancePercent } from '@ghostfolio/common/calculation-helper';
|
||||
import {
|
||||
DEFAULT_CURRENCY,
|
||||
EMERGENCY_FUND_TAG_ID,
|
||||
@ -58,7 +59,8 @@ import {
|
||||
DataSource,
|
||||
Order,
|
||||
Platform,
|
||||
Prisma
|
||||
Prisma,
|
||||
Tag
|
||||
} from '@prisma/client';
|
||||
import { Big } from 'big.js';
|
||||
import {
|
||||
@ -70,7 +72,7 @@ import {
|
||||
parseISO,
|
||||
set
|
||||
} from 'date-fns';
|
||||
import { isEmpty, isNumber, last, uniq, uniqBy } from 'lodash';
|
||||
import { isEmpty, uniq, uniqBy } from 'lodash';
|
||||
|
||||
import { PortfolioCalculator } from './calculator/portfolio-calculator';
|
||||
import {
|
||||
@ -206,24 +208,6 @@ export class PortfolioService {
|
||||
};
|
||||
}
|
||||
|
||||
public getAnnualizedPerformancePercent({
|
||||
daysInMarket,
|
||||
netPerformancePercentage
|
||||
}: {
|
||||
daysInMarket: number;
|
||||
netPerformancePercentage: Big;
|
||||
}): Big {
|
||||
if (isNumber(daysInMarket) && daysInMarket > 0) {
|
||||
const exponent = new Big(365).div(daysInMarket).toNumber();
|
||||
|
||||
return new Big(
|
||||
Math.pow(netPerformancePercentage.plus(1).toNumber(), exponent)
|
||||
).minus(1);
|
||||
}
|
||||
|
||||
return new Big(0);
|
||||
}
|
||||
|
||||
public async getDividends({
|
||||
activities,
|
||||
groupBy
|
||||
@ -713,7 +697,7 @@ export class PortfolioService {
|
||||
return Account;
|
||||
});
|
||||
|
||||
const dividendYieldPercent = this.getAnnualizedPerformancePercent({
|
||||
const dividendYieldPercent = getAnnualizedPerformancePercent({
|
||||
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
|
||||
netPerformancePercentage: timeWeightedInvestment.eq(0)
|
||||
? new Big(0)
|
||||
@ -721,7 +705,7 @@ export class PortfolioService {
|
||||
});
|
||||
|
||||
const dividendYieldPercentWithCurrencyEffect =
|
||||
this.getAnnualizedPerformancePercent({
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)),
|
||||
netPerformancePercentage: timeWeightedInvestmentWithCurrencyEffect.eq(
|
||||
0
|
||||
@ -1321,6 +1305,24 @@ export class PortfolioService {
|
||||
};
|
||||
}
|
||||
|
||||
public async updateTags({
|
||||
dataSource,
|
||||
impersonationId,
|
||||
symbol,
|
||||
tags,
|
||||
userId
|
||||
}: {
|
||||
dataSource: DataSource;
|
||||
impersonationId: string;
|
||||
symbol: string;
|
||||
tags: Tag[];
|
||||
userId: string;
|
||||
}) {
|
||||
userId = await this.getUserId(impersonationId, userId);
|
||||
|
||||
await this.orderService.assignTags({ dataSource, symbol, tags, userId });
|
||||
}
|
||||
|
||||
private async getCashPositions({
|
||||
cashDetails,
|
||||
userCurrency,
|
||||
@ -1724,13 +1726,13 @@ export class PortfolioService {
|
||||
|
||||
const daysInMarket = differenceInDays(new Date(), firstOrderDate);
|
||||
|
||||
const annualizedPerformancePercent = this.getAnnualizedPerformancePercent({
|
||||
const annualizedPerformancePercent = getAnnualizedPerformancePercent({
|
||||
daysInMarket,
|
||||
netPerformancePercentage: new Big(netPerformancePercentage)
|
||||
})?.toNumber();
|
||||
|
||||
const annualizedPerformancePercentWithCurrencyEffect =
|
||||
this.getAnnualizedPerformancePercent({
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket,
|
||||
netPerformancePercentage: new Big(
|
||||
netPerformancePercentageWithCurrencyEffect
|
||||
|
7
apps/api/src/app/portfolio/update-holding-tags.dto.ts
Normal file
7
apps/api/src/app/portfolio/update-holding-tags.dto.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { Tag } from '@prisma/client';
|
||||
import { IsArray } from 'class-validator';
|
||||
|
||||
export class UpdateHoldingTagsDto {
|
||||
@IsArray()
|
||||
tags: Tag[];
|
||||
}
|
@ -2,6 +2,7 @@ import { IsCurrencyCode } from '@ghostfolio/api/validators/is-currency-code';
|
||||
import type {
|
||||
ColorScheme,
|
||||
DateRange,
|
||||
HoldingsViewMode,
|
||||
ViewMode
|
||||
} from '@ghostfolio/common/types';
|
||||
|
||||
@ -66,6 +67,10 @@ export class UpdateUserSettingDto {
|
||||
@IsOptional()
|
||||
'filters.tags'?: string[];
|
||||
|
||||
@IsIn(<HoldingsViewMode[]>['CHART', 'TABLE'])
|
||||
@IsOptional()
|
||||
holdingsViewMode?: HoldingsViewMode;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
isExperimentalFeatures?: boolean;
|
||||
|
@ -190,7 +190,7 @@ export class UserService {
|
||||
(user.Settings.settings as UserSettings).dateRange =
|
||||
(user.Settings.settings as UserSettings).viewMode === 'ZEN'
|
||||
? 'max'
|
||||
: (user.Settings.settings as UserSettings)?.dateRange ?? 'max';
|
||||
: ((user.Settings.settings as UserSettings)?.dateRange ?? 'max');
|
||||
|
||||
// Set default value for view mode
|
||||
if (!(user.Settings.settings as UserSettings).viewMode) {
|
||||
@ -237,11 +237,15 @@ export class UserService {
|
||||
|
||||
currentPermissions = without(
|
||||
currentPermissions,
|
||||
permissions.accessHoldingsChart,
|
||||
permissions.createAccess
|
||||
);
|
||||
|
||||
// Reset benchmark
|
||||
user.Settings.settings.benchmark = undefined;
|
||||
|
||||
// Reset holdings view mode
|
||||
user.Settings.settings.holdingsViewMode = undefined;
|
||||
} else if (user.subscription?.type === 'Premium') {
|
||||
currentPermissions.push(permissions.reportDataGlitch);
|
||||
|
||||
|
@ -4,6 +4,12 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
||||
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||
<!--
|
||||
<url>
|
||||
<loc>https://ghostfol.io/ca</loc>
|
||||
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
-->
|
||||
<url>
|
||||
<loc>https://ghostfol.io/de</loc>
|
||||
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
|
||||
@ -441,10 +447,10 @@
|
||||
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<!--
|
||||
<url>
|
||||
<loc>https://ghostfol.io/pl</loc>
|
||||
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/pl</loc>
|
||||
<lastmod>${currentDate}T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
-->
|
||||
<url>
|
||||
<loc>https://ghostfol.io/pt</loc>
|
||||
|
@ -45,10 +45,11 @@ export class CronService {
|
||||
@Cron(CronService.EVERY_SUNDAY_AT_LUNCH_TIME)
|
||||
public async runEverySundayAtTwelvePm() {
|
||||
if (await this.isDataGatheringEnabled()) {
|
||||
const uniqueAssets = await this.dataGatheringService.getUniqueAssets();
|
||||
const assetProfileIdentifiers =
|
||||
await this.dataGatheringService.getAllAssetProfileIdentifiers();
|
||||
|
||||
await this.dataGatheringService.addJobsToQueue(
|
||||
uniqueAssets.map(({ dataSource, symbol }) => {
|
||||
assetProfileIdentifiers.map(({ dataSource, symbol }) => {
|
||||
return {
|
||||
data: {
|
||||
dataSource,
|
||||
|
@ -10,6 +10,7 @@ import {
|
||||
DATA_GATHERING_QUEUE,
|
||||
DATA_GATHERING_QUEUE_PRIORITY_HIGH,
|
||||
DATA_GATHERING_QUEUE_PRIORITY_LOW,
|
||||
DATA_GATHERING_QUEUE_PRIORITY_MEDIUM,
|
||||
GATHER_HISTORICAL_MARKET_DATA_PROCESS,
|
||||
GATHER_HISTORICAL_MARKET_DATA_PROCESS_OPTIONS,
|
||||
PROPERTY_BENCHMARKS
|
||||
@ -62,9 +63,22 @@ export class DataGatheringService {
|
||||
}
|
||||
|
||||
public async gather7Days() {
|
||||
const dataGatheringItems = await this.getSymbols7D();
|
||||
await this.gatherSymbols({
|
||||
dataGatheringItems,
|
||||
dataGatheringItems: await this.getCurrencies7D(),
|
||||
priority: DATA_GATHERING_QUEUE_PRIORITY_HIGH
|
||||
});
|
||||
|
||||
await this.gatherSymbols({
|
||||
dataGatheringItems: await this.getSymbols7D({
|
||||
withUserSubscription: true
|
||||
}),
|
||||
priority: DATA_GATHERING_QUEUE_PRIORITY_MEDIUM
|
||||
});
|
||||
|
||||
await this.gatherSymbols({
|
||||
dataGatheringItems: await this.getSymbols7D({
|
||||
withUserSubscription: false
|
||||
}),
|
||||
priority: DATA_GATHERING_QUEUE_PRIORITY_LOW
|
||||
});
|
||||
}
|
||||
@ -138,7 +152,7 @@ export class DataGatheringService {
|
||||
});
|
||||
|
||||
if (!uniqueAssets) {
|
||||
uniqueAssets = await this.getUniqueAssets();
|
||||
uniqueAssets = await this.getAllAssetProfileIdentifiers();
|
||||
}
|
||||
|
||||
if (uniqueAssets.length <= 0) {
|
||||
@ -270,7 +284,7 @@ export class DataGatheringService {
|
||||
);
|
||||
}
|
||||
|
||||
public async getUniqueAssets(): Promise<UniqueAsset[]> {
|
||||
public async getAllAssetProfileIdentifiers(): Promise<UniqueAsset[]> {
|
||||
const symbolProfiles = await this.prismaService.symbolProfile.findMany({
|
||||
orderBy: [{ symbol: 'asc' }]
|
||||
});
|
||||
@ -290,73 +304,83 @@ export class DataGatheringService {
|
||||
});
|
||||
}
|
||||
|
||||
private getEarliestDate(aStartDate: Date) {
|
||||
return min([aStartDate, subYears(new Date(), 10)]);
|
||||
}
|
||||
|
||||
private async getSymbols7D(): Promise<IDataGatheringItem[]> {
|
||||
const startDate = subDays(resetHours(new Date()), 7);
|
||||
|
||||
const symbolProfiles = await this.prismaService.symbolProfile.findMany({
|
||||
orderBy: [{ symbol: 'asc' }],
|
||||
select: {
|
||||
dataSource: true,
|
||||
scraperConfiguration: true,
|
||||
symbol: true
|
||||
}
|
||||
});
|
||||
|
||||
// Only consider symbols with incomplete market data for the last
|
||||
// 7 days
|
||||
const symbolsWithCompleteMarketData = (
|
||||
private async getAssetProfileIdentifiersWithCompleteMarketData(): Promise<
|
||||
UniqueAsset[]
|
||||
> {
|
||||
return (
|
||||
await this.prismaService.marketData.groupBy({
|
||||
_count: true,
|
||||
by: ['symbol'],
|
||||
by: ['dataSource', 'symbol'],
|
||||
orderBy: [{ symbol: 'asc' }],
|
||||
where: {
|
||||
date: { gt: startDate },
|
||||
date: { gt: subDays(resetHours(new Date()), 7) },
|
||||
state: 'CLOSE'
|
||||
}
|
||||
})
|
||||
)
|
||||
.filter((group) => {
|
||||
return group._count >= 6;
|
||||
.filter(({ _count }) => {
|
||||
return _count >= 6;
|
||||
})
|
||||
.map((group) => {
|
||||
return group.symbol;
|
||||
.map(({ dataSource, symbol }) => {
|
||||
return { dataSource, symbol };
|
||||
});
|
||||
}
|
||||
|
||||
private async getCurrencies7D(): Promise<IDataGatheringItem[]> {
|
||||
const assetProfileIdentifiersWithCompleteMarketData =
|
||||
await this.getAssetProfileIdentifiersWithCompleteMarketData();
|
||||
|
||||
return this.exchangeRateDataService
|
||||
.getCurrencyPairs()
|
||||
.filter(({ dataSource, symbol }) => {
|
||||
return !assetProfileIdentifiersWithCompleteMarketData.some((item) => {
|
||||
return item.dataSource === dataSource && item.symbol === symbol;
|
||||
});
|
||||
})
|
||||
.map(({ dataSource, symbol }) => {
|
||||
return {
|
||||
dataSource,
|
||||
symbol,
|
||||
date: subDays(resetHours(new Date()), 7)
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
private getEarliestDate(aStartDate: Date) {
|
||||
return min([aStartDate, subYears(new Date(), 10)]);
|
||||
}
|
||||
|
||||
private async getSymbols7D({
|
||||
withUserSubscription = false
|
||||
}: {
|
||||
withUserSubscription?: boolean;
|
||||
}): Promise<IDataGatheringItem[]> {
|
||||
const symbolProfiles =
|
||||
await this.symbolProfileService.getSymbolProfilesByUserSubscription({
|
||||
withUserSubscription
|
||||
});
|
||||
|
||||
const symbolProfilesToGather = symbolProfiles
|
||||
const assetProfileIdentifiersWithCompleteMarketData =
|
||||
await this.getAssetProfileIdentifiersWithCompleteMarketData();
|
||||
|
||||
return symbolProfiles
|
||||
.filter(({ dataSource, scraperConfiguration, symbol }) => {
|
||||
const manualDataSourceWithScraperConfiguration =
|
||||
dataSource === 'MANUAL' && !isEmpty(scraperConfiguration);
|
||||
|
||||
return (
|
||||
!symbolsWithCompleteMarketData.includes(symbol) &&
|
||||
!assetProfileIdentifiersWithCompleteMarketData.some((item) => {
|
||||
return item.dataSource === dataSource && item.symbol === symbol;
|
||||
}) &&
|
||||
(dataSource !== 'MANUAL' || manualDataSourceWithScraperConfiguration)
|
||||
);
|
||||
})
|
||||
.map((symbolProfile) => {
|
||||
return {
|
||||
...symbolProfile,
|
||||
date: startDate
|
||||
date: subDays(resetHours(new Date()), 7)
|
||||
};
|
||||
});
|
||||
|
||||
const currencyPairsToGather = this.exchangeRateDataService
|
||||
.getCurrencyPairs()
|
||||
.filter(({ symbol }) => {
|
||||
return !symbolsWithCompleteMarketData.includes(symbol);
|
||||
})
|
||||
.map(({ dataSource, symbol }) => {
|
||||
return {
|
||||
dataSource,
|
||||
symbol,
|
||||
date: startDate
|
||||
};
|
||||
});
|
||||
|
||||
return [...currencyPairsToGather, ...symbolProfilesToGather];
|
||||
}
|
||||
|
||||
private async getSymbolsMax(): Promise<IDataGatheringItem[]> {
|
||||
|
@ -14,7 +14,12 @@ import {
|
||||
DERIVED_CURRENCIES,
|
||||
PROPERTY_DATA_SOURCE_MAPPING
|
||||
} from '@ghostfolio/common/config';
|
||||
import { DATE_FORMAT, getStartOfUtcDate } from '@ghostfolio/common/helper';
|
||||
import {
|
||||
DATE_FORMAT,
|
||||
getCurrencyFromSymbol,
|
||||
getStartOfUtcDate,
|
||||
isDerivedCurrency
|
||||
} from '@ghostfolio/common/helper';
|
||||
import { UniqueAsset } from '@ghostfolio/common/interfaces';
|
||||
import type { Granularity, UserWithSettings } from '@ghostfolio/common/types';
|
||||
|
||||
@ -423,13 +428,18 @@ export class DataProviderService {
|
||||
continue;
|
||||
}
|
||||
|
||||
const symbols = dataGatheringItems.map((dataGatheringItem) => {
|
||||
return dataGatheringItem.symbol;
|
||||
});
|
||||
const symbols = dataGatheringItems
|
||||
.filter(({ symbol }) => {
|
||||
return !isDerivedCurrency(getCurrencyFromSymbol(symbol));
|
||||
})
|
||||
.map(({ symbol }) => {
|
||||
return symbol;
|
||||
});
|
||||
|
||||
const maximumNumberOfSymbolsPerRequest =
|
||||
dataProvider.getMaxNumberOfSymbolsPerRequest?.() ??
|
||||
Number.MAX_SAFE_INTEGER;
|
||||
|
||||
for (
|
||||
let i = 0;
|
||||
i < symbols.length;
|
||||
|
@ -91,6 +91,40 @@ export class SymbolProfileService {
|
||||
});
|
||||
}
|
||||
|
||||
public async getSymbolProfilesByUserSubscription({
|
||||
withUserSubscription = false
|
||||
}: {
|
||||
withUserSubscription?: boolean;
|
||||
}) {
|
||||
return this.prismaService.symbolProfile.findMany({
|
||||
include: {
|
||||
Order: {
|
||||
include: {
|
||||
User: true
|
||||
}
|
||||
}
|
||||
},
|
||||
orderBy: [{ symbol: 'asc' }],
|
||||
where: {
|
||||
Order: withUserSubscription
|
||||
? {
|
||||
some: {
|
||||
User: {
|
||||
Subscription: { some: { expiresAt: { gt: new Date() } } }
|
||||
}
|
||||
}
|
||||
}
|
||||
: {
|
||||
every: {
|
||||
User: {
|
||||
Subscription: { none: { expiresAt: { gt: new Date() } } }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public updateSymbolProfile({
|
||||
assetClass,
|
||||
assetSubClass,
|
||||
|
@ -36,6 +36,10 @@
|
||||
"ngswConfigPath": "apps/client/ngsw-config.json"
|
||||
},
|
||||
"configurations": {
|
||||
"development-ca": {
|
||||
"baseHref": "/ca/",
|
||||
"localize": ["ca"]
|
||||
},
|
||||
"development-de": {
|
||||
"baseHref": "/de/",
|
||||
"localize": ["de"]
|
||||
@ -212,6 +216,7 @@
|
||||
"includeContext": true,
|
||||
"outputPath": "src/locales",
|
||||
"targetFiles": [
|
||||
"messages.ca.xlf",
|
||||
"messages.de.xlf",
|
||||
"messages.es.xlf",
|
||||
"messages.fr.xlf",
|
||||
@ -240,6 +245,10 @@
|
||||
},
|
||||
"i18n": {
|
||||
"locales": {
|
||||
"ca": {
|
||||
"baseHref": "/ca/",
|
||||
"translation": "apps/client/src/locales/messages.ca.xlf"
|
||||
},
|
||||
"de": {
|
||||
"baseHref": "/de/",
|
||||
"translation": "apps/client/src/locales/messages.de.xlf"
|
||||
|
@ -145,6 +145,11 @@
|
||||
/></a>
|
||||
</li>
|
||||
<li> </li>
|
||||
<!--
|
||||
<li>
|
||||
<a href="../ca" title="Ghostfolio en català">Català</a>
|
||||
</li>
|
||||
-->
|
||||
<li>
|
||||
<a href="../de" title="Ghostfolio in Deutsch">Deutsch</a>
|
||||
</li>
|
||||
|
@ -259,6 +259,10 @@ export class AppComponent implements OnDestroy, OnInit {
|
||||
this.user?.permissions,
|
||||
permissions.reportDataGlitch
|
||||
),
|
||||
hasPermissionToUpdateOrder:
|
||||
!this.hasImpersonationId &&
|
||||
hasPermission(this.user?.permissions, permissions.updateOrder) &&
|
||||
!user?.settings?.isRestrictedView,
|
||||
locale: this.user?.settings?.locale
|
||||
},
|
||||
height: this.deviceType === 'mobile' ? '97.5vh' : '80vh',
|
||||
|
@ -6,8 +6,14 @@ import {
|
||||
ghostfolioScraperApiSymbolPrefix
|
||||
} from '@ghostfolio/common/config';
|
||||
import { getDateFormatString } from '@ghostfolio/common/helper';
|
||||
import { Filter, UniqueAsset, User } from '@ghostfolio/common/interfaces';
|
||||
import {
|
||||
Filter,
|
||||
InfoItem,
|
||||
UniqueAsset,
|
||||
User
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { AdminMarketDataItem } from '@ghostfolio/common/interfaces/admin-market-data.interface';
|
||||
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
|
||||
import { SelectionModel } from '@angular/cdk/collections';
|
||||
@ -97,22 +103,11 @@ export class AdminMarketDataComponent
|
||||
new MatTableDataSource();
|
||||
public defaultDateFormat: string;
|
||||
public deviceType: string;
|
||||
public displayedColumns = [
|
||||
'select',
|
||||
'nameWithSymbol',
|
||||
'dataSource',
|
||||
'assetClass',
|
||||
'assetSubClass',
|
||||
'date',
|
||||
'activitiesCount',
|
||||
'marketDataItemCount',
|
||||
'sectorsCount',
|
||||
'countriesCount',
|
||||
'comment',
|
||||
'actions'
|
||||
];
|
||||
public displayedColumns: string[] = [];
|
||||
public filters$ = new Subject<Filter[]>();
|
||||
public ghostfolioScraperApiSymbolPrefix = ghostfolioScraperApiSymbolPrefix;
|
||||
public hasPermissionForSubscription: boolean;
|
||||
public info: InfoItem;
|
||||
public isLoading = false;
|
||||
public isUUID = isUUID;
|
||||
public placeholder = '';
|
||||
@ -134,6 +129,33 @@ export class AdminMarketDataComponent
|
||||
private router: Router,
|
||||
private userService: UserService
|
||||
) {
|
||||
this.info = this.dataService.fetchInfo();
|
||||
|
||||
this.hasPermissionForSubscription = hasPermission(
|
||||
this.info?.globalPermissions,
|
||||
permissions.enableSubscription
|
||||
);
|
||||
|
||||
this.displayedColumns = [
|
||||
'select',
|
||||
'nameWithSymbol',
|
||||
'dataSource',
|
||||
'assetClass',
|
||||
'assetSubClass',
|
||||
'date',
|
||||
'activitiesCount',
|
||||
'marketDataItemCount',
|
||||
'sectorsCount',
|
||||
'countriesCount'
|
||||
];
|
||||
|
||||
if (this.hasPermissionForSubscription) {
|
||||
this.displayedColumns.push('isUsedByUsersWithSubscription');
|
||||
}
|
||||
|
||||
this.displayedColumns.push('comment');
|
||||
this.displayedColumns.push('actions');
|
||||
|
||||
this.route.queryParams
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((params) => {
|
||||
|
@ -144,6 +144,15 @@
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="isUsedByUsersWithSubscription">
|
||||
<th *matHeaderCellDef class="px-1" mat-header-cell></th>
|
||||
<td *matCellDef="let element" class="px-1" mat-cell>
|
||||
@if (element.isUsedByUsersWithSubscription) {
|
||||
<gf-premium-indicator [enableLink]="false" />
|
||||
}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="comment">
|
||||
<th *matHeaderCellDef class="px-1" mat-header-cell></th>
|
||||
<td *matCellDef="let element" class="px-1" mat-cell>
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module';
|
||||
import { GfActivitiesFilterComponent } from '@ghostfolio/ui/activities-filter';
|
||||
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||
@ -24,6 +25,7 @@ import { GfCreateAssetProfileDialogModule } from './create-asset-profile-dialog/
|
||||
GfActivitiesFilterComponent,
|
||||
GfAssetProfileDialogModule,
|
||||
GfCreateAssetProfileDialogModule,
|
||||
GfPremiumIndicatorComponent,
|
||||
GfSymbolModule,
|
||||
MatButtonModule,
|
||||
MatCheckboxModule,
|
||||
|
@ -12,11 +12,7 @@
|
||||
<div class="d-flex my-3">
|
||||
<div class="w-50" i18n>User Count</div>
|
||||
<div class="w-50">
|
||||
<gf-value
|
||||
[locale]="user?.settings?.locale"
|
||||
[precision]="0"
|
||||
[value]="userCount"
|
||||
/>
|
||||
<gf-value [locale]="user?.settings?.locale" [value]="userCount" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex my-3">
|
||||
@ -24,7 +20,6 @@
|
||||
<div class="w-50">
|
||||
<gf-value
|
||||
[locale]="user?.settings?.locale"
|
||||
[precision]="0"
|
||||
[value]="transactionCount"
|
||||
/>
|
||||
@if (transactionCount && userCount) {
|
||||
|
@ -4,6 +4,7 @@ import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-foote
|
||||
import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module';
|
||||
import { DataService } from '@ghostfolio/client/services/data.service';
|
||||
import { UserService } from '@ghostfolio/client/services/user/user.service';
|
||||
import { NUMERICAL_PRECISION_THRESHOLD } from '@ghostfolio/common/config';
|
||||
import { DATE_FORMAT, downloadAsFile } from '@ghostfolio/common/helper';
|
||||
import {
|
||||
DataProviderInfo,
|
||||
@ -18,16 +19,24 @@ import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
|
||||
import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart';
|
||||
import { GfValueComponent } from '@ghostfolio/ui/value';
|
||||
|
||||
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import {
|
||||
CUSTOM_ELEMENTS_SCHEMA,
|
||||
ChangeDetectionStrategy,
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
ElementRef,
|
||||
Inject,
|
||||
OnDestroy,
|
||||
OnInit
|
||||
OnInit,
|
||||
ViewChild
|
||||
} from '@angular/core';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import {
|
||||
MatAutocompleteModule,
|
||||
MatAutocompleteSelectedEvent
|
||||
} from '@angular/material/autocomplete';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatChipsModule } from '@angular/material/chips';
|
||||
import {
|
||||
@ -35,14 +44,15 @@ import {
|
||||
MatDialogModule,
|
||||
MatDialogRef
|
||||
} from '@angular/material/dialog';
|
||||
import { MatFormFieldModule } from '@angular/material/form-field';
|
||||
import { SortDirection } from '@angular/material/sort';
|
||||
import { MatTableDataSource } from '@angular/material/table';
|
||||
import { MatTabsModule } from '@angular/material/tabs';
|
||||
import { Account, Tag } from '@prisma/client';
|
||||
import { format, isSameMonth, isToday, parseISO } from 'date-fns';
|
||||
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { Observable, of, Subject } from 'rxjs';
|
||||
import { map, startWith, takeUntil } from 'rxjs/operators';
|
||||
|
||||
import { HoldingDetailDialogParams } from './interfaces/interfaces';
|
||||
|
||||
@ -59,9 +69,11 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces';
|
||||
GfLineChartComponent,
|
||||
GfPortfolioProportionChartComponent,
|
||||
GfValueComponent,
|
||||
MatAutocompleteModule,
|
||||
MatButtonModule,
|
||||
MatChipsModule,
|
||||
MatDialogModule,
|
||||
MatFormFieldModule,
|
||||
MatTabsModule,
|
||||
NgxSkeletonLoaderModule
|
||||
],
|
||||
@ -72,6 +84,9 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces';
|
||||
templateUrl: 'holding-detail-dialog.html'
|
||||
})
|
||||
export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
@ViewChild('tagInput') tagInput: ElementRef<HTMLInputElement>;
|
||||
|
||||
public activityForm: FormGroup;
|
||||
public accounts: Account[];
|
||||
public activities: Activity[];
|
||||
public assetClass: string;
|
||||
@ -84,28 +99,35 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
public dataProviderInfo: DataProviderInfo;
|
||||
public dataSource: MatTableDataSource<Activity>;
|
||||
public dividendInBaseCurrency: number;
|
||||
public dividendInBaseCurrencyPrecision = 2;
|
||||
public dividendYieldPercentWithCurrencyEffect: number;
|
||||
public feeInBaseCurrency: number;
|
||||
public filteredTagsObservable: Observable<Tag[]> = of([]);
|
||||
public firstBuyDate: string;
|
||||
public historicalDataItems: LineChartItem[];
|
||||
public investment: number;
|
||||
public investmentPrecision = 2;
|
||||
public marketPrice: number;
|
||||
public maxPrice: number;
|
||||
public minPrice: number;
|
||||
public netPerformance: number;
|
||||
public netPerformancePrecision = 2;
|
||||
public netPerformancePercent: number;
|
||||
public netPerformancePercentWithCurrencyEffect: number;
|
||||
public netPerformanceWithCurrencyEffect: number;
|
||||
public netPerformanceWithCurrencyEffectPrecision = 2;
|
||||
public quantity: number;
|
||||
public quantityPrecision = 2;
|
||||
public reportDataGlitchMail: string;
|
||||
public sectors: {
|
||||
[name: string]: { name: string; value: number };
|
||||
};
|
||||
public separatorKeysCodes: number[] = [COMMA, ENTER];
|
||||
public sortColumn = 'date';
|
||||
public sortDirection: SortDirection = 'desc';
|
||||
public SymbolProfile: EnhancedSymbolProfile;
|
||||
public tags: Tag[];
|
||||
public tagsAvailable: Tag[];
|
||||
public totalItems: number;
|
||||
public transactionCount: number;
|
||||
public user: User;
|
||||
@ -118,10 +140,38 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
private dataService: DataService,
|
||||
public dialogRef: MatDialogRef<GfHoldingDetailDialogComponent>,
|
||||
@Inject(MAT_DIALOG_DATA) public data: HoldingDetailDialogParams,
|
||||
private formBuilder: FormBuilder,
|
||||
private userService: UserService
|
||||
) {}
|
||||
|
||||
public ngOnInit() {
|
||||
const { tags } = this.dataService.fetchInfo();
|
||||
|
||||
this.activityForm = this.formBuilder.group({
|
||||
tags: <string[]>[]
|
||||
});
|
||||
|
||||
this.tagsAvailable = tags.map(({ id, name }) => {
|
||||
return {
|
||||
id,
|
||||
name: translate(name)
|
||||
};
|
||||
});
|
||||
|
||||
this.activityForm
|
||||
.get('tags')
|
||||
.valueChanges.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((tags) => {
|
||||
this.dataService
|
||||
.putHoldingTags({
|
||||
tags,
|
||||
dataSource: this.data.dataSource,
|
||||
symbol: this.data.symbol
|
||||
})
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe();
|
||||
});
|
||||
|
||||
this.dataService
|
||||
.fetchHoldingDetail({
|
||||
dataSource: this.data.dataSource,
|
||||
@ -161,10 +211,20 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
this.dataProviderInfo = dataProviderInfo;
|
||||
this.dataSource = new MatTableDataSource(orders.reverse());
|
||||
this.dividendInBaseCurrency = dividendInBaseCurrency;
|
||||
|
||||
if (
|
||||
this.data.deviceType === 'mobile' &&
|
||||
this.dividendInBaseCurrency >= NUMERICAL_PRECISION_THRESHOLD
|
||||
) {
|
||||
this.dividendInBaseCurrencyPrecision = 0;
|
||||
}
|
||||
|
||||
this.dividendYieldPercentWithCurrencyEffect =
|
||||
dividendYieldPercentWithCurrencyEffect;
|
||||
|
||||
this.feeInBaseCurrency = feeInBaseCurrency;
|
||||
this.firstBuyDate = firstBuyDate;
|
||||
|
||||
this.historicalDataItems = historicalData.map(
|
||||
({ averagePrice, date, marketPrice }) => {
|
||||
this.benchmarkDataItems.push({
|
||||
@ -178,26 +238,82 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
this.investment = investment;
|
||||
|
||||
if (
|
||||
this.data.deviceType === 'mobile' &&
|
||||
this.investment >= NUMERICAL_PRECISION_THRESHOLD
|
||||
) {
|
||||
this.investmentPrecision = 0;
|
||||
}
|
||||
|
||||
this.marketPrice = marketPrice;
|
||||
this.maxPrice = maxPrice;
|
||||
this.minPrice = minPrice;
|
||||
this.netPerformance = netPerformance;
|
||||
|
||||
if (
|
||||
this.data.deviceType === 'mobile' &&
|
||||
this.netPerformance >= NUMERICAL_PRECISION_THRESHOLD
|
||||
) {
|
||||
this.netPerformancePrecision = 0;
|
||||
}
|
||||
|
||||
this.netPerformancePercent = netPerformancePercent;
|
||||
|
||||
this.netPerformancePercentWithCurrencyEffect =
|
||||
netPerformancePercentWithCurrencyEffect;
|
||||
|
||||
this.netPerformanceWithCurrencyEffect =
|
||||
netPerformanceWithCurrencyEffect;
|
||||
|
||||
if (
|
||||
this.data.deviceType === 'mobile' &&
|
||||
this.netPerformanceWithCurrencyEffect >=
|
||||
NUMERICAL_PRECISION_THRESHOLD
|
||||
) {
|
||||
this.netPerformanceWithCurrencyEffectPrecision = 0;
|
||||
}
|
||||
|
||||
this.quantity = quantity;
|
||||
|
||||
if (Number.isInteger(this.quantity)) {
|
||||
this.quantityPrecision = 0;
|
||||
} else if (this.SymbolProfile?.assetSubClass === 'CRYPTOCURRENCY') {
|
||||
if (this.quantity < 1) {
|
||||
this.quantityPrecision = 7;
|
||||
} else if (this.quantity < 1000) {
|
||||
this.quantityPrecision = 5;
|
||||
} else if (this.quantity >= 10000000) {
|
||||
this.quantityPrecision = 0;
|
||||
}
|
||||
}
|
||||
|
||||
this.reportDataGlitchMail = `mailto:hi@ghostfol.io?Subject=Ghostfolio Data Glitch Report&body=Hello%0D%0DI would like to report a data glitch for%0D%0DSymbol: ${SymbolProfile?.symbol}%0DData Source: ${SymbolProfile?.dataSource}%0D%0DAdditional notes:%0D%0DCan you please take a look?%0D%0DKind regards`;
|
||||
this.sectors = {};
|
||||
this.SymbolProfile = SymbolProfile;
|
||||
|
||||
this.tags = tags.map(({ id, name }) => {
|
||||
return {
|
||||
id,
|
||||
name: translate(name)
|
||||
};
|
||||
});
|
||||
|
||||
this.activityForm.setValue({ tags: this.tags }, { emitEvent: false });
|
||||
|
||||
this.filteredTagsObservable = this.activityForm.controls[
|
||||
'tags'
|
||||
].valueChanges.pipe(
|
||||
startWith(this.activityForm.get('tags').value),
|
||||
map((aTags: Tag[] | null) => {
|
||||
return aTags
|
||||
? this.filterTags(aTags)
|
||||
: this.tagsAvailable.slice();
|
||||
})
|
||||
);
|
||||
|
||||
this.transactionCount = transactionCount;
|
||||
this.totalItems = transactionCount;
|
||||
this.value = value;
|
||||
@ -282,18 +398,6 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
}
|
||||
);
|
||||
|
||||
if (Number.isInteger(this.quantity)) {
|
||||
this.quantityPrecision = 0;
|
||||
} else if (this.SymbolProfile?.assetSubClass === 'CRYPTOCURRENCY') {
|
||||
if (this.quantity < 1) {
|
||||
this.quantityPrecision = 7;
|
||||
} else if (this.quantity < 1000) {
|
||||
this.quantityPrecision = 5;
|
||||
} else if (this.quantity > 10000000) {
|
||||
this.quantityPrecision = 0;
|
||||
}
|
||||
}
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
}
|
||||
);
|
||||
@ -309,6 +413,17 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
public onAddTag(event: MatAutocompleteSelectedEvent) {
|
||||
this.activityForm.get('tags').setValue([
|
||||
...(this.activityForm.get('tags').value ?? []),
|
||||
this.tagsAvailable.find(({ id }) => {
|
||||
return id === event.option.value;
|
||||
})
|
||||
]);
|
||||
|
||||
this.tagInput.nativeElement.value = '';
|
||||
}
|
||||
|
||||
public onClose() {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
@ -333,8 +448,26 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
public onRemoveTag(aTag: Tag) {
|
||||
this.activityForm.get('tags').setValue(
|
||||
this.activityForm.get('tags').value.filter(({ id }) => {
|
||||
return id !== aTag.id;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
public ngOnDestroy() {
|
||||
this.unsubscribeSubject.next();
|
||||
this.unsubscribeSubject.complete();
|
||||
}
|
||||
|
||||
private filterTags(aTags: Tag[]) {
|
||||
const tagIds = aTags.map(({ id }) => {
|
||||
return id;
|
||||
});
|
||||
|
||||
return this.tagsAvailable.filter(({ id }) => {
|
||||
return !tagIds.includes(id);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,7 @@
|
||||
[colorizeSign]="true"
|
||||
[isCurrency]="true"
|
||||
[locale]="data.locale"
|
||||
[precision]="netPerformanceWithCurrencyEffectPrecision"
|
||||
[unit]="data.baseCurrency"
|
||||
[value]="netPerformanceWithCurrencyEffect"
|
||||
>Change with currency effect</gf-value
|
||||
@ -58,6 +59,7 @@
|
||||
[colorizeSign]="true"
|
||||
[isCurrency]="true"
|
||||
[locale]="data.locale"
|
||||
[precision]="netPerformancePrecision"
|
||||
[unit]="data.baseCurrency"
|
||||
[value]="netPerformance"
|
||||
>Change</gf-value
|
||||
@ -160,6 +162,7 @@
|
||||
size="medium"
|
||||
[isCurrency]="true"
|
||||
[locale]="data.locale"
|
||||
[precision]="investmentPrecision"
|
||||
[unit]="data.baseCurrency"
|
||||
[value]="investment"
|
||||
>Investment</gf-value
|
||||
@ -172,6 +175,7 @@
|
||||
size="medium"
|
||||
[isCurrency]="true"
|
||||
[locale]="data.locale"
|
||||
[precision]="dividendInBaseCurrencyPrecision"
|
||||
[unit]="data.baseCurrency"
|
||||
[value]="dividendInBaseCurrency"
|
||||
>Dividend</gf-value
|
||||
@ -321,7 +325,7 @@
|
||||
|
||||
<mat-tab-group
|
||||
animationDuration="0"
|
||||
class="mb-3"
|
||||
class="mb-5"
|
||||
[mat-stretch-tabs]="false"
|
||||
[ngClass]="{ 'd-none': !activities?.length }"
|
||||
>
|
||||
@ -371,7 +375,49 @@
|
||||
</mat-tab>
|
||||
</mat-tab-group>
|
||||
|
||||
@if (tags?.length > 0) {
|
||||
<div
|
||||
class="row"
|
||||
[ngClass]="{
|
||||
'd-none': !data.hasPermissionToUpdateOrder
|
||||
}"
|
||||
>
|
||||
<div class="col">
|
||||
<mat-form-field appearance="outline" class="w-100 without-hint">
|
||||
<mat-label i18n>Tags</mat-label>
|
||||
<mat-chip-grid #tagsChipList>
|
||||
@for (tag of activityForm.get('tags')?.value; track tag.id) {
|
||||
<mat-chip-row
|
||||
matChipRemove
|
||||
[removable]="true"
|
||||
(removed)="onRemoveTag(tag)"
|
||||
>
|
||||
{{ tag.name }}
|
||||
<ion-icon class="ml-2" matPrefix name="close-outline" />
|
||||
</mat-chip-row>
|
||||
}
|
||||
<input
|
||||
#tagInput
|
||||
name="close-outline"
|
||||
[matAutocomplete]="autocompleteTags"
|
||||
[matChipInputFor]="tagsChipList"
|
||||
[matChipInputSeparatorKeyCodes]="separatorKeysCodes"
|
||||
/>
|
||||
</mat-chip-grid>
|
||||
<mat-autocomplete
|
||||
#autocompleteTags="matAutocomplete"
|
||||
(optionSelected)="onAddTag($event)"
|
||||
>
|
||||
@for (tag of filteredTagsObservable | async; track tag.id) {
|
||||
<mat-option [value]="tag.id">
|
||||
{{ tag.name }}
|
||||
</mat-option>
|
||||
}
|
||||
</mat-autocomplete>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (!data.hasPermissionToUpdateOrder && tagsAvailable?.length > 0) {
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="h5" i18n>Tags</div>
|
||||
|
@ -9,6 +9,7 @@ export interface HoldingDetailDialogParams {
|
||||
deviceType: string;
|
||||
hasImpersonationId: boolean;
|
||||
hasPermissionToReportDataGlitch: boolean;
|
||||
hasPermissionToUpdateOrder: boolean;
|
||||
locale: string;
|
||||
symbol: string;
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
|
||||
import {
|
||||
HoldingType,
|
||||
HoldingViewMode,
|
||||
HoldingsViewMode,
|
||||
ToggleOption
|
||||
} from '@ghostfolio/common/types';
|
||||
|
||||
@ -18,7 +18,7 @@ import { FormControl } from '@angular/forms';
|
||||
import { Router } from '@angular/router';
|
||||
import { DeviceDetectorService } from 'ngx-device-detector';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { skip, takeUntil } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'gf-home-holdings',
|
||||
@ -26,8 +26,11 @@ import { takeUntil } from 'rxjs/operators';
|
||||
templateUrl: './home-holdings.html'
|
||||
})
|
||||
export class HomeHoldingsComponent implements OnDestroy, OnInit {
|
||||
public static DEFAULT_HOLDINGS_VIEW_MODE: HoldingsViewMode = 'TABLE';
|
||||
|
||||
public deviceType: string;
|
||||
public hasImpersonationId: boolean;
|
||||
public hasPermissionToAccessHoldingsChart: boolean;
|
||||
public hasPermissionToCreateOrder: boolean;
|
||||
public holdings: PortfolioPosition[];
|
||||
public holdingType: HoldingType = 'ACTIVE';
|
||||
@ -36,7 +39,9 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit {
|
||||
{ label: $localize`Closed`, value: 'CLOSED' }
|
||||
];
|
||||
public user: User;
|
||||
public viewModeFormControl = new FormControl<HoldingViewMode>('TABLE');
|
||||
public viewModeFormControl = new FormControl<HoldingsViewMode>(
|
||||
HomeHoldingsComponent.DEFAULT_HOLDINGS_VIEW_MODE
|
||||
);
|
||||
|
||||
private unsubscribeSubject = new Subject<void>();
|
||||
|
||||
@ -65,45 +70,42 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit {
|
||||
if (state?.user) {
|
||||
this.user = state.user;
|
||||
|
||||
this.hasPermissionToAccessHoldingsChart = hasPermission(
|
||||
this.user.permissions,
|
||||
permissions.accessHoldingsChart
|
||||
);
|
||||
|
||||
this.hasPermissionToCreateOrder = hasPermission(
|
||||
this.user.permissions,
|
||||
permissions.createOrder
|
||||
);
|
||||
|
||||
this.holdings = undefined;
|
||||
|
||||
this.fetchHoldings()
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(({ holdings }) => {
|
||||
this.holdings = holdings;
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
});
|
||||
this.initialize();
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
}
|
||||
});
|
||||
|
||||
this.viewModeFormControl.valueChanges
|
||||
.pipe(
|
||||
// Skip inizialization: "new FormControl"
|
||||
skip(1),
|
||||
takeUntil(this.unsubscribeSubject)
|
||||
)
|
||||
.subscribe((holdingsViewMode) => {
|
||||
this.dataService
|
||||
.putUserSetting({ holdingsViewMode })
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(() => {
|
||||
this.userService.remove();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public onChangeHoldingType(aHoldingType: HoldingType) {
|
||||
this.holdingType = aHoldingType;
|
||||
|
||||
if (this.holdingType === 'ACTIVE') {
|
||||
this.viewModeFormControl.enable();
|
||||
} else if (this.holdingType === 'CLOSED') {
|
||||
this.viewModeFormControl.disable();
|
||||
this.viewModeFormControl.setValue('TABLE');
|
||||
}
|
||||
|
||||
this.holdings = undefined;
|
||||
|
||||
this.fetchHoldings()
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(({ holdings }) => {
|
||||
this.holdings = holdings;
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
});
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
public onSymbolClicked({ dataSource, symbol }: UniqueAsset) {
|
||||
@ -131,4 +133,38 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit {
|
||||
range: this.user?.settings?.dateRange
|
||||
});
|
||||
}
|
||||
|
||||
private initialize() {
|
||||
this.viewModeFormControl.disable();
|
||||
|
||||
if (
|
||||
this.hasPermissionToAccessHoldingsChart &&
|
||||
this.holdingType === 'ACTIVE'
|
||||
) {
|
||||
this.viewModeFormControl.enable({ emitEvent: false });
|
||||
|
||||
this.viewModeFormControl.setValue(
|
||||
this.deviceType === 'mobile'
|
||||
? HomeHoldingsComponent.DEFAULT_HOLDINGS_VIEW_MODE
|
||||
: this.user?.settings?.holdingsViewMode ||
|
||||
HomeHoldingsComponent.DEFAULT_HOLDINGS_VIEW_MODE,
|
||||
{ emitEvent: false }
|
||||
);
|
||||
} else if (this.holdingType === 'CLOSED') {
|
||||
this.viewModeFormControl.setValue(
|
||||
HomeHoldingsComponent.DEFAULT_HOLDINGS_VIEW_MODE,
|
||||
{ emitEvent: false }
|
||||
);
|
||||
}
|
||||
|
||||
this.holdings = undefined;
|
||||
|
||||
this.fetchHoldings()
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(({ holdings }) => {
|
||||
this.holdings = holdings;
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -14,10 +14,10 @@
|
||||
[formControl]="viewModeFormControl"
|
||||
[hideSingleSelectionIndicator]="true"
|
||||
>
|
||||
<mat-button-toggle value="TABLE">
|
||||
<mat-button-toggle i18n-title title="Table" value="TABLE">
|
||||
<ion-icon name="reorder-four-outline" />
|
||||
</mat-button-toggle>
|
||||
<mat-button-toggle value="CHART">
|
||||
<mat-button-toggle i18n-title title="Chart" value="CHART">
|
||||
<ion-icon name="grid-outline" />
|
||||
</mat-button-toggle>
|
||||
</mat-button-toggle-group>
|
||||
@ -41,7 +41,8 @@
|
||||
[holdings]="holdings"
|
||||
(treemapChartClicked)="onSymbolClicked($event)"
|
||||
/>
|
||||
} @else if (viewModeFormControl.value === 'TABLE') {
|
||||
}
|
||||
<div [ngClass]="{ 'd-none': viewModeFormControl.value !== 'TABLE' }">
|
||||
<gf-holdings-table
|
||||
[baseCurrency]="user?.settings?.baseCurrency"
|
||||
[deviceType]="deviceType"
|
||||
@ -60,7 +61,7 @@
|
||||
>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,3 +1,9 @@
|
||||
:host {
|
||||
display: block;
|
||||
|
||||
.mat-button-toggle-group {
|
||||
.mat-button-toggle-appearance-standard {
|
||||
--mat-standard-button-toggle-height: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ import { LayoutService } from '@ghostfolio/client/core/layout.service';
|
||||
import { DataService } from '@ghostfolio/client/services/data.service';
|
||||
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
|
||||
import { UserService } from '@ghostfolio/client/services/user/user.service';
|
||||
import { NUMERICAL_PRECISION_THRESHOLD } from '@ghostfolio/common/config';
|
||||
import {
|
||||
LineChartItem,
|
||||
PortfolioPerformance,
|
||||
@ -34,6 +35,7 @@ export class HomeOverviewComponent implements OnDestroy, OnInit {
|
||||
public isAllTimeLow: boolean;
|
||||
public isLoadingPerformance = true;
|
||||
public performance: PortfolioPerformance;
|
||||
public precision = 2;
|
||||
public showDetails = false;
|
||||
public unit: string;
|
||||
public user: User;
|
||||
@ -67,6 +69,12 @@ export class HomeOverviewComponent implements OnDestroy, OnInit {
|
||||
public ngOnInit() {
|
||||
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
|
||||
|
||||
this.showDetails =
|
||||
!this.user.settings.isRestrictedView &&
|
||||
this.user.settings.viewMode !== 'ZEN';
|
||||
|
||||
this.unit = this.showDetails ? this.user.settings.baseCurrency : '%';
|
||||
|
||||
this.impersonationStorageService
|
||||
.onChangeHasImpersonation()
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
@ -81,12 +89,6 @@ export class HomeOverviewComponent implements OnDestroy, OnInit {
|
||||
.subscribe(() => {
|
||||
this.update();
|
||||
});
|
||||
|
||||
this.showDetails =
|
||||
!this.user.settings.isRestrictedView &&
|
||||
this.user.settings.viewMode !== 'ZEN';
|
||||
|
||||
this.unit = this.showDetails ? this.user.settings.baseCurrency : '%';
|
||||
}
|
||||
|
||||
public onChangeDateRange(dateRange: DateRange) {
|
||||
@ -134,6 +136,14 @@ export class HomeOverviewComponent implements OnDestroy, OnInit {
|
||||
}
|
||||
);
|
||||
|
||||
if (
|
||||
this.deviceType === 'mobile' &&
|
||||
this.performance.currentValueInBaseCurrency >=
|
||||
NUMERICAL_PRECISION_THRESHOLD
|
||||
) {
|
||||
this.precision = 0;
|
||||
}
|
||||
|
||||
this.isLoadingPerformance = false;
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
|
@ -88,6 +88,7 @@
|
||||
[isLoading]="isLoadingPerformance"
|
||||
[locale]="user?.settings?.locale"
|
||||
[performance]="performance"
|
||||
[precision]="precision"
|
||||
[showDetails]="showDetails"
|
||||
[unit]="unit"
|
||||
/>
|
||||
|
@ -14,7 +14,6 @@ import {
|
||||
ElementRef,
|
||||
Input,
|
||||
OnChanges,
|
||||
OnInit,
|
||||
ViewChild
|
||||
} from '@angular/core';
|
||||
import { CountUp } from 'countup.js';
|
||||
@ -26,7 +25,7 @@ import { isNumber } from 'lodash';
|
||||
templateUrl: './portfolio-performance.component.html',
|
||||
styleUrls: ['./portfolio-performance.component.scss']
|
||||
})
|
||||
export class PortfolioPerformanceComponent implements OnChanges, OnInit {
|
||||
export class PortfolioPerformanceComponent implements OnChanges {
|
||||
@Input() deviceType: string;
|
||||
@Input() errors: ResponseError['errors'];
|
||||
@Input() isAllTimeHigh: boolean;
|
||||
@ -34,6 +33,7 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit {
|
||||
@Input() isLoading: boolean;
|
||||
@Input() locale = getLocale();
|
||||
@Input() performance: PortfolioPerformance;
|
||||
@Input() precision: number;
|
||||
@Input() showDetails: boolean;
|
||||
@Input() unit: string;
|
||||
|
||||
@ -41,9 +41,9 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit {
|
||||
|
||||
public constructor() {}
|
||||
|
||||
public ngOnInit() {}
|
||||
|
||||
public ngOnChanges() {
|
||||
this.precision = this.precision >= 0 ? this.precision : 2;
|
||||
|
||||
if (this.isLoading) {
|
||||
if (this.value?.nativeElement) {
|
||||
this.value.nativeElement.innerHTML = '';
|
||||
@ -52,11 +52,7 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit {
|
||||
if (isNumber(this.performance?.currentValueInBaseCurrency)) {
|
||||
new CountUp('value', this.performance?.currentValueInBaseCurrency, {
|
||||
decimal: getNumberFormatDecimal(this.locale),
|
||||
decimalPlaces:
|
||||
this.deviceType === 'mobile' &&
|
||||
this.performance?.currentValueInBaseCurrency >= 100000
|
||||
? 0
|
||||
: 2,
|
||||
decimalPlaces: this.precision,
|
||||
duration: 1,
|
||||
separator: getNumberFormatGroup(this.locale)
|
||||
}).start();
|
||||
|
@ -47,6 +47,7 @@ export class UserAccountSettingsComponent implements OnDestroy, OnInit {
|
||||
public isWebAuthnEnabled: boolean;
|
||||
public language = document.documentElement.lang;
|
||||
public locales = [
|
||||
'ca',
|
||||
'de',
|
||||
'de-CH',
|
||||
'en-GB',
|
||||
|
@ -72,6 +72,14 @@
|
||||
<mat-option [value]="null" />
|
||||
<mat-option value="de">Deutsch</mat-option>
|
||||
<mat-option value="en">English</mat-option>
|
||||
@if (user?.settings?.isExperimentalFeatures) {
|
||||
<!--
|
||||
<mat-option value="ca"
|
||||
>Català (<ng-container i18n>Community</ng-container
|
||||
>)</mat-option
|
||||
>
|
||||
-->
|
||||
}
|
||||
@if (user?.settings?.isExperimentalFeatures) {
|
||||
<mat-option value="zh"
|
||||
>Chinese (<ng-container i18n>Community</ng-container
|
||||
@ -95,10 +103,12 @@
|
||||
>)</mat-option
|
||||
>
|
||||
@if (user?.settings?.isExperimentalFeatures) {
|
||||
<mat-option value="pl"
|
||||
>Polski (<ng-container i18n>Community</ng-container
|
||||
>)</mat-option
|
||||
>
|
||||
<!--
|
||||
<mat-option value="pl"
|
||||
>Polski (<ng-container i18n>Community</ng-container
|
||||
>)</mat-option
|
||||
>
|
||||
-->
|
||||
}
|
||||
<mat-option value="pt"
|
||||
>Português (<ng-container i18n>Community</ng-container
|
||||
@ -196,25 +206,23 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@if (hasPermissionToUpdateUserSettings) {
|
||||
<div class="align-items-center d-flex mt-4 py-1">
|
||||
<div class="pr-1 w-50">
|
||||
<div i18n>Experimental Features</div>
|
||||
<div class="hint-text text-muted" i18n>
|
||||
Sneak peek at upcoming functionality
|
||||
</div>
|
||||
</div>
|
||||
<div class="pl-1 w-50">
|
||||
<mat-slide-toggle
|
||||
color="primary"
|
||||
hideIcon="true"
|
||||
[checked]="user.settings.isExperimentalFeatures"
|
||||
[disabled]="!hasPermissionToUpdateUserSettings"
|
||||
(change)="onExperimentalFeaturesChange($event)"
|
||||
/>
|
||||
<div class="align-items-center d-flex mt-4 py-1">
|
||||
<div class="pr-1 w-50">
|
||||
<div i18n>Experimental Features</div>
|
||||
<div class="hint-text text-muted" i18n>
|
||||
Sneak peek at upcoming functionality
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="pl-1 w-50">
|
||||
<mat-slide-toggle
|
||||
color="primary"
|
||||
hideIcon="true"
|
||||
[checked]="user.settings.isExperimentalFeatures"
|
||||
[disabled]="!hasPermissionToUpdateUserSettings"
|
||||
(change)="onExperimentalFeaturesChange($event)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="align-items-center d-flex mt-4 py-1">
|
||||
<div class="pr-1 w-50">
|
||||
Ghostfolio <ng-container i18n>User ID</ng-container>
|
||||
|
@ -242,9 +242,11 @@
|
||||
<h4 i18n>Multi-Language</h4>
|
||||
<p class="m-0">
|
||||
Use Ghostfolio in multiple languages: English,
|
||||
<!-- Chinese, -->Dutch, French, German, Italian,
|
||||
<!-- Polish, -->Portuguese, Spanish and Turkish are currently
|
||||
supported.
|
||||
<!--Català, -->
|
||||
<!-- Chinese, -->
|
||||
Dutch, French, German, Italian,
|
||||
<!-- Polish, -->
|
||||
Portuguese, Spanish and Turkish are currently supported.
|
||||
</p>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
@ -186,6 +186,14 @@
|
||||
title="Sackgeld.com – Apps für ein höheres Sackgeld"
|
||||
></a>
|
||||
</div>
|
||||
<div class="align-items-center col-md-3 d-flex justify-content-center my-1">
|
||||
<a
|
||||
class="d-block logo logo-selfh-st mask"
|
||||
href="https://selfh.st"
|
||||
target="_blank"
|
||||
title="selfh.st — Self-hosted content and software"
|
||||
></a>
|
||||
</div>
|
||||
<div class="col-md-3 d-flex justify-content-center my-1">
|
||||
<a
|
||||
class="d-block logo logo-sourceforge mask"
|
||||
|
@ -80,6 +80,11 @@
|
||||
mask-image: url('/assets/images/logo-sackgeld.png');
|
||||
}
|
||||
|
||||
&.logo-selfh-st {
|
||||
mask-image: url('/assets/images/logo-selfh-st.svg');
|
||||
max-height: 1.25rem;
|
||||
}
|
||||
|
||||
&.logo-sourceforge {
|
||||
mask-image: url('/assets/images/logo-sourceforge.svg');
|
||||
}
|
||||
@ -131,6 +136,7 @@
|
||||
&.logo-privacy-tools,
|
||||
&.logo-reddit,
|
||||
&.logo-sackgeld,
|
||||
&.logo-selfh-st,
|
||||
&.logo-sourceforge,
|
||||
&.logo-umbrel,
|
||||
&.logo-unraid {
|
||||
|
@ -51,9 +51,10 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
public filteredTagsObservable: Observable<Tag[]> = of([]);
|
||||
public isLoading = false;
|
||||
public isToday = isToday;
|
||||
public mode: 'create' | 'update';
|
||||
public platforms: { id: string; name: string }[];
|
||||
public separatorKeysCodes: number[] = [ENTER, COMMA];
|
||||
public tags: Tag[] = [];
|
||||
public separatorKeysCodes: number[] = [COMMA, ENTER];
|
||||
public tagsAvailable: Tag[] = [];
|
||||
public total = 0;
|
||||
public typesTranslationMap = new Map<Type, string>();
|
||||
public Validators = Validators;
|
||||
@ -71,6 +72,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
) {}
|
||||
|
||||
public ngOnInit() {
|
||||
this.mode = this.data.activity.id ? 'update' : 'create';
|
||||
this.locale = this.data.user?.settings?.locale;
|
||||
this.dateAdapter.setLocale(this.locale);
|
||||
|
||||
@ -79,7 +81,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
this.currencies = currencies;
|
||||
this.defaultDateFormat = getDateFormatString(this.locale);
|
||||
this.platforms = platforms;
|
||||
this.tags = tags.map(({ id, name }) => {
|
||||
this.tagsAvailable = tags.map(({ id, name }) => {
|
||||
return {
|
||||
id,
|
||||
name: translate(name)
|
||||
@ -92,7 +94,9 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
|
||||
this.activityForm = this.formBuilder.group({
|
||||
accountId: [
|
||||
this.data.accounts.length === 1 && !this.data.activity?.accountId
|
||||
this.data.accounts.length === 1 &&
|
||||
!this.data.activity?.accountId &&
|
||||
this.mode === 'create'
|
||||
? this.data.accounts[0].id
|
||||
: this.data.activity?.accountId,
|
||||
Validators.required
|
||||
@ -283,7 +287,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
].valueChanges.pipe(
|
||||
startWith(this.activityForm.get('tags').value),
|
||||
map((aTags: Tag[] | null) => {
|
||||
return aTags ? this.filterTags(aTags) : this.tags.slice();
|
||||
return aTags ? this.filterTags(aTags) : this.tagsAvailable.slice();
|
||||
})
|
||||
);
|
||||
|
||||
@ -437,10 +441,11 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
public onAddTag(event: MatAutocompleteSelectedEvent) {
|
||||
this.activityForm.get('tags').setValue([
|
||||
...(this.activityForm.get('tags').value ?? []),
|
||||
this.tags.find(({ id }) => {
|
||||
this.tagsAvailable.find(({ id }) => {
|
||||
return id === event.option.value;
|
||||
})
|
||||
]);
|
||||
|
||||
this.tagInput.nativeElement.value = '';
|
||||
}
|
||||
|
||||
@ -479,18 +484,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
};
|
||||
|
||||
try {
|
||||
if (this.data.activity.id) {
|
||||
(activity as UpdateOrderDto).id = this.data.activity.id;
|
||||
|
||||
await validateObjectForForm({
|
||||
classDto: UpdateOrderDto,
|
||||
form: this.activityForm,
|
||||
ignoreFields: ['dataSource', 'date'],
|
||||
object: activity as UpdateOrderDto
|
||||
});
|
||||
|
||||
this.dialogRef.close(activity as UpdateOrderDto);
|
||||
} else {
|
||||
if (this.mode === 'create') {
|
||||
(activity as CreateOrderDto).updateAccountBalance =
|
||||
this.activityForm.get('updateAccountBalance').value;
|
||||
|
||||
@ -502,6 +496,17 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
});
|
||||
|
||||
this.dialogRef.close(activity as CreateOrderDto);
|
||||
} else {
|
||||
(activity as UpdateOrderDto).id = this.data.activity.id;
|
||||
|
||||
await validateObjectForForm({
|
||||
classDto: UpdateOrderDto,
|
||||
form: this.activityForm,
|
||||
ignoreFields: ['dataSource', 'date'],
|
||||
object: activity as UpdateOrderDto
|
||||
});
|
||||
|
||||
this.dialogRef.close(activity as UpdateOrderDto);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
@ -514,12 +519,12 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
}
|
||||
|
||||
private filterTags(aTags: Tag[]) {
|
||||
const tagIds = aTags.map((tag) => {
|
||||
return tag.id;
|
||||
const tagIds = aTags.map(({ id }) => {
|
||||
return id;
|
||||
});
|
||||
|
||||
return this.tags.filter((tag) => {
|
||||
return !tagIds.includes(tag.id);
|
||||
return this.tagsAvailable.filter(({ id }) => {
|
||||
return !tagIds.includes(id);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -4,10 +4,10 @@
|
||||
(keyup.enter)="activityForm.valid && onSubmit()"
|
||||
(ngSubmit)="onSubmit()"
|
||||
>
|
||||
@if (data.activity.id) {
|
||||
<h1 i18n mat-dialog-title>Update activity</h1>
|
||||
} @else {
|
||||
@if (mode === 'create') {
|
||||
<h1 i18n mat-dialog-title>Add activity</h1>
|
||||
} @else {
|
||||
<h1 i18n mat-dialog-title>Update activity</h1>
|
||||
}
|
||||
<div class="flex-grow-1 py-3" mat-dialog-content>
|
||||
<div class="mb-3">
|
||||
@ -76,16 +76,17 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div [ngClass]="{ 'mb-3': data.activity.id }">
|
||||
<div [ngClass]="{ 'mb-3': mode === 'update' }">
|
||||
<mat-form-field
|
||||
appearance="outline"
|
||||
class="w-100"
|
||||
[ngClass]="{ 'mb-1 without-hint': !data.activity.id }"
|
||||
[ngClass]="{ 'mb-1 without-hint': mode === 'create' }"
|
||||
>
|
||||
<mat-label i18n>Account</mat-label>
|
||||
<mat-select formControlName="accountId">
|
||||
@if (
|
||||
!activityForm.get('accountId').hasValidator(Validators.required)
|
||||
!activityForm.get('accountId').hasValidator(Validators.required) ||
|
||||
(!activityForm.get('accountId').value && mode === 'update')
|
||||
) {
|
||||
<mat-option [value]="null" />
|
||||
}
|
||||
@ -106,7 +107,7 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="mb-3" [ngClass]="{ 'd-none': data.activity.id }">
|
||||
<div class="mb-3" [ngClass]="{ 'd-none': mode === 'update' }">
|
||||
<mat-checkbox color="primary" formControlName="updateAccountBalance" i18n
|
||||
>Update Cash Balance</mat-checkbox
|
||||
>
|
||||
@ -377,11 +378,11 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="mb-3" [ngClass]="{ 'd-none': tags?.length < 1 }">
|
||||
<div class="mb-3" [ngClass]="{ 'd-none': tagsAvailable?.length < 1 }">
|
||||
<mat-form-field appearance="outline" class="w-100">
|
||||
<mat-label i18n>Tags</mat-label>
|
||||
<mat-chip-grid #tagsChipList>
|
||||
@for (tag of activityForm.get('tags')?.value; track tag) {
|
||||
@for (tag of activityForm.get('tags')?.value; track tag.id) {
|
||||
<mat-chip-row
|
||||
matChipRemove
|
||||
[removable]="true"
|
||||
@ -403,7 +404,7 @@
|
||||
#autocompleteTags="matAutocomplete"
|
||||
(optionSelected)="onAddTag($event)"
|
||||
>
|
||||
@for (tag of filteredTagsObservable | async; track tag) {
|
||||
@for (tag of filteredTagsObservable | async; track tag.id) {
|
||||
<mat-option [value]="tag.id">
|
||||
{{ tag.name }}
|
||||
</mat-option>
|
||||
|
@ -253,7 +253,8 @@
|
||||
} @else {
|
||||
{{ baseCurrency }} <strong>{{ price }}</strong>
|
||||
}
|
||||
<span i18n>per year</span></span
|
||||
<span> </span>
|
||||
<span i18n>per year</span></span
|
||||
>
|
||||
</p>
|
||||
@if (
|
||||
|
@ -152,7 +152,7 @@
|
||||
</div>
|
||||
<div class="row my-5">
|
||||
<div class="col-md-10 offset-md-1">
|
||||
<h2 class="h4 mb-1 text-center">
|
||||
<h2 class="h4 mb-1 text-center" i18n>
|
||||
Would you like to <strong>refine</strong> your
|
||||
<strong>personal investment strategy</strong>?
|
||||
</h2>
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { DataService } from '@ghostfolio/client/services/data.service';
|
||||
import { Product } from '@ghostfolio/common/interfaces';
|
||||
import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
@ -26,6 +27,7 @@ export class GfProductPageComponent implements OnInit {
|
||||
'/' + $localize`resources`,
|
||||
'personal-finance-tools'
|
||||
];
|
||||
public tags: string[];
|
||||
|
||||
public constructor(
|
||||
private dataService: DataService,
|
||||
@ -56,7 +58,7 @@ export class GfProductPageComponent implements OnInit {
|
||||
],
|
||||
name: 'Ghostfolio',
|
||||
origin: $localize`Switzerland`,
|
||||
region: $localize`Global`,
|
||||
regions: [$localize`Global`],
|
||||
slogan: 'Open Source Wealth Management',
|
||||
useAnonymously: true
|
||||
};
|
||||
@ -64,5 +66,41 @@ export class GfProductPageComponent implements OnInit {
|
||||
this.product2 = personalFinanceTools.find(({ key }) => {
|
||||
return key === this.route.snapshot.data['key'];
|
||||
});
|
||||
|
||||
if (this.product2.origin) {
|
||||
this.product2.origin = translate(this.product2.origin);
|
||||
}
|
||||
|
||||
if (this.product2.regions) {
|
||||
this.product2.regions = this.product2.regions.map((region) => {
|
||||
return translate(region);
|
||||
});
|
||||
}
|
||||
|
||||
this.tags = [
|
||||
this.product1.name,
|
||||
this.product2.name,
|
||||
$localize`Alternative`,
|
||||
$localize`App`,
|
||||
$localize`Budgeting`,
|
||||
$localize`Community`,
|
||||
$localize`Family Office`,
|
||||
`Fintech`,
|
||||
$localize`Investment`,
|
||||
$localize`Investor`,
|
||||
$localize`Open Source`,
|
||||
`OSS`,
|
||||
$localize`Personal Finance`,
|
||||
$localize`Privacy`,
|
||||
$localize`Portfolio`,
|
||||
$localize`Software`,
|
||||
$localize`Tool`,
|
||||
$localize`User Experience`,
|
||||
$localize`Wealth`,
|
||||
$localize`Wealth Management`,
|
||||
`WealthTech`
|
||||
].sort((a, b) => {
|
||||
return a.localeCompare(b, undefined, { sensitivity: 'base' });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -80,8 +80,24 @@
|
||||
</tr>
|
||||
<tr class="mat-mdc-row">
|
||||
<td class="mat-mdc-cell px-3 py-2 text-right" i18n>Region</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">{{ product1.region }}</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">{{ product2.region }}</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@for (
|
||||
region of product1.regions;
|
||||
track region;
|
||||
let isLast = $last
|
||||
) {
|
||||
{{ region }}{{ isLast ? '' : ', ' }}
|
||||
}
|
||||
</td>
|
||||
<td class="mat-mdc-cell px-1 py-2">
|
||||
@for (
|
||||
region of product2.regions;
|
||||
track region;
|
||||
let isLast = $last
|
||||
) {
|
||||
{{ region }}{{ isLast ? '' : ', ' }}
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="mat-mdc-row">
|
||||
<td class="mat-mdc-cell px-3 py-2 text-right" i18n>
|
||||
@ -236,69 +252,11 @@
|
||||
</section>
|
||||
<section class="mb-4">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Alternative</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">App</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Budgeting</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Community</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Family Office</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Fintech</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">{{ product1.name }}</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Investment</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Investor</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Open Source</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">OSS</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Personal Finance</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Privacy</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Portfolio</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Software</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Tool</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">User Experience</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Wealth</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">WealthTech</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Wealth Management</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">{{ product2.name }}</span>
|
||||
</li>
|
||||
@for (tag of tags; track tag) {
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">{{ tag }}</span>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</section>
|
||||
<nav aria-label="breadcrumb">
|
||||
|
@ -47,7 +47,8 @@ import { SortDirection } from '@angular/material/sort';
|
||||
import {
|
||||
AccountBalance,
|
||||
DataSource,
|
||||
Order as OrderModel
|
||||
Order as OrderModel,
|
||||
Tag
|
||||
} from '@prisma/client';
|
||||
import { format, parseISO } from 'date-fns';
|
||||
import { cloneDeep, groupBy, isNumber } from 'lodash';
|
||||
@ -649,6 +650,17 @@ export class DataService {
|
||||
return this.http.put<void>(`/api/v1/admin/settings/${key}`, aData);
|
||||
}
|
||||
|
||||
public putHoldingTags({
|
||||
dataSource,
|
||||
symbol,
|
||||
tags
|
||||
}: { tags: Tag[] } & UniqueAsset) {
|
||||
return this.http.put<void>(
|
||||
`/api/v1/portfolio/position/${dataSource}/${symbol}/tags`,
|
||||
{ tags }
|
||||
);
|
||||
}
|
||||
|
||||
public putOrder(aOrder: UpdateOrderDto) {
|
||||
return this.http.put<UserItem>(`/api/v1/order/${aOrder.id}`, aOrder);
|
||||
}
|
||||
|
1
apps/client/src/assets/images/logo-selfh-st.svg
Normal file
1
apps/client/src/assets/images/logo-selfh-st.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 323 87"><defs><style>.cls-1{opacity:0.1;}</style></defs><g class="cls-1"><path d="M201.13,52.72a30.78,30.78,0,0,1,3-13.73,21.72,21.72,0,0,1,8.55-9.33,24.91,24.91,0,0,1,12.94-3.31q10.48,0,17.11,6.42t7.39,17.41l.1,3.55q0,11.91-6.66,19.11T225.68,80q-11.2,0-17.88-7.17t-6.67-19.53Zm13.83,1q0,7.38,2.77,11.29a10,10,0,0,0,15.79.05q2.83-3.87,2.83-12.34,0-7.25-2.83-11.22a9.18,9.18,0,0,0-7.94-4,9,9,0,0,0-7.85,4C215.88,44.09,215,48.18,215,53.7Z"/></g><path d="M35.37,64.78a4.47,4.47,0,0,0-2.52-4,28.42,28.42,0,0,0-8.06-2.6Q6.33,54.3,6.32,42.48A14.24,14.24,0,0,1,12,31q5.72-4.62,15-4.62,9.86,0,15.77,4.65a14.61,14.61,0,0,1,5.91,12H34.84a6.71,6.71,0,0,0-1.91-4.9q-1.92-1.93-6-1.94a8.26,8.26,0,0,0-5.4,1.58,5,5,0,0,0-1.92,4,4.27,4.27,0,0,0,2.18,3.71A22.51,22.51,0,0,0,29.15,48a60.73,60.73,0,0,1,8.7,2.32q11,4,11,13.93a13.49,13.49,0,0,1-6.08,11.46Q36.66,80,27,80a27.37,27.37,0,0,1-11.56-2.32,19.36,19.36,0,0,1-7.92-6.36,14.83,14.83,0,0,1-2.87-8.73H17.8a7.23,7.23,0,0,0,2.73,5.64,10.82,10.82,0,0,0,6.8,2,10,10,0,0,0,6-1.5A4.69,4.69,0,0,0,35.37,64.78Z"/><path d="M79.58,80q-11.39,0-18.54-7T53.89,54.44V53.1a31.28,31.28,0,0,1,3-14,22.21,22.21,0,0,1,8.54-9.47,24,24,0,0,1,12.61-3.33q10.62,0,16.73,6.7t6.1,19V57.7h-33a12.79,12.79,0,0,0,4,8.13,12.24,12.24,0,0,0,8.54,3.06q8,0,12.49-5.79l6.8,7.61a20.71,20.71,0,0,1-8.43,6.87A27.65,27.65,0,0,1,79.58,80ZM78,37.5a8.62,8.62,0,0,0-6.67,2.79,14.43,14.43,0,0,0-3.28,8H87.29V47.16A10.34,10.34,0,0,0,84.8,40,8.94,8.94,0,0,0,78,37.5Z"/><path d="M121.36,79.09H107.48V5.59h13.88Z"/><path d="M134.57,79.09V37.46h-7.71V27.31h7.71v-4.4q0-8.71,5-13.52t14-4.81a32.27,32.27,0,0,1,7,1l-.14,10.72a17.57,17.57,0,0,0-4.22-.43q-7.8,0-7.8,7.32v4.16h10.29V37.46H148.44V79.09Z"/><path d="M177.44,33a17.28,17.28,0,0,1,13.83-6.61q16.85,0,17.09,19.58V79.09H194.53V46.31q0-4.45-1.92-6.58t-6.36-2.13q-6.08,0-8.81,4.69v36.8H163.62V5.59h13.82Z"/><path d="M271.22,64.78a4.48,4.48,0,0,0-2.51-4,28.42,28.42,0,0,0-8.06-2.6q-18.48-3.88-18.47-15.7A14.22,14.22,0,0,1,247.9,31q5.72-4.62,15-4.62,9.86,0,15.77,4.65a14.64,14.64,0,0,1,5.91,12H270.7a6.68,6.68,0,0,0-1.92-4.9c-1.27-1.29-3.27-1.94-6-1.94a8.31,8.31,0,0,0-5.41,1.58,5,5,0,0,0-1.91,4,4.27,4.27,0,0,0,2.18,3.71A22.52,22.52,0,0,0,265,48a60.54,60.54,0,0,1,8.71,2.32q11,4,11,13.93a13.51,13.51,0,0,1-6.08,11.46Q272.52,80,262.9,80a27.37,27.37,0,0,1-11.56-2.32,19.24,19.24,0,0,1-7.92-6.36,14.83,14.83,0,0,1-2.87-8.73h13.11a7.23,7.23,0,0,0,2.73,5.64,10.79,10.79,0,0,0,6.79,2,10.07,10.07,0,0,0,6-1.5A4.71,4.71,0,0,0,271.22,64.78Z"/><path d="M308.17,14.58V27.31H317V37.46h-8.85V63.3a6.13,6.13,0,0,0,1.1,4.11c.73.83,2.13,1.25,4.21,1.25a22.24,22.24,0,0,0,4.06-.34V78.8A28.42,28.42,0,0,1,309.17,80q-14.55,0-14.83-14.69V37.46h-7.56V27.31h7.56V14.58Z"/><path d="M222.41,75.64a4.12,4.12,0,0,1,1.07-2.85,3.87,3.87,0,0,1,3-1.17,4,4,0,0,1,3,1.17,4.06,4.06,0,0,1,1.1,2.85,3.68,3.68,0,0,1-1.1,2.75,4.14,4.14,0,0,1-3,1.08,4,4,0,0,1-3-1.08A3.73,3.73,0,0,1,222.41,75.64Z"/></svg>
|
After Width: | Height: | Size: 2.9 KiB |
@ -7,10 +7,16 @@
|
||||
{
|
||||
"sizes": "192x192",
|
||||
"src": "/assets/android-chrome-192x192.png",
|
||||
"type": "image/png",
|
||||
"purpose": "any maskable"
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"purpose": "any",
|
||||
"sizes": "512x512",
|
||||
"src": "/assets/android-chrome-512x512.png",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"purpose": "maskable",
|
||||
"sizes": "512x512",
|
||||
"src": "/assets/android-chrome-512x512.png",
|
||||
"type": "image/png"
|
||||
@ -21,5 +27,5 @@
|
||||
"short_name": "Ghostfolio",
|
||||
"start_url": "/en/",
|
||||
"theme_color": "#FFFFFF",
|
||||
"url": "https://www.ghostfol.io"
|
||||
"url": "https://ghostfol.io"
|
||||
}
|
||||
|
6682
apps/client/src/locales/messages.ca.xlf
Normal file
6682
apps/client/src/locales/messages.ca.xlf
Normal file
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@
|
||||
<target state="translated">Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -106,11 +106,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -250,7 +250,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -278,7 +278,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -346,7 +346,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -478,7 +478,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -574,7 +574,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -662,7 +662,7 @@
|
||||
<target state="translated">Letzte Daten einholen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -670,7 +670,7 @@
|
||||
<target state="translated">Alle Daten einholen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -678,7 +678,7 @@
|
||||
<target state="translated">Profildaten herunterladen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -854,7 +854,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1006,7 +1006,7 @@
|
||||
<target state="translated">Registrieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1034,7 +1034,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -1042,7 +1042,7 @@
|
||||
<target state="translated">Aktivitäten verwalten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
|
||||
@ -1070,7 +1070,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1090,7 +1090,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -1170,7 +1170,7 @@
|
||||
<target state="translated">Einlage</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1270,7 +1270,7 @@
|
||||
<target state="translated">Dividenden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1310,7 +1310,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1330,7 +1330,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
@ -1342,7 +1342,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1358,7 +1358,7 @@
|
||||
<target state="translated">Datenfehler melden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
|
||||
@ -1382,7 +1382,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1666,7 +1666,7 @@
|
||||
<target state="translated">Möchtest du diese Anmeldemethode wirklich löschen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
|
||||
@ -1698,7 +1698,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -1738,7 +1738,7 @@
|
||||
<target state="translated">Lokalität</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1746,7 +1746,7 @@
|
||||
<target state="translated">Datums- und Zahlenformat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1754,7 +1754,7 @@
|
||||
<target state="translated">Zen Modus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1766,7 +1766,7 @@
|
||||
<target state="translated"> Einloggen mit Fingerabdruck </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1778,7 +1778,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2234,7 +2234,7 @@
|
||||
<target state="translated">Anzahl</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2310,7 +2310,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2630,7 +2630,7 @@
|
||||
<target state="translated">Änderung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2642,7 +2642,7 @@
|
||||
<target state="translated">Ø Preis pro Einheit</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -2650,7 +2650,7 @@
|
||||
<target state="translated">Minimum Preis</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -2658,7 +2658,7 @@
|
||||
<target state="translated">Maximum Preis</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27fe3d097c64eaec7ff564358f80fb7ba795f484" datatype="html">
|
||||
@ -2678,7 +2678,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2694,7 +2694,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -2710,7 +2710,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="034c2b473d0b76acbc938453375b13cb2491dc17" datatype="html">
|
||||
@ -2838,7 +2838,7 @@
|
||||
<target state="translated">Filtern nach...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -2866,7 +2866,7 @@
|
||||
<target state="translated">Experimentelle Funktionen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2914,7 +2914,7 @@
|
||||
<target state="translated">Aussehen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2922,7 +2922,7 @@
|
||||
<target state="translated">Automatisch</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2930,7 +2930,7 @@
|
||||
<target state="translated">Hell</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2938,7 +2938,7 @@
|
||||
<target state="translated">Dunkel</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3110,7 +3110,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4893616715766810081" datatype="html">
|
||||
@ -3118,11 +3118,11 @@
|
||||
<target state="translated">Keine Daten verfügbar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1228771048078164312" datatype="html">
|
||||
@ -3202,15 +3202,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3222,19 +3214,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html">
|
||||
@ -3458,15 +3454,15 @@
|
||||
<target state="translated"> Unbeschwertes Erlebnis für turbulente Zeiten </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="translated"> Vorschau auf kommende Funktionalität </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -3566,7 +3562,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fd30b4e3189726798f09fa0ce875486cf50dda2d" datatype="html">
|
||||
@ -3678,7 +3674,7 @@
|
||||
<target state="translated">Einmalige Zahlung, keine automatische Erneuerung.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -3686,7 +3682,7 @@
|
||||
<target state="translated"> Jetzt loslegen </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -3694,7 +3690,7 @@
|
||||
<target state="translated">Es ist kostenlos.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c20172223f84462032664d717d739297e5a9e2fe" datatype="html">
|
||||
@ -3702,7 +3698,7 @@
|
||||
<target state="translated">Gebühren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -3862,7 +3858,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de0d77a5255f97548d2b579f78c20c911a71820f" datatype="html">
|
||||
@ -4298,7 +4294,7 @@
|
||||
<target state="translated">Open Source Software</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4230401090765872563" datatype="html">
|
||||
@ -4562,7 +4558,7 @@
|
||||
<target state="translated">ETFs ohne Länder</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -4570,7 +4566,7 @@
|
||||
<target state="translated">ETFs ohne Sektoren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ee8f8008bae6ce3a49840c4e1d39b4af23d4c263" datatype="html">
|
||||
@ -4706,7 +4702,7 @@
|
||||
<target state="translated">Biometrische Authentifizierung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4790,7 +4786,7 @@
|
||||
<target state="translated">Daten exportieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -4798,7 +4794,7 @@
|
||||
<target state="translated">Währungen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5d27ff889e9ac6d1f33ba419ec2d5fe923cfe3" datatype="html">
|
||||
@ -4890,7 +4886,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -4914,7 +4910,7 @@
|
||||
<target state="translated"> Schützen Sie Ihr <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Vermögen<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Optimieren Sie Ihre <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>persönliche Anlagestrategie<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -4922,7 +4918,7 @@
|
||||
<target state="translated"> Ghostfolio ermöglicht es geschäftigen Leuten, den Überblick über Aktien, ETFs oder Kryptowährungen zu behalten, ohne überwacht zu werden. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -4930,7 +4926,7 @@
|
||||
<target state="translated">360° Ansicht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -4938,7 +4934,7 @@
|
||||
<target state="translated">Web3 ready</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -4946,7 +4942,7 @@
|
||||
<target state="translated"> Nutze Ghostfolio ganz anonym und behalte deine Finanzdaten. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -4954,7 +4950,7 @@
|
||||
<target state="translated">Open Source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -4962,7 +4958,7 @@
|
||||
<target state="translated"> Profitiere von kontinuierlichen Verbesserungen durch eine aktive Community. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -4970,7 +4966,7 @@
|
||||
<target state="translated">Warum <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -4978,7 +4974,7 @@
|
||||
<target state="translated"> Ghostfolio ist für dich geeignet, wenn du... </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -4986,7 +4982,7 @@
|
||||
<target state="translated">Aktien, ETFs oder Kryptowährungen auf unterschiedlichen Plattformen handelst</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -4994,7 +4990,7 @@
|
||||
<target state="translated">eine Buy & Hold Strategie verfolgst</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -5002,7 +4998,7 @@
|
||||
<target state="translated">dich für die Zusammensetzung deines Portfolios interessierst</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -5010,7 +5006,7 @@
|
||||
<target state="translated">Privatsphäre und Datenhoheit wertschätzt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -5018,7 +5014,7 @@
|
||||
<target state="translated">zum Frugalismus oder Minimalismus neigst</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -5026,7 +5022,7 @@
|
||||
<target state="translated">dich um die Diversifizierung deiner finanziellen Mittel kümmerst</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -5034,7 +5030,7 @@
|
||||
<target state="translated">Interesse an finanzieller Freiheit hast</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -5042,7 +5038,7 @@
|
||||
<target state="translated">Nein sagst zu Excel-Tabellen im Jahr <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -5050,7 +5046,7 @@
|
||||
<target state="translated">diese Liste bis zum Ende liest</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -5058,7 +5054,7 @@
|
||||
<target state="translated">Erfahre mehr über Ghostfolio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -5066,7 +5062,7 @@
|
||||
<target state="translated"> Was unsere <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Nutzer<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> sagen </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -5074,7 +5070,7 @@
|
||||
<target state="translated"> Nutzer aus aller Welt verwenden <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -5082,7 +5078,7 @@
|
||||
<target state="translated"> Wie funktioniert <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> ? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -5090,7 +5086,7 @@
|
||||
<target state="translated">Registriere dich anonym*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -5098,7 +5094,7 @@
|
||||
<target state="translated"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* Keine E-Mail-Adresse oder Kreditkarte erforderlich<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -5106,7 +5102,7 @@
|
||||
<target state="translated"> Füge historische Transaktionen hinzu </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -5114,7 +5110,7 @@
|
||||
<target state="translated"> Erhalte nützliche Erkenntnisse über die Zusammensetzung deines Portfolios </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -5122,7 +5118,7 @@
|
||||
<target state="translated"> Bist <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>du<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> bereit? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -5134,7 +5130,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -5142,7 +5138,7 @@
|
||||
<target state="translated"> Verschaffe dir einen vollständigen Überblick deiner persönlichen Finanzen über mehrere Plattformen hinweg. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -5150,7 +5146,7 @@
|
||||
<target state="translated">Beginne mit nur 3 Schritten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4656883433287439415" datatype="html">
|
||||
@ -6202,7 +6198,7 @@
|
||||
<target state="translated">Die Marktdaten sind verzögert für</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6454,7 +6450,7 @@
|
||||
<target state="translated">Aktiv</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6462,7 +6458,7 @@
|
||||
<target state="translated">Abgeschlossen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6470,7 +6466,7 @@
|
||||
<target state="translated">Aktivität</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6478,7 +6474,7 @@
|
||||
<target state="translated">Dividendenrendite</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6518,7 +6514,7 @@
|
||||
<target state="translated">Änderung mit Währungseffekt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6526,7 +6522,7 @@
|
||||
<target state="translated">Performance mit Währungseffekt</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6566,7 +6562,7 @@
|
||||
<target state="translated">Möchtest du dieses Ghostfolio Konto wirklich schliessen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6574,7 +6570,7 @@
|
||||
<target state="translated">Gefahrenzone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6582,7 +6578,7 @@
|
||||
<target state="translate">Konto schliessen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6606,7 +6602,7 @@
|
||||
<target state="translated"> Melde dich jetzt an <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> oder probiere die Live Demo aus<x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6614,7 +6610,7 @@
|
||||
<target state="translated">Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6630,7 +6626,7 @@
|
||||
<target state="translated">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6638,7 +6634,7 @@
|
||||
<target state="translated">Profile löschen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6657,6 +6653,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="translated">Tabelle</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="translated">Diagramm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="translated"> Möchtest du deine <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>persönliche Anlagestrategie verfeinern<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
</xliff>
|
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
||||
<target state="translated">Le risque de perte en investissant peut être important. Il est déconseillé d’investir de l’argent dont vous pourriez avoir besoin à court terme.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -118,11 +118,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -306,7 +306,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -334,7 +334,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -394,7 +394,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -534,7 +534,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -622,7 +622,7 @@
|
||||
<target state="translated">Filtrer par...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -642,7 +642,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -666,7 +666,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -686,7 +686,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -734,7 +734,7 @@
|
||||
<target state="translated">Obtenir les Données Récentes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -742,7 +742,7 @@
|
||||
<target state="translated">Obtenir toutes les Données</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -750,7 +750,7 @@
|
||||
<target state="translated">Obtenir les Données du Profil</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -774,7 +774,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -790,7 +790,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fc61416d48adb7af122b8697e806077eb251fb57" datatype="html">
|
||||
@ -806,7 +806,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -826,7 +826,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="638bbddabc5883a7a4087f45592944ce6558409c" datatype="html">
|
||||
@ -942,7 +942,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1066,7 +1066,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1102,7 +1102,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1346,7 +1346,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -1354,7 +1354,7 @@
|
||||
<target state="translated">Gérer les Activités</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5486880308148746399" datatype="html">
|
||||
@ -1422,7 +1422,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1442,7 +1442,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -1510,7 +1510,7 @@
|
||||
<target state="translated">Investissement</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1618,7 +1618,7 @@
|
||||
<target state="translated">Dividende</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1650,7 +1650,7 @@
|
||||
<target state="translated">Différence</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1662,7 +1662,7 @@
|
||||
<target state="translated">Prix Unitaire Moyen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -1670,7 +1670,7 @@
|
||||
<target state="translated">Prix Minimum</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -1678,7 +1678,7 @@
|
||||
<target state="translated">Prix Maximum</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca30c1aa79fb5ab487fbd2caa4ca01f2f6691d70" datatype="html">
|
||||
@ -1686,7 +1686,7 @@
|
||||
<target state="translated">Quantité</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1702,7 +1702,7 @@
|
||||
<target state="translated">Signaler une Erreur de Données</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6048892649018070225" datatype="html">
|
||||
@ -1930,7 +1930,7 @@
|
||||
<target state="translated">Voulez-vous vraiment supprimer cette méthode de connexion ?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
|
||||
@ -1962,7 +1962,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -2014,15 +2014,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -2034,19 +2026,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6b939b00e8481ed8aa8a24d8add7a209d7116759" datatype="html">
|
||||
@ -2054,7 +2050,7 @@
|
||||
<target state="translated">Paramètres régionaux</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -2062,7 +2058,7 @@
|
||||
<target state="translated">Format de date et d’heure</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -2070,7 +2066,7 @@
|
||||
<target state="translated">Apparence</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2078,7 +2074,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2086,7 +2082,7 @@
|
||||
<target state="translated">Clair</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2094,7 +2090,7 @@
|
||||
<target state="translated">Sombre</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -2102,7 +2098,7 @@
|
||||
<target state="translated">Mode Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2114,7 +2110,7 @@
|
||||
<target state="new"> Se connecter avec empreinte </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -2122,7 +2118,7 @@
|
||||
<target state="translated">Fonctionnalités expérimentales</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -2134,7 +2130,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2866,7 +2862,7 @@
|
||||
<target state="translated">Démarrer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -3174,7 +3170,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8106025670158480144" datatype="html">
|
||||
@ -3350,11 +3346,11 @@
|
||||
<target state="translated">Pas de données disponibles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0f845001c88b82c18535e6d44f5597061f506e42" datatype="html">
|
||||
@ -3458,15 +3454,15 @@
|
||||
<target state="new"> Expérience sans distraction pour les périodes tumultueuses </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="new"> Avant-première de fonctionnalités futures </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -3566,7 +3562,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fd30b4e3189726798f09fa0ce875486cf50dda2d" datatype="html">
|
||||
@ -3678,7 +3674,7 @@
|
||||
<target state="translated">Paiement unique, sans auto-renouvellement.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -3686,7 +3682,7 @@
|
||||
<target state="translated"> Démarrer </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -3694,7 +3690,7 @@
|
||||
<target state="translated">C’est gratuit.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c20172223f84462032664d717d739297e5a9e2fe" datatype="html">
|
||||
@ -3702,7 +3698,7 @@
|
||||
<target state="translated">Frais</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -3862,7 +3858,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de0d77a5255f97548d2b579f78c20c911a71820f" datatype="html">
|
||||
@ -4298,7 +4294,7 @@
|
||||
<target state="translated">Logiciel Open Source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4230401090765872563" datatype="html">
|
||||
@ -4562,7 +4558,7 @@
|
||||
<target state="new">ETFs without Countries</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -4570,7 +4566,7 @@
|
||||
<target state="new">ETFs without Sectors</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ee8f8008bae6ce3a49840c4e1d39b4af23d4c263" datatype="html">
|
||||
@ -4706,7 +4702,7 @@
|
||||
<target state="new">Biometric Authentication</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4790,7 +4786,7 @@
|
||||
<target state="new">Export Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -4798,7 +4794,7 @@
|
||||
<target state="new">Currencies</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5d27ff889e9ac6d1f33ba419ec2d5fe923cfe3" datatype="html">
|
||||
@ -4890,7 +4886,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -4914,7 +4910,7 @@
|
||||
<target state="new"> Protect your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>assets<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Refine your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -4922,7 +4918,7 @@
|
||||
<target state="new"> Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -4930,7 +4926,7 @@
|
||||
<target state="new">360° View</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -4938,7 +4934,7 @@
|
||||
<target state="new">Web3 Ready</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -4946,7 +4942,7 @@
|
||||
<target state="new"> Use Ghostfolio anonymously and own your financial data. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -4954,7 +4950,7 @@
|
||||
<target state="new">Open Source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -4962,7 +4958,7 @@
|
||||
<target state="new"> Benefit from continuous improvements through a strong community. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -4970,7 +4966,7 @@
|
||||
<target state="new">Why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -4978,7 +4974,7 @@
|
||||
<target state="new"> Ghostfolio is for you if you are... </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -4986,7 +4982,7 @@
|
||||
<target state="new">trading stocks, ETFs or cryptocurrencies on multiple platforms</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -4994,7 +4990,7 @@
|
||||
<target state="new">pursuing a buy & hold strategy</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -5002,7 +4998,7 @@
|
||||
<target state="new">interested in getting insights of your portfolio composition</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -5010,7 +5006,7 @@
|
||||
<target state="new">valuing privacy and data ownership</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -5018,7 +5014,7 @@
|
||||
<target state="new">into minimalism</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -5026,7 +5022,7 @@
|
||||
<target state="new">caring about diversifying your financial resources</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -5034,7 +5030,7 @@
|
||||
<target state="new">interested in financial independence</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -5042,7 +5038,7 @@
|
||||
<target state="new">saying no to spreadsheets in <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -5050,7 +5046,7 @@
|
||||
<target state="new">still reading this list</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -5058,7 +5054,7 @@
|
||||
<target state="new">Learn more about Ghostfolio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -5066,7 +5062,7 @@
|
||||
<target state="new"> What our <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>users<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> are saying </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -5074,7 +5070,7 @@
|
||||
<target state="new"> Members from around the globe are using <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -5082,7 +5078,7 @@
|
||||
<target state="new"> How does <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> work? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -5090,7 +5086,7 @@
|
||||
<target state="new">Sign up anonymously*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -5098,7 +5094,7 @@
|
||||
<target state="new"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* no e-mail address nor credit card required<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -5106,7 +5102,7 @@
|
||||
<target state="new"> Add any of your historical transactions </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -5114,7 +5110,7 @@
|
||||
<target state="new"> Get valuable insights of your portfolio composition </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -5122,7 +5118,7 @@
|
||||
<target state="new"> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> ready? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -5134,7 +5130,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -5142,7 +5138,7 @@
|
||||
<target state="new"> Get the full picture of your personal finances across multiple platforms. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -5150,7 +5146,7 @@
|
||||
<target state="new">Get started in only 3 steps</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4656883433287439415" datatype="html">
|
||||
@ -6202,7 +6198,7 @@
|
||||
<target state="new">Market data is delayed for</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6454,7 +6450,7 @@
|
||||
<target state="new">Active</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6462,7 +6458,7 @@
|
||||
<target state="new">Closed</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6470,7 +6466,7 @@
|
||||
<target state="new">Activity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6478,7 +6474,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6518,7 +6514,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6526,7 +6522,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6566,7 +6562,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6574,7 +6570,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6582,7 +6578,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6606,7 +6602,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6614,7 +6610,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6630,7 +6626,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6638,7 +6634,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6657,6 +6653,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -23,7 +23,7 @@
|
||||
<target state="translated">Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -107,11 +107,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -251,7 +251,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -279,7 +279,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -347,7 +347,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -479,7 +479,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -575,7 +575,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -663,7 +663,7 @@
|
||||
<target state="translated">Raccogli dati recenti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -671,7 +671,7 @@
|
||||
<target state="translated">Raccogli tutti i dati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -679,7 +679,7 @@
|
||||
<target state="translated">Raccogli i dati del profilo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -855,7 +855,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1007,7 +1007,7 @@
|
||||
<target state="translated">Inizia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1035,7 +1035,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -1043,7 +1043,7 @@
|
||||
<target state="translated">Gestione delle attività</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
|
||||
@ -1071,7 +1071,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1091,7 +1091,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -1171,7 +1171,7 @@
|
||||
<target state="translated">Investimento</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1271,7 +1271,7 @@
|
||||
<target state="translated">Dividendo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1311,7 +1311,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1331,7 +1331,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
@ -1343,7 +1343,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1359,7 +1359,7 @@
|
||||
<target state="translated">Segnala un'anomalia dei dati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
|
||||
@ -1383,7 +1383,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1667,7 +1667,7 @@
|
||||
<target state="translated">Vuoi davvero rimuovere questo metodo di accesso?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
|
||||
@ -1699,7 +1699,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -1739,7 +1739,7 @@
|
||||
<target state="translated">Locale</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1747,7 +1747,7 @@
|
||||
<target state="translated">Formato data e numero</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1755,7 +1755,7 @@
|
||||
<target state="translated">Modalità Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1767,7 +1767,7 @@
|
||||
<target state="new"> Accesso con impronta digitale </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1779,7 +1779,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2235,7 +2235,7 @@
|
||||
<target state="translated">Quantità</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2311,7 +2311,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2631,7 +2631,7 @@
|
||||
<target state="translated">Modifica</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2667,7 +2667,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2679,7 +2679,7 @@
|
||||
<target state="translated">Prezzo unitario medio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -2687,7 +2687,7 @@
|
||||
<target state="translated">Prezzo massimo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7233cd3a1ef8913fa5c6db7a29c88044646ceacc" datatype="html">
|
||||
@ -2723,7 +2723,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -2739,7 +2739,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -2747,7 +2747,7 @@
|
||||
<target state="translated">Prezzo minimo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e34e2478d2d30c9d01758d01b7212411171b9bd5" datatype="html">
|
||||
@ -2839,7 +2839,7 @@
|
||||
<target state="translated">Filtra per...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -2867,7 +2867,7 @@
|
||||
<target state="translated">Funzionalità sperimentali</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1931353503905413384" datatype="html">
|
||||
@ -2915,7 +2915,7 @@
|
||||
<target state="translated">Aspetto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2923,7 +2923,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2931,7 +2931,7 @@
|
||||
<target state="translated">Chiaro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2939,7 +2939,7 @@
|
||||
<target state="translated">Scuro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3111,7 +3111,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4893616715766810081" datatype="html">
|
||||
@ -3119,11 +3119,11 @@
|
||||
<target state="translated">Nessun dato disponibile</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1228771048078164312" datatype="html">
|
||||
@ -3203,15 +3203,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3223,19 +3215,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html">
|
||||
@ -3459,15 +3455,15 @@
|
||||
<target state="new"> Esperienza priva di distrazioni per i periodi più turbolenti </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="new"> Un'anteprima delle funzionalità in arrivo </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -3567,7 +3563,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fd30b4e3189726798f09fa0ce875486cf50dda2d" datatype="html">
|
||||
@ -3679,7 +3675,7 @@
|
||||
<target state="new">Pagamento una tantum, senza rinnovo automatico.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -3687,7 +3683,7 @@
|
||||
<target state="translated"> Inizia </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -3695,7 +3691,7 @@
|
||||
<target state="translated">È gratuito.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c20172223f84462032664d717d739297e5a9e2fe" datatype="html">
|
||||
@ -3703,7 +3699,7 @@
|
||||
<target state="translated">Commissioni</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -3863,7 +3859,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de0d77a5255f97548d2b579f78c20c911a71820f" datatype="html">
|
||||
@ -4299,7 +4295,7 @@
|
||||
<target state="translated">Software open source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4230401090765872563" datatype="html">
|
||||
@ -4563,7 +4559,7 @@
|
||||
<target state="translated">ETF senza paesi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -4571,7 +4567,7 @@
|
||||
<target state="translated">ETF senza settori</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ee8f8008bae6ce3a49840c4e1d39b4af23d4c263" datatype="html">
|
||||
@ -4707,7 +4703,7 @@
|
||||
<target state="translated">Autenticazione biometrica</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4791,7 +4787,7 @@
|
||||
<target state="translated">Esporta dati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -4799,7 +4795,7 @@
|
||||
<target state="translated">Valute</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5d27ff889e9ac6d1f33ba419ec2d5fe923cfe3" datatype="html">
|
||||
@ -4891,7 +4887,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -4915,7 +4911,7 @@
|
||||
<target state="translated"> Proteggi i tuoi <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>asset<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Perfeziona la tua <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>strategia di investimento personale<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -4923,7 +4919,7 @@
|
||||
<target state="translated"> Ghostfolio permette alle persone impegnate di tenere traccia di azioni, ETF o criptovalute senza essere tracciate. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -4931,7 +4927,7 @@
|
||||
<target state="translated">Vista a 360°</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -4939,7 +4935,7 @@
|
||||
<target state="translated">Pronto per il Web3</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -4947,7 +4943,7 @@
|
||||
<target state="translated"> Usa Ghostfolio in modo anonimo e possiedi i tuoi dati finanziari. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -4955,7 +4951,7 @@
|
||||
<target state="translated">Open source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -4963,7 +4959,7 @@
|
||||
<target state="translated"> Beneficia dei continui miglioramenti grazie a una forte comunità. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -4971,7 +4967,7 @@
|
||||
<target state="translated">Perché <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -4979,7 +4975,7 @@
|
||||
<target state="translated"> Ghostfolio è per te se... </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -4987,7 +4983,7 @@
|
||||
<target state="translated">fai trading di azioni, ETF o criptovalute su più piattaforme</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -4995,7 +4991,7 @@
|
||||
<target state="translated">persegui una strategia buy & hold</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -5003,7 +4999,7 @@
|
||||
<target state="translated">sei interessato a conoscere la composizione del tuo portafoglio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -5011,7 +5007,7 @@
|
||||
<target state="translated">valorizzi la privacy e la proprietà dei dati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -5019,7 +5015,7 @@
|
||||
<target state="translated">sei per il minimalismo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -5027,7 +5023,7 @@
|
||||
<target state="translated">ti interessa diversificare le tue risorse finanziarie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -5035,7 +5031,7 @@
|
||||
<target state="translated">sei interessato all'indipendenza finanziaria</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -5043,7 +5039,7 @@
|
||||
<target state="translated">non vuoi utilizzare il foglio elettronico nel <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -5051,7 +5047,7 @@
|
||||
<target state="translated">stai ancora leggendo questo elenco</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -5059,7 +5055,7 @@
|
||||
<target state="translated">Ulteriori informazioni su Ghostfolio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -5067,7 +5063,7 @@
|
||||
<target state="translated"> Cosa dicono i nostri <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>utenti<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -5075,7 +5071,7 @@
|
||||
<target state="translated"> Membri da tutto il mondo utilizzano <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -5083,7 +5079,7 @@
|
||||
<target state="translated"> Come funziona <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -5091,7 +5087,7 @@
|
||||
<target state="translated">Iscriviti in modo anonimo*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -5099,7 +5095,7 @@
|
||||
<target state="translated"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* non è richiesto alcun indirizzo email né la carta di credito<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -5107,7 +5103,7 @@
|
||||
<target state="translated"> Aggiungi le tue transazioni storiche </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -5115,7 +5111,7 @@
|
||||
<target state="translated"> Ottieni informazioni preziose sulla composizione del tuo portafoglio </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -5123,7 +5119,7 @@
|
||||
<target state="new"><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Sei<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>pronto?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -5135,7 +5131,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -5143,7 +5139,7 @@
|
||||
<target state="translated"> Ottieni un quadro completo delle tue finanze personali su più piattaforme. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -5151,7 +5147,7 @@
|
||||
<target state="translated">Inizia in soli 3 passi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4656883433287439415" datatype="html">
|
||||
@ -6203,7 +6199,7 @@
|
||||
<target state="new">Market data is delayed for</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6455,7 +6451,7 @@
|
||||
<target state="new">Active</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6463,7 +6459,7 @@
|
||||
<target state="new">Closed</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6471,7 +6467,7 @@
|
||||
<target state="new">Activity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6479,7 +6475,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6519,7 +6515,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6527,7 +6523,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6567,7 +6563,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6575,7 +6571,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6579,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6607,7 +6603,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6615,7 +6611,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6631,7 +6627,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6639,7 +6635,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6658,6 +6654,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -22,7 +22,7 @@
|
||||
<target state="translated">Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -106,11 +106,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -250,7 +250,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -278,7 +278,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -346,7 +346,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -478,7 +478,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -574,7 +574,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -662,7 +662,7 @@
|
||||
<target state="translated">Verzamel recente gegevens</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -670,7 +670,7 @@
|
||||
<target state="translated">Verzamel alle gegevens </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -678,7 +678,7 @@
|
||||
<target state="translated">Verzamel profielgegevens</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -854,7 +854,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1006,7 +1006,7 @@
|
||||
<target state="translated">Aan de slag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1034,7 +1034,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -1042,7 +1042,7 @@
|
||||
<target state="translated">Activiteiten beheren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
|
||||
@ -1070,7 +1070,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1090,7 +1090,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -1170,7 +1170,7 @@
|
||||
<target state="translated">Belegging</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1270,7 +1270,7 @@
|
||||
<target state="translated">Dividend</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1310,7 +1310,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1330,7 +1330,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
@ -1342,7 +1342,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1358,7 +1358,7 @@
|
||||
<target state="translated">Gegevensstoring melden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
|
||||
@ -1382,7 +1382,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1666,7 +1666,7 @@
|
||||
<target state="translated">Wil je deze aanmeldingsmethode echt verwijderen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
|
||||
@ -1698,7 +1698,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -1738,7 +1738,7 @@
|
||||
<target state="translated">Locatie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -1746,7 +1746,7 @@
|
||||
<target state="translated">Datum- en getalnotatie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -1754,7 +1754,7 @@
|
||||
<target state="translated">Zen-modus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -1766,7 +1766,7 @@
|
||||
<target state="new"> Aanmelden met vingerafdruk </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -1778,7 +1778,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2234,7 +2234,7 @@
|
||||
<target state="translated">Hoeveelheid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2310,7 +2310,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2630,7 +2630,7 @@
|
||||
<target state="translated">Verandering</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2666,7 +2666,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2678,7 +2678,7 @@
|
||||
<target state="translated">Gemiddelde prijs per eenheid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -2686,7 +2686,7 @@
|
||||
<target state="translated">Maximale prijs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7233cd3a1ef8913fa5c6db7a29c88044646ceacc" datatype="html">
|
||||
@ -2722,7 +2722,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -2738,7 +2738,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -2746,7 +2746,7 @@
|
||||
<target state="translated">Minimale prijs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e34e2478d2d30c9d01758d01b7212411171b9bd5" datatype="html">
|
||||
@ -2838,7 +2838,7 @@
|
||||
<target state="translated">Filter op...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -2866,7 +2866,7 @@
|
||||
<target state="translated">Experimentele functies</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1931353503905413384" datatype="html">
|
||||
@ -2914,7 +2914,7 @@
|
||||
<target state="translated">Weergave</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2922,7 +2922,7 @@
|
||||
<target state="translated">Automatisch</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2930,7 +2930,7 @@
|
||||
<target state="translated">Licht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2938,7 +2938,7 @@
|
||||
<target state="translated">Donker</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="112783260724635106" datatype="html">
|
||||
@ -3110,7 +3110,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4893616715766810081" datatype="html">
|
||||
@ -3118,11 +3118,11 @@
|
||||
<target state="translated">Geen gegevens beschikbaar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1228771048078164312" datatype="html">
|
||||
@ -3202,15 +3202,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3222,19 +3214,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html">
|
||||
@ -3458,15 +3454,15 @@
|
||||
<target state="new"> Afleidingsvrije ervaring voor roerige tijden </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="new"> Voorproefje van nieuwe functionaliteit </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -3566,7 +3562,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fd30b4e3189726798f09fa0ce875486cf50dda2d" datatype="html">
|
||||
@ -3678,7 +3674,7 @@
|
||||
<target state="translated">Eenmalige betaling, geen automatische verlenging.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -3686,7 +3682,7 @@
|
||||
<target state="translated"> Aan de slag </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -3694,7 +3690,7 @@
|
||||
<target state="translated">Het is gratis.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c20172223f84462032664d717d739297e5a9e2fe" datatype="html">
|
||||
@ -3702,7 +3698,7 @@
|
||||
<target state="translated">Kosten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -3862,7 +3858,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de0d77a5255f97548d2b579f78c20c911a71820f" datatype="html">
|
||||
@ -4298,7 +4294,7 @@
|
||||
<target state="translated">Open Source Software</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4230401090765872563" datatype="html">
|
||||
@ -4562,7 +4558,7 @@
|
||||
<target state="translated">ETF's zonder Landen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -4570,7 +4566,7 @@
|
||||
<target state="translated">ETF's zonder Sectoren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ee8f8008bae6ce3a49840c4e1d39b4af23d4c263" datatype="html">
|
||||
@ -4706,7 +4702,7 @@
|
||||
<target state="translated">Biometrische authenticatie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4790,7 +4786,7 @@
|
||||
<target state="translated">Exporteer Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -4798,7 +4794,7 @@
|
||||
<target state="translated">Valuta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5d27ff889e9ac6d1f33ba419ec2d5fe923cfe3" datatype="html">
|
||||
@ -4890,7 +4886,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -4914,7 +4910,7 @@
|
||||
<target state="translated"> Bescherm je <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>financiële bezittingen<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Verfijn je <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>persoonlijke investeringsstrategie<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -4922,7 +4918,7 @@
|
||||
<target state="translated"> Ghostfolio stelt drukbezette mensen in staat om aandelen, ETF's of cryptocurrencies bij te houden zonder gevolgd te worden. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -4930,7 +4926,7 @@
|
||||
<target state="translated">360°-overzicht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -4938,7 +4934,7 @@
|
||||
<target state="translated">Klaar voor Web3</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -4946,7 +4942,7 @@
|
||||
<target state="translated"> Gebruik Ghostfolio anoniem en bezit je financiële gegevens.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -4954,7 +4950,7 @@
|
||||
<target state="translated">Open Source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -4962,7 +4958,7 @@
|
||||
<target state="translated"> Profiteer van voortdurende verbeteringen door een sterke gemeenschap. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -4970,7 +4966,7 @@
|
||||
<target state="translated">Waarom <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -4978,7 +4974,7 @@
|
||||
<target state="translated"> Ghostfolio is iets voor je als je... </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -4986,7 +4982,7 @@
|
||||
<target state="translated">handelt in aandelen, ETF's of cryptocurrencies op meerdere platforms</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -4994,7 +4990,7 @@
|
||||
<target state="translated">streeft naar een buy & hold strategie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -5002,7 +4998,7 @@
|
||||
<target state="translated">geïnteresseerd bent in het krijgen van inzicht in je portefeuillesamenstelling</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -5010,7 +5006,7 @@
|
||||
<target state="translated">privacy en eigendom van gegevens waardeert</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -5018,7 +5014,7 @@
|
||||
<target state="translated">houdt van een minimalistisch ontwerp</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -5026,7 +5022,7 @@
|
||||
<target state="translated">zorgdraagt voor het diversifiëren van je financiële middelen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -5034,7 +5030,7 @@
|
||||
<target state="translated">geïnteresseerd bent in financiële onafhankelijkheid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -5042,7 +5038,7 @@
|
||||
<target state="translated">"nee" zegt tegen spreadsheets in <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -5050,7 +5046,7 @@
|
||||
<target state="translated">nog steeds deze lijst aan het lezen bent</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -5058,7 +5054,7 @@
|
||||
<target state="translated">Leer meer over Ghostfolio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -5066,7 +5062,7 @@
|
||||
<target state="translated"> Wat onze <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>gebruikers<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> zeggen </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -5074,7 +5070,7 @@
|
||||
<target state="translated"> Leden van over de hele wereld gebruiken<x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -5082,7 +5078,7 @@
|
||||
<target state="translated"> Hoe <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> werkt? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -5090,7 +5086,7 @@
|
||||
<target state="translated">Anoniem aanmelden*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -5098,7 +5094,7 @@
|
||||
<target state="translated"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* geen e-mailadres of creditcard nodig<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -5106,7 +5102,7 @@
|
||||
<target state="translated"> Voeg al je historische transacties toe </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -5114,7 +5110,7 @@
|
||||
<target state="translated"> Krijg waardevolle inzichten in de samenstelling van je portefeuille </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -5122,7 +5118,7 @@
|
||||
<target state="new">Ben <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>je er<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> klaar voor?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -5134,7 +5130,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -5142,7 +5138,7 @@
|
||||
<target state="translated"> Krijg een volledig beeld van je persoonlijke financiën op meerdere platforms. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -5150,7 +5146,7 @@
|
||||
<target state="translated">Aan de slag in slechts 3 stappen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4656883433287439415" datatype="html">
|
||||
@ -6202,7 +6198,7 @@
|
||||
<target state="new">Market data is delayed for</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6454,7 +6450,7 @@
|
||||
<target state="new">Active</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6462,7 +6458,7 @@
|
||||
<target state="new">Closed</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6470,7 +6466,7 @@
|
||||
<target state="new">Activity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6478,7 +6474,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6518,7 +6514,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6526,7 +6522,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6566,7 +6562,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6574,7 +6570,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6582,7 +6578,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6606,7 +6602,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6614,7 +6610,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6630,7 +6626,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6638,7 +6634,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6657,6 +6653,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -674,15 +674,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -694,19 +686,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0275b6f6c30c7b70cff02cb06c355ebd10724f86" datatype="html">
|
||||
@ -714,7 +710,7 @@
|
||||
<target state="new">The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -834,11 +830,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -1034,7 +1030,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -1062,7 +1058,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1138,7 +1134,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -1262,7 +1258,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -1350,7 +1346,7 @@
|
||||
<target state="new">Currencies</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1806977783783486873" datatype="html">
|
||||
@ -1358,7 +1354,7 @@
|
||||
<target state="new">ETFs without Countries</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -1366,7 +1362,7 @@
|
||||
<target state="new">ETFs without Sectors</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6786981261778452561" datatype="html">
|
||||
@ -1382,7 +1378,7 @@
|
||||
<target state="new">Filter by...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1402,7 +1398,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1426,7 +1422,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1446,7 +1442,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1494,7 +1490,7 @@
|
||||
<target state="new">Gather Recent Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -1502,7 +1498,7 @@
|
||||
<target state="new">Gather All Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -1510,7 +1506,7 @@
|
||||
<target state="new">Gather Profile Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1566,7 +1562,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -1582,7 +1578,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fc61416d48adb7af122b8697e806077eb251fb57" datatype="html">
|
||||
@ -1598,7 +1594,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1618,7 +1614,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0b05507801c7eca260d8978c36621e826f07aaaa" datatype="html">
|
||||
@ -1906,7 +1902,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1958,7 +1954,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2066,7 +2062,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2230,7 +2226,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -2238,7 +2234,7 @@
|
||||
<target state="new">Manage Activities</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5486880308148746399" datatype="html">
|
||||
@ -2390,7 +2386,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -2410,7 +2406,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -2478,7 +2474,7 @@
|
||||
<target state="new">Investment</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2506,7 +2502,7 @@
|
||||
<target state="new">Fees</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2638,7 +2634,7 @@
|
||||
<target state="new">Dividend</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2670,7 +2666,7 @@
|
||||
<target state="new">Change</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2682,7 +2678,7 @@
|
||||
<target state="new">Average Unit Price</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -2690,7 +2686,7 @@
|
||||
<target state="new">Minimum Price</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -2698,7 +2694,7 @@
|
||||
<target state="new">Maximum Price</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca30c1aa79fb5ab487fbd2caa4ca01f2f6691d70" datatype="html">
|
||||
@ -2706,7 +2702,7 @@
|
||||
<target state="new">Quantity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2722,7 +2718,7 @@
|
||||
<target state="new">Report Data Glitch</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -2870,7 +2866,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6048892649018070225" datatype="html">
|
||||
@ -2998,7 +2994,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -3030,7 +3026,7 @@
|
||||
<target state="new">Do you really want to remove this sign in method?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
|
||||
@ -3078,7 +3074,7 @@
|
||||
<target state="new">Locale</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -3086,7 +3082,7 @@
|
||||
<target state="new">Date and number format</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -3094,7 +3090,7 @@
|
||||
<target state="new">Appearance</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -3102,7 +3098,7 @@
|
||||
<target state="new">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -3110,7 +3106,7 @@
|
||||
<target state="new">Light</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -3118,7 +3114,7 @@
|
||||
<target state="new">Dark</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -3126,7 +3122,7 @@
|
||||
<target state="new">Zen Mode</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3138,7 +3134,7 @@
|
||||
<target state="new"> Distraction-free experience for turbulent times </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -3146,7 +3142,7 @@
|
||||
<target state="new">Biometric Authentication</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -3154,7 +3150,7 @@
|
||||
<target state="new">Sign in with fingerprint</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -3162,15 +3158,15 @@
|
||||
<target state="new">Experimental Features</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="new"> Sneak peek at upcoming functionality </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -3182,7 +3178,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -3190,7 +3186,7 @@
|
||||
<target state="new">Export Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -3622,7 +3618,7 @@
|
||||
<target state="new">Open Source Software</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="802222cb4754d74846b18f651b1f94e21576185d" datatype="html">
|
||||
@ -3630,7 +3626,7 @@
|
||||
<target state="new">Get Started</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -3734,7 +3730,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -3746,7 +3742,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -3794,7 +3790,7 @@
|
||||
<target state="new"> Protect your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>assets<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Refine your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -3802,7 +3798,7 @@
|
||||
<target state="new"> Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -3810,7 +3806,7 @@
|
||||
<target state="new">360° View</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -3818,7 +3814,7 @@
|
||||
<target state="new"> Get the full picture of your personal finances across multiple platforms. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -3826,7 +3822,7 @@
|
||||
<target state="new">Web3 Ready</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -3834,7 +3830,7 @@
|
||||
<target state="new"> Use Ghostfolio anonymously and own your financial data. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -3842,7 +3838,7 @@
|
||||
<target state="new">Open Source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -3850,7 +3846,7 @@
|
||||
<target state="new"> Benefit from continuous improvements through a strong community. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -3858,7 +3854,7 @@
|
||||
<target state="new">Why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -3866,7 +3862,7 @@
|
||||
<target state="new"> Ghostfolio is for you if you are... </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -3874,7 +3870,7 @@
|
||||
<target state="new">trading stocks, ETFs or cryptocurrencies on multiple platforms</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -3882,7 +3878,7 @@
|
||||
<target state="new">pursuing a buy & hold strategy</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -3890,7 +3886,7 @@
|
||||
<target state="new">interested in getting insights of your portfolio composition</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -3898,7 +3894,7 @@
|
||||
<target state="new">valuing privacy and data ownership</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -3906,7 +3902,7 @@
|
||||
<target state="new">into minimalism</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -3914,7 +3910,7 @@
|
||||
<target state="new">caring about diversifying your financial resources</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -3922,7 +3918,7 @@
|
||||
<target state="new">interested in financial independence</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -3930,7 +3926,7 @@
|
||||
<target state="new">saying no to spreadsheets in <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -3938,7 +3934,7 @@
|
||||
<target state="new">still reading this list</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -3946,7 +3942,7 @@
|
||||
<target state="new">Learn more about Ghostfolio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -3954,7 +3950,7 @@
|
||||
<target state="new"> What our <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>users<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> are saying </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -3962,7 +3958,7 @@
|
||||
<target state="new"> Members from around the globe are using <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -3970,7 +3966,7 @@
|
||||
<target state="new"> How does <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> work? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -3978,7 +3974,7 @@
|
||||
<target state="new">Get started in only 3 steps</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -3986,7 +3982,7 @@
|
||||
<target state="new">Sign up anonymously*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -3994,7 +3990,7 @@
|
||||
<target state="new"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* no e-mail address nor credit card required<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -4002,7 +3998,7 @@
|
||||
<target state="new"> Add any of your historical transactions </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -4010,7 +4006,7 @@
|
||||
<target state="new"> Get valuable insights of your portfolio composition </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -4018,7 +4014,7 @@
|
||||
<target state="new"> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> ready? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4906,7 +4902,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a9eaad1a5cb1b7a8d154ecb75fc613e3bd5adbf3" datatype="html">
|
||||
@ -4914,7 +4910,7 @@
|
||||
<target state="new">One-time payment, no auto-renewal.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -4922,7 +4918,7 @@
|
||||
<target state="new"> Get Started </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -4930,7 +4926,7 @@
|
||||
<target state="new">It’s free.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -5746,7 +5742,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6333857424161463201" datatype="html">
|
||||
@ -6042,11 +6038,11 @@
|
||||
<target state="new">No data available</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d762c43328624b5dd81f3c6a3023203ae9a7553f" datatype="html">
|
||||
@ -6202,7 +6198,7 @@
|
||||
<target state="new">Market data is delayed for</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6454,7 +6450,7 @@
|
||||
<target state="new">Active</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6462,7 +6458,7 @@
|
||||
<target state="new">Closed</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6470,7 +6466,7 @@
|
||||
<target state="new">Activity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6478,7 +6474,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6518,7 +6514,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6526,7 +6522,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6566,7 +6562,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6574,7 +6570,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6582,7 +6578,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6606,7 +6602,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6614,7 +6610,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6630,7 +6626,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6638,7 +6634,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6657,6 +6653,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -6,7 +6,7 @@
|
||||
<target state="translated">O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -118,11 +118,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -306,7 +306,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -334,7 +334,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -394,7 +394,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -534,7 +534,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -622,7 +622,7 @@
|
||||
<target state="translated">Filtrar por...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -642,7 +642,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -666,7 +666,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -686,7 +686,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -734,7 +734,7 @@
|
||||
<target state="translated">Atualizar dados mais recentes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -742,7 +742,7 @@
|
||||
<target state="translated">Recolher Todos os Dados</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -750,7 +750,7 @@
|
||||
<target state="translated">Recolher Dados de Perfíl</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -934,7 +934,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -970,7 +970,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1214,7 +1214,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -1222,7 +1222,7 @@
|
||||
<target state="translated">Gerir Atividades</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5486880308148746399" datatype="html">
|
||||
@ -1298,7 +1298,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -1318,7 +1318,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -1386,7 +1386,7 @@
|
||||
<target state="translated">Investimento</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1494,7 +1494,7 @@
|
||||
<target state="translated">Dividendo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -1526,7 +1526,7 @@
|
||||
<target state="translated">Alterar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1538,7 +1538,7 @@
|
||||
<target state="translated">Preço Médio por Unidade</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -1546,7 +1546,7 @@
|
||||
<target state="translated">Preço Mínimo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -1554,7 +1554,7 @@
|
||||
<target state="translated">Preço Máximo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca30c1aa79fb5ab487fbd2caa4ca01f2f6691d70" datatype="html">
|
||||
@ -1562,7 +1562,7 @@
|
||||
<target state="translated">Quantidade</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1582,7 +1582,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -1598,7 +1598,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fc61416d48adb7af122b8697e806077eb251fb57" datatype="html">
|
||||
@ -1614,7 +1614,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1634,7 +1634,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
@ -1646,7 +1646,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1662,7 +1662,7 @@
|
||||
<target state="translated">Dados do Relatório com Problema</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2ee26d58f2707416e636887111d5603b35346c4a" datatype="html">
|
||||
@ -1910,7 +1910,7 @@
|
||||
<target state="translated">Deseja realmente remover este método de início de sessão?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="29881a45dafbe5aa05cd9d0441a4c0c2fb06df92" datatype="html">
|
||||
@ -1942,7 +1942,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -2002,7 +2002,7 @@
|
||||
<target state="translated">Localidade</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -2010,7 +2010,7 @@
|
||||
<target state="translated">Formato de números e datas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -2018,7 +2018,7 @@
|
||||
<target state="translated">Modo Zen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2030,7 +2030,7 @@
|
||||
<target state="translated">Aparência</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -2038,7 +2038,7 @@
|
||||
<target state="translated">Auto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -2046,7 +2046,7 @@
|
||||
<target state="translated">Claro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -2054,7 +2054,7 @@
|
||||
<target state="translated">Escuro</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -2062,7 +2062,7 @@
|
||||
<target state="new"> Iniciar sessão com impressão digital </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -2070,7 +2070,7 @@
|
||||
<target state="translated">Funcionalidades Experimentais</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -2082,7 +2082,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -2762,7 +2762,7 @@
|
||||
<target state="translated">Começar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -3022,7 +3022,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8106025670158480144" datatype="html">
|
||||
@ -3198,11 +3198,11 @@
|
||||
<target state="translated">Sem dados disponíveis</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html">
|
||||
@ -3246,15 +3246,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -3266,19 +3258,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4798457301875181136" datatype="html">
|
||||
@ -3458,15 +3454,15 @@
|
||||
<target state="new"> Experiência sem distrações para tempos turbulentos </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="new"> Acesso antecipado a funcionalidades futuras </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -3566,7 +3562,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fd30b4e3189726798f09fa0ce875486cf50dda2d" datatype="html">
|
||||
@ -3678,7 +3674,7 @@
|
||||
<target state="translated">Pagamento único, sem renovação automática.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -3686,7 +3682,7 @@
|
||||
<target state="translated"> Começar </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -3694,7 +3690,7 @@
|
||||
<target state="translated">É gratuito.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c20172223f84462032664d717d739297e5a9e2fe" datatype="html">
|
||||
@ -3702,7 +3698,7 @@
|
||||
<target state="translated">Taxas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -3862,7 +3858,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de0d77a5255f97548d2b579f78c20c911a71820f" datatype="html">
|
||||
@ -4298,7 +4294,7 @@
|
||||
<target state="new">Open Source Software</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4230401090765872563" datatype="html">
|
||||
@ -4562,7 +4558,7 @@
|
||||
<target state="new">ETFs without Countries</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -4570,7 +4566,7 @@
|
||||
<target state="new">ETFs without Sectors</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ee8f8008bae6ce3a49840c4e1d39b4af23d4c263" datatype="html">
|
||||
@ -4706,7 +4702,7 @@
|
||||
<target state="new">Biometric Authentication</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4790,7 +4786,7 @@
|
||||
<target state="new">Export Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8298612418414367990" datatype="html">
|
||||
@ -4798,7 +4794,7 @@
|
||||
<target state="new">Currencies</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bc5d27ff889e9ac6d1f33ba419ec2d5fe923cfe3" datatype="html">
|
||||
@ -4890,7 +4886,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -4914,7 +4910,7 @@
|
||||
<target state="new"> Protect your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>assets<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Refine your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -4922,7 +4918,7 @@
|
||||
<target state="new"> Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -4930,7 +4926,7 @@
|
||||
<target state="new">360° View</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -4938,7 +4934,7 @@
|
||||
<target state="new">Web3 Ready</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -4946,7 +4942,7 @@
|
||||
<target state="new"> Use Ghostfolio anonymously and own your financial data. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -4954,7 +4950,7 @@
|
||||
<target state="new">Open Source</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -4962,7 +4958,7 @@
|
||||
<target state="new"> Benefit from continuous improvements through a strong community. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -4970,7 +4966,7 @@
|
||||
<target state="new">Why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -4978,7 +4974,7 @@
|
||||
<target state="new"> Ghostfolio is for you if you are... </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -4986,7 +4982,7 @@
|
||||
<target state="new">trading stocks, ETFs or cryptocurrencies on multiple platforms</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -4994,7 +4990,7 @@
|
||||
<target state="new">pursuing a buy & hold strategy</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -5002,7 +4998,7 @@
|
||||
<target state="new">interested in getting insights of your portfolio composition</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -5010,7 +5006,7 @@
|
||||
<target state="new">valuing privacy and data ownership</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -5018,7 +5014,7 @@
|
||||
<target state="new">into minimalism</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -5026,7 +5022,7 @@
|
||||
<target state="new">caring about diversifying your financial resources</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -5034,7 +5030,7 @@
|
||||
<target state="new">interested in financial independence</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -5042,7 +5038,7 @@
|
||||
<target state="new">saying no to spreadsheets in <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -5050,7 +5046,7 @@
|
||||
<target state="new">still reading this list</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -5058,7 +5054,7 @@
|
||||
<target state="new">Learn more about Ghostfolio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -5066,7 +5062,7 @@
|
||||
<target state="new"> What our <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>users<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> are saying </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -5074,7 +5070,7 @@
|
||||
<target state="new"> Members from around the globe are using <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -5082,7 +5078,7 @@
|
||||
<target state="new"> How does <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> work? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -5090,7 +5086,7 @@
|
||||
<target state="new">Sign up anonymously*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -5098,7 +5094,7 @@
|
||||
<target state="new"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* no e-mail address nor credit card required<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -5106,7 +5102,7 @@
|
||||
<target state="new"> Add any of your historical transactions </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -5114,7 +5110,7 @@
|
||||
<target state="new"> Get valuable insights of your portfolio composition </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -5122,7 +5118,7 @@
|
||||
<target state="new"> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> ready? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -5134,7 +5130,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -5142,7 +5138,7 @@
|
||||
<target state="new"> Get the full picture of your personal finances across multiple platforms. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -5150,7 +5146,7 @@
|
||||
<target state="new">Get started in only 3 steps</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4656883433287439415" datatype="html">
|
||||
@ -6202,7 +6198,7 @@
|
||||
<target state="new">Market data is delayed for</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6454,7 +6450,7 @@
|
||||
<target state="new">Active</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6462,7 +6458,7 @@
|
||||
<target state="new">Closed</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6470,7 +6466,7 @@
|
||||
<target state="new">Activity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6478,7 +6474,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6518,7 +6514,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6526,7 +6522,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6566,7 +6562,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6574,7 +6570,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6582,7 +6578,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6606,7 +6602,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6614,7 +6610,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6630,7 +6626,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6638,7 +6634,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6657,6 +6653,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -650,15 +650,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -670,19 +662,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0275b6f6c30c7b70cff02cb06c355ebd10724f86" datatype="html">
|
||||
@ -690,7 +686,7 @@
|
||||
<target state="translated">Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -826,11 +822,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -998,7 +994,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -1026,7 +1022,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1086,7 +1082,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -1226,7 +1222,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -1314,7 +1310,7 @@
|
||||
<target state="translated">Para Birimleri</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1806977783783486873" datatype="html">
|
||||
@ -1322,7 +1318,7 @@
|
||||
<target state="translated">Ülkesi Olmayan ETF'ler</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -1330,7 +1326,7 @@
|
||||
<target state="translated">Sektörü Olmayan ETF'ler</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4550487415324294802" datatype="html">
|
||||
@ -1338,7 +1334,7 @@
|
||||
<target state="translated">Filtrele...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1358,7 +1354,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1382,7 +1378,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1402,7 +1398,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1450,7 +1446,7 @@
|
||||
<target state="translated">Son Veriyi Getir</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -1458,7 +1454,7 @@
|
||||
<target state="translated">Tüm Veriyi Getir</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -1466,7 +1462,7 @@
|
||||
<target state="translated">Profil Verisini Getir</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1498,7 +1494,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -1514,7 +1510,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fc61416d48adb7af122b8697e806077eb251fb57" datatype="html">
|
||||
@ -1530,7 +1526,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1550,7 +1546,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="638bbddabc5883a7a4087f45592944ce6558409c" datatype="html">
|
||||
@ -1694,7 +1690,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1818,7 +1814,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1926,7 +1922,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2082,7 +2078,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -2090,7 +2086,7 @@
|
||||
<target state="translated">İşlemleri Yönet</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5486880308148746399" datatype="html">
|
||||
@ -2242,7 +2238,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -2262,7 +2258,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -2330,7 +2326,7 @@
|
||||
<target state="translated">Yatırım</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2466,7 +2462,7 @@
|
||||
<target state="translated">Temettü</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2498,7 +2494,7 @@
|
||||
<target state="translated">Para Birimi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2510,7 +2506,7 @@
|
||||
<target state="translated">Ortalama Birim Fiyat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -2518,7 +2514,7 @@
|
||||
<target state="translated">Asgari Fiyat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -2526,7 +2522,7 @@
|
||||
<target state="translated">Azami Fiyat</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca30c1aa79fb5ab487fbd2caa4ca01f2f6691d70" datatype="html">
|
||||
@ -2534,7 +2530,7 @@
|
||||
<target state="translated">Miktar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2550,7 +2546,7 @@
|
||||
<target state="translated">Komisyon</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2566,7 +2562,7 @@
|
||||
<target state="translated">Rapor Veri Sorunu</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -2714,7 +2710,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6048892649018070225" datatype="html">
|
||||
@ -3150,7 +3146,7 @@
|
||||
<target state="translated">Zen Modu</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3186,7 +3182,7 @@
|
||||
<target state="translated">Açık Kaynak Yazılım</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="802222cb4754d74846b18f651b1f94e21576185d" datatype="html">
|
||||
@ -3194,7 +3190,7 @@
|
||||
<target state="translated">Başla</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -3274,7 +3270,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -3286,7 +3282,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -3334,7 +3330,7 @@
|
||||
<target state="translated"> <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>varlıklarınızı koruyun<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Kişisel yatırım stratejinizi geliştirin<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -3342,7 +3338,7 @@
|
||||
<target state="translated">Ghostfolio, takip edilmeden hisse senetleri, ETF'ler veya kripto paraları izlemek isteyen yoğun insanlara güç verir.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -3350,7 +3346,7 @@
|
||||
<target state="translated">360° Görünüm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -3358,7 +3354,7 @@
|
||||
<target state="translated">Kişisel finansınızın tam resmini birden fazla platformda edinin.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -3366,7 +3362,7 @@
|
||||
<target state="translated">Web3 Hazır</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -3374,7 +3370,7 @@
|
||||
<target state="translated">Ghostfolio'yu anonim olarak kullanın ve finansal verilerinize sahip çıkın.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -3382,7 +3378,7 @@
|
||||
<target state="translated">Açık Kaynak</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -3390,7 +3386,7 @@
|
||||
<target state="translated">Güçlü bir topluluk aracılığıyla sürekli gelişmelerden faydalanın.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -3398,7 +3394,7 @@
|
||||
<target state="translated">Neden <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -3406,7 +3402,7 @@
|
||||
<target state="translated"> Ghostfolio tam size göre, </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -3414,7 +3410,7 @@
|
||||
<target state="translated">Birden fazla platformda hisse senedi, ETF veya kripto para ticareti yapıyorsanız, </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -3422,7 +3418,7 @@
|
||||
<target state="translated">al ve tut stratejisi izliyorsanız, </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -3430,7 +3426,7 @@
|
||||
<target state="translated">Portföy bileşimine dair içgörüleri edinmek istiyorsanız,</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -3438,7 +3434,7 @@
|
||||
<target state="translated">Gizliliğe ve verilerinize sahip çıkmayı önemsiyorsanız</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -3446,7 +3442,7 @@
|
||||
<target state="translated">minimalizme ilgi duyuyorsanız</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -3454,7 +3450,7 @@
|
||||
<target state="translated">finansal kaynaklarınızı çeşitlendirmeye önem veriyorsanız</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -3462,7 +3458,7 @@
|
||||
<target state="translated">finansal özgürlük peşindeyseniz</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -3470,7 +3466,7 @@
|
||||
<target state="translated">elektronik tablo uygulamalarına hayır diyorsanız <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -3478,7 +3474,7 @@
|
||||
<target state="translated">bu listeyi hala okuyorsanız</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -3486,7 +3482,7 @@
|
||||
<target state="translated">Ghostfolio hakkında daha fazla bilgi edinin</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -3494,7 +3490,7 @@
|
||||
<target state="new"> What our <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>users<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> are saying </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -3502,7 +3498,7 @@
|
||||
<target state="translated"> Dünyanın dört bir yanındaki kullanıcılar <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium kullanıyorlar.<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -3510,7 +3506,7 @@
|
||||
<target state="new"> How does <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> work? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -3518,7 +3514,7 @@
|
||||
<target state="translated">Sadece 3 adımda başlayın</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -3526,7 +3522,7 @@
|
||||
<target state="translated">Anonim olarak kaydolun*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -3534,7 +3530,7 @@
|
||||
<target state="translated"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* e-posta adresi veya kredi kartı gerekmez<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -3542,7 +3538,7 @@
|
||||
<target state="translated">Herhangi bir geçmiş işleminizi ekleyin</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -3550,7 +3546,7 @@
|
||||
<target state="translated">Portföy bileşiminizle ilgili değerli bilgiler edinin</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -3558,7 +3554,7 @@
|
||||
<target state="new"> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> ready? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4370,7 +4366,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a9eaad1a5cb1b7a8d154ecb75fc613e3bd5adbf3" datatype="html">
|
||||
@ -4378,7 +4374,7 @@
|
||||
<target state="translated">Tek seferlik ödeme, otomatik yenileme yok.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -4386,7 +4382,7 @@
|
||||
<target state="translated">Başla</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -4394,7 +4390,7 @@
|
||||
<target state="translated">Ücretsiz.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -4874,7 +4870,7 @@
|
||||
<target state="translated">Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
|
||||
@ -4902,7 +4898,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -4958,7 +4954,7 @@
|
||||
<target state="translated">Yerel Ayarlar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -4966,7 +4962,7 @@
|
||||
<target state="translated">Tarih ve Sayı Formatları</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -4974,7 +4970,7 @@
|
||||
<target state="translated">Görünüm</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -4982,7 +4978,7 @@
|
||||
<target state="translated">Otomatik</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -4990,7 +4986,7 @@
|
||||
<target state="translated">Açık</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -4998,7 +4994,7 @@
|
||||
<target state="translated">Koyu</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="071f26a758dfeaed37626c8758754707c35e3915" datatype="html">
|
||||
@ -5006,7 +5002,7 @@
|
||||
<target state="translated">Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -5014,7 +5010,7 @@
|
||||
<target state="translated">Biyometrik Kimlik Doğrulama</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -5022,7 +5018,7 @@
|
||||
<target state="translated">Parmak iziyle oturum aç</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -5030,15 +5026,15 @@
|
||||
<target state="translated">Deneysel Özellikler</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="translated">Gelecek özelliklere göz atın</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -5050,7 +5046,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -5058,7 +5054,7 @@
|
||||
<target state="translated">Verileri Dışa Aktar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9021c579c084e68d9db06a569d76f024111c6c54" datatype="html">
|
||||
@ -5414,7 +5410,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6333857424161463201" datatype="html">
|
||||
@ -5662,11 +5658,11 @@
|
||||
<target state="translated">Veri mevcut değil</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1c0638816928ae45284e60504936ca985960df5c" datatype="html">
|
||||
@ -6202,7 +6198,7 @@
|
||||
<target state="new">Market data is delayed for</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8580549503047096056" datatype="html">
|
||||
@ -6454,7 +6450,7 @@
|
||||
<target state="new">Active</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7860418101283165917" datatype="html">
|
||||
@ -6462,7 +6458,7 @@
|
||||
<target state="new">Closed</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6470,7 +6466,7 @@
|
||||
<target state="new">Activity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6478,7 +6474,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6518,7 +6514,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6526,7 +6522,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6566,7 +6562,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6574,7 +6570,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6582,7 +6578,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6606,7 +6602,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6614,7 +6610,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6630,7 +6626,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6638,7 +6634,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6657,6 +6653,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -652,15 +652,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -672,26 +664,30 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0275b6f6c30c7b70cff02cb06c355ebd10724f86" datatype="html">
|
||||
<source>The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -802,11 +798,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -1002,7 +998,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -1029,7 +1025,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1101,7 +1097,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -1213,7 +1209,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -1298,21 +1294,21 @@
|
||||
<source>Currencies</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1806977783783486873" datatype="html">
|
||||
<source>ETFs without Countries</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
<source>ETFs without Sectors</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6786981261778452561" datatype="html">
|
||||
@ -1326,7 +1322,7 @@
|
||||
<source>Filter by...</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1345,7 +1341,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1368,7 +1364,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1387,7 +1383,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1430,21 +1426,21 @@
|
||||
<source>Gather Recent Data</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
<source>Gather All Data</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
<source>Gather Profile Data</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1495,7 +1491,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -1510,7 +1506,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fc61416d48adb7af122b8697e806077eb251fb57" datatype="html">
|
||||
@ -1525,7 +1521,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1544,7 +1540,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0b05507801c7eca260d8978c36621e826f07aaaa" datatype="html">
|
||||
@ -1808,7 +1804,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1855,7 +1851,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1951,7 +1947,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2099,14 +2095,14 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
<source>Manage Activities</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5486880308148746399" datatype="html">
|
||||
@ -2241,7 +2237,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -2260,7 +2256,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -2321,7 +2317,7 @@
|
||||
<source>Investment</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2346,7 +2342,7 @@
|
||||
<source>Fees</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2464,7 +2460,7 @@
|
||||
<source>Dividend</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2494,7 +2490,7 @@
|
||||
<source>Change</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2505,28 +2501,28 @@
|
||||
<source>Average Unit Price</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
<source>Minimum Price</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
<source>Maximum Price</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca30c1aa79fb5ab487fbd2caa4ca01f2f6691d70" datatype="html">
|
||||
<source>Quantity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2541,7 +2537,7 @@
|
||||
<source>Report Data Glitch</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -2678,7 +2674,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6048892649018070225" datatype="html">
|
||||
@ -2793,7 +2789,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -2821,7 +2817,7 @@
|
||||
<source>Do you really want to remove this sign in method?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
|
||||
@ -2863,49 +2859,49 @@
|
||||
<source>Locale</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
<source>Date and number format</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
<source>Appearance</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
<source>Auto</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
<source>Light</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
<source>Dark</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
<source>Zen Mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -2916,35 +2912,35 @@
|
||||
<source> Distraction-free experience for turbulent times </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
<source>Biometric Authentication</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
<source>Sign in with fingerprint</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
<source>Experimental Features</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -2955,14 +2951,14 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
<source>Export Data</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -3350,14 +3346,14 @@
|
||||
<source>Open Source Software</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="802222cb4754d74846b18f651b1f94e21576185d" datatype="html">
|
||||
<source>Get Started</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -3452,7 +3448,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -3463,7 +3459,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -3506,203 +3502,203 @@
|
||||
<source> Protect your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>assets<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. Refine your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>. </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
<source> Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
<source>360° View</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
<source> Get the full picture of your personal finances across multiple platforms. </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
<source>Web3 Ready</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
<source> Use Ghostfolio anonymously and own your financial data. </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
<source>Open Source</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
<source> Benefit from continuous improvements through a strong community. </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
<source>Why <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
<source> Ghostfolio is for you if you are... </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
<source>trading stocks, ETFs or cryptocurrencies on multiple platforms</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
<source>pursuing a buy & hold strategy</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
<source>interested in getting insights of your portfolio composition</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
<source>valuing privacy and data ownership</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
<source>into minimalism</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
<source>caring about diversifying your financial resources</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
<source>interested in financial independence</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
<source>saying no to spreadsheets in <x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
<source>still reading this list</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
<source>Learn more about Ghostfolio</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
<source> What our <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>users<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> are saying </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
<source> Members from around the globe are using <x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio Premium<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
<source> How does <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> work? </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
<source>Get started in only 3 steps</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
<source>Sign up anonymously*</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
<source><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* no e-mail address nor credit card required<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
<source> Add any of your historical transactions </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
<source> Get valuable insights of your portfolio composition </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
<source> Are <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>you<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> ready? </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4496,28 +4492,28 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a9eaad1a5cb1b7a8d154ecb75fc613e3bd5adbf3" datatype="html">
|
||||
<source>One-time payment, no auto-renewal.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
<source> Get Started </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
<source>It’s free.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -5286,7 +5282,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6333857424161463201" datatype="html">
|
||||
@ -5545,11 +5541,11 @@
|
||||
<source>No data available</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
|
||||
@ -5631,7 +5627,7 @@
|
||||
<source>Market data is delayed for</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8ce52b52483f502dd23ed290357a17307c60280c" datatype="html">
|
||||
@ -5854,28 +5850,28 @@
|
||||
<source>Closed</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8204176479746810612" datatype="html">
|
||||
<source>Active</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
<source>Activity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
<source>Dividend Yield</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -5910,14 +5906,14 @@
|
||||
<source>Change with currency effect</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
<source>Performance with currency effect</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8903954975609359428" datatype="html">
|
||||
@ -5952,21 +5948,21 @@
|
||||
<source>Close Account</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4941836956820527118" datatype="html">
|
||||
<source>Do you really want to close your Ghostfolio account?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
<source>Danger Zone</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d30a34e40fd0afa4f0233005752e4ab615e83a0" datatype="html">
|
||||
@ -5987,14 +5983,14 @@
|
||||
<source> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
<source>Oops! There was an error setting up biometric authentication.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6015,7 +6011,7 @@
|
||||
<source>Delete Profiles</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8127349194179456616" datatype="html">
|
||||
@ -6029,7 +6025,28 @@
|
||||
<source>Benchmarks</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
@ -675,15 +675,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">82</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
@ -695,19 +687,23 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">99</context>
|
||||
<context context-type="linenumber">98</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">108</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">259</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0275b6f6c30c7b70cff02cb06c355ebd10724f86" datatype="html">
|
||||
@ -715,7 +711,7 @@
|
||||
<target state="translated">交易损失的风险可能很大。不建议将短期内可能需要的资金进行投资。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -835,11 +831,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">331</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/activities-page.html</context>
|
||||
@ -1043,7 +1039,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">206</context>
|
||||
<context context-type="linenumber">215</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
@ -1071,7 +1067,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1147,7 +1143,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">305</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
|
||||
@ -1271,7 +1267,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
<context context-type="linenumber">114</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">
|
||||
@ -1359,7 +1355,7 @@
|
||||
<target state="translated">货币</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">85</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1806977783783486873" datatype="html">
|
||||
@ -1367,7 +1363,7 @@
|
||||
<target state="translated">没有国家的 ETF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">84</context>
|
||||
<context context-type="linenumber">90</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2346990364415437072" datatype="html">
|
||||
@ -1375,7 +1371,7 @@
|
||||
<target state="translated">无行业类别的 ETF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">95</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6786981261778452561" datatype="html">
|
||||
@ -1391,7 +1387,7 @@
|
||||
<target state="translated">过滤...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">322</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1411,7 +1407,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1435,7 +1431,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">237</context>
|
||||
<context context-type="linenumber">241</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -1455,7 +1451,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">209</context>
|
||||
<context context-type="linenumber">213</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -1503,7 +1499,7 @@
|
||||
<target state="translated">收集最近的数据</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
|
||||
@ -1511,7 +1507,7 @@
|
||||
<target state="translated">收集所有数据</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
|
||||
@ -1519,7 +1515,7 @@
|
||||
<target state="translated">收集个人资料数据</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">174</context>
|
||||
<context context-type="linenumber">183</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
|
||||
@ -1575,7 +1571,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">254</context>
|
||||
<context context-type="linenumber">258</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a43f25a9ac40e8e2441ff0be7a36b8e5d15534df" datatype="html">
|
||||
@ -1591,7 +1587,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fc61416d48adb7af122b8697e806077eb251fb57" datatype="html">
|
||||
@ -1607,7 +1603,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">274</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -1627,7 +1623,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">282</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0b05507801c7eca260d8978c36621e826f07aaaa" datatype="html">
|
||||
@ -1923,7 +1919,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">357</context>
|
||||
<context context-type="linenumber">361</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/accounts/accounts-page.html</context>
|
||||
@ -1975,7 +1971,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">381</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2083,7 +2079,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
<context context-type="linenumber">91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2247,7 +2243,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -2255,7 +2251,7 @@
|
||||
<target state="translated">管理活动</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">60</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5486880308148746399" datatype="html">
|
||||
@ -2407,7 +2403,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">247</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -2427,7 +2423,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
<context context-type="linenumber">450</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
@ -2495,7 +2491,7 @@
|
||||
<target state="translated">投资</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">165</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2523,7 +2519,7 @@
|
||||
<target state="translated">费用</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">199</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2655,7 +2651,7 @@
|
||||
<target state="translated">股息</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
@ -2687,7 +2683,7 @@
|
||||
<target state="translated">修改</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
<context context-type="linenumber">65</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -2699,7 +2695,7 @@
|
||||
<target state="translated">平均单价</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">101</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b1c1c6a43da1ad3e41b7a6e3aa5dcc24226cf580" datatype="html">
|
||||
@ -2707,7 +2703,7 @@
|
||||
<target state="translated">最低价格</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">130</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6dd84054c52e1edf631f37accb054de0c4071069" datatype="html">
|
||||
@ -2715,7 +2711,7 @@
|
||||
<target state="translated">最高价格</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">146</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ca30c1aa79fb5ab487fbd2caa4ca01f2f6691d70" datatype="html">
|
||||
@ -2723,7 +2719,7 @@
|
||||
<target state="translated">数量</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
@ -2739,7 +2735,7 @@
|
||||
<target state="translated">报告数据故障</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">395</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="280c5b1f5b5b748fbbb37bf7a12c37f41539c1ff" datatype="html">
|
||||
@ -2887,7 +2883,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6048892649018070225" datatype="html">
|
||||
@ -3015,7 +3011,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="de39d1e0259f376956df2f14bb285f98ad8a1bcc" datatype="html">
|
||||
@ -3047,7 +3043,7 @@
|
||||
<target state="translated">您确实要删除此登录方法吗?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">239</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">
|
||||
@ -3095,7 +3091,7 @@
|
||||
<target state="translated">语言环境</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">117</context>
|
||||
<context context-type="linenumber">127</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4402006eb2c97591dd8c87a5bd8f721fe9e4dc00" datatype="html">
|
||||
@ -3103,7 +3099,7 @@
|
||||
<target state="translated">日期和数字格式</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
<context context-type="linenumber">129</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="bbe41ac2ea4a6c00ea941a41b33105048f8e9f13" datatype="html">
|
||||
@ -3111,7 +3107,7 @@
|
||||
<target state="translated">外貌</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">142</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fb13fb4a8447e59cdf05dc196ade39c02a6f8aa" datatype="html">
|
||||
@ -3119,7 +3115,7 @@
|
||||
<target state="translated">自动</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">156</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="693d14f486a25e86bc515dfcfc4462d5201217ef" datatype="html">
|
||||
@ -3127,7 +3123,7 @@
|
||||
<target state="translated">明亮</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">157</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="adb4562d2dbd3584370e44496969d58c511ecb63" datatype="html">
|
||||
@ -3135,7 +3131,7 @@
|
||||
<target state="translated">黑暗</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">158</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b5dc65493e3e15fbe15b7d9c17f7626321d82e76" datatype="html">
|
||||
@ -3143,7 +3139,7 @@
|
||||
<target state="translated">极简模式</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">167</context>
|
||||
<context context-type="linenumber">177</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
@ -3155,7 +3151,7 @@
|
||||
<target state="translated">动荡时期的无干扰体验</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">168</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fa22693b23a8bed32d787023df105a7b40002f9c" datatype="html">
|
||||
@ -3163,7 +3159,7 @@
|
||||
<target state="translated">生物识别认证</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9ae348ee3a7319c2fc4794fa8bc425999d355f8f" datatype="html">
|
||||
@ -3171,7 +3167,7 @@
|
||||
<target state="translated">使用指纹登录</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">185</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="03b120b05e0922e5e830c3466fda9ee0bfbf59e9" datatype="html">
|
||||
@ -3179,15 +3175,15 @@
|
||||
<target state="translated">实验性功能</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">211</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8b8f31d2256bb8bf537f76d941cca839b608d18b" datatype="html">
|
||||
<trans-unit id="7f44fdbb881db76676fff811a21dc3eadcf11a33" datatype="html">
|
||||
<source> Sneak peek at upcoming functionality </source>
|
||||
<target state="translated">预览即将推出的功能</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
<context context-type="linenumber">212</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="83c4d4d764d2e2725ab8e919ec16ac400e1f290a" datatype="html">
|
||||
@ -3199,7 +3195,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">220</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="35a09ebb1f8ae079a58f2ab952be62e354a51672" datatype="html">
|
||||
@ -3207,7 +3203,7 @@
|
||||
<target state="translated">导出数据</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">228</context>
|
||||
<context context-type="linenumber">236</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -3639,7 +3635,7 @@
|
||||
<target state="translated">开源软件</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="802222cb4754d74846b18f651b1f94e21576185d" datatype="html">
|
||||
@ -3647,7 +3643,7 @@
|
||||
<target state="translated">立即开始</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/features/features-page.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
@ -3751,7 +3747,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">298</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="195d2d6475819f55cf73287f97752093b7721ade" datatype="html">
|
||||
@ -3763,7 +3759,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">443</context>
|
||||
<context context-type="linenumber">451</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1d6f11238819cf97ea87ab54714deda567d83f5c" datatype="html">
|
||||
@ -3811,7 +3807,7 @@
|
||||
<target state="translated">保护你的<x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>资产<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>。完善你的<x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>个人投资策略<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">217</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9dd7364c5dcf1b010bfa80e824ba80eb67cc2b57" datatype="html">
|
||||
@ -3819,7 +3815,7 @@
|
||||
<target state="translated">Ghostfolio 使忙碌的人们能够在不被追踪的情况下跟踪股票、ETF 或加密货币。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">221</context>
|
||||
<context context-type="linenumber">229</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="70a1ed4b69a5a2cefa86b16c94ff2799a6566b4f" datatype="html">
|
||||
@ -3827,7 +3823,7 @@
|
||||
<target state="translated">360° 视角</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">232</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbe66b4824faaff93249a96c9ce23c237b446ed5" datatype="html">
|
||||
@ -3835,7 +3831,7 @@
|
||||
<target state="translated">跨多个平台全面了解您的个人财务状况。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
<context context-type="linenumber">242</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e0840e61fd65397c9dd8c0aa35ec19778c79b73d" datatype="html">
|
||||
@ -3843,7 +3839,7 @@
|
||||
<target state="translated">Web3 就绪</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">243</context>
|
||||
<context context-type="linenumber">251</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a82bf107b3693ed6bdba551a97ce92494921513" datatype="html">
|
||||
@ -3851,7 +3847,7 @@
|
||||
<target state="translated">匿名使用 Ghostfolio 并拥有您的财务数据。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">245</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebc1c2623f53ce48c714e00161a2f31f732c815b" datatype="html">
|
||||
@ -3859,7 +3855,7 @@
|
||||
<target state="translated">开源</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">253</context>
|
||||
<context context-type="linenumber">261</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3756fe4769648222e9a3143d6a140e55afd7424b" datatype="html">
|
||||
@ -3867,7 +3863,7 @@
|
||||
<target state="translated">通过强大的社区不断改进,从中受益。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">255</context>
|
||||
<context context-type="linenumber">263</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e7360ce972bb10156736d042a15c6c939fea123d" datatype="html">
|
||||
@ -3875,7 +3871,7 @@
|
||||
<target state="translated">为什么使用<x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b2466b29949bb745c1f96f2d82e5dab9061f8efe" datatype="html">
|
||||
@ -3883,7 +3879,7 @@
|
||||
<target state="translated">如果您符合以下条件,那么 Ghostfolio 适合您...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">265</context>
|
||||
<context context-type="linenumber">273</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2fe7c768f92932a3a6c9b460dd5d72e53deb9cfe" datatype="html">
|
||||
@ -3891,7 +3887,7 @@
|
||||
<target state="translated">在多个平台上交易股票、ETF 或加密货币</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">272</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe71658bf131fad393a7ce618908e246617ded26" datatype="html">
|
||||
@ -3899,7 +3895,7 @@
|
||||
<target state="translated">采取买入并持有策略</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">278</context>
|
||||
<context context-type="linenumber">286</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2e95d2cbc69d45e5ecf3eb92c2972e8cb4ff3ec6" datatype="html">
|
||||
@ -3907,7 +3903,7 @@
|
||||
<target state="translated">有兴趣深入了解您的投资组合构成</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4093027d62fd4125e36fe21bdd44475fc7499d02" datatype="html">
|
||||
@ -3915,7 +3911,7 @@
|
||||
<target state="translated">重视隐私和数据所有权</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">288</context>
|
||||
<context context-type="linenumber">296</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5fae4f4ad7de60db18a5c52ccf5e7e8c7b194a9c" datatype="html">
|
||||
@ -3923,7 +3919,7 @@
|
||||
<target state="translated">进入极简主义</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">291</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="18bb2c16577866572e3656986d9660d2db012565" datatype="html">
|
||||
@ -3931,7 +3927,7 @@
|
||||
<target state="translated">关心您的财务资源多元化</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">295</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="0a6c37c2d3a8c41e7e44f020aefb1c667ac150dc" datatype="html">
|
||||
@ -3939,7 +3935,7 @@
|
||||
<target state="translated">对财务独立感兴趣</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">299</context>
|
||||
<context context-type="linenumber">307</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="81fbb4e2cd3d3079d790bdddbfcc73ec3b600d22" datatype="html">
|
||||
@ -3947,7 +3943,7 @@
|
||||
<target state="translated">对电子表格说不<x id="INTERPOLATION" equiv-text="{{ currentYear }}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">303</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="92cef868de56015b451e7eee26c9eaef54f41d37" datatype="html">
|
||||
@ -3955,7 +3951,7 @@
|
||||
<target state="translated">仍在阅读此列表</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">306</context>
|
||||
<context context-type="linenumber">314</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8c11c506c55700ca9883f360c52df5a432a51dcf" datatype="html">
|
||||
@ -3963,7 +3959,7 @@
|
||||
<target state="translated">了解有关 Ghostfolio 的更多信息</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">311</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ae508ae33a02ae69247d9e4d84e98b610209ef3b" datatype="html">
|
||||
@ -3971,7 +3967,7 @@
|
||||
<target state="translated">我们的什么<x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>用户<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>正在说</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">319</context>
|
||||
<context context-type="linenumber">327</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="49cccc34723a396488453992d4d469fb0f644ef4" datatype="html">
|
||||
@ -3979,7 +3975,7 @@
|
||||
<target state="translated">来自世界各地的会员正在使用<x id="START_LINK" ctype="x-a" equiv-text="<a href="pricing">"/><x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Ghostfolio 高级版<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/><x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">358</context>
|
||||
<context context-type="linenumber">366</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fb9e3bfd7030894a15bebdb45e9502469d7b44b1" datatype="html">
|
||||
@ -3987,7 +3983,7 @@
|
||||
<target state="translated">如何<x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>幽灵作品集<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>工作?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">375</context>
|
||||
<context context-type="linenumber">383</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9454b3758f67cb4d178570e8bfb3e0d684e2353e" datatype="html">
|
||||
@ -3995,7 +3991,7 @@
|
||||
<target state="translated">只需 3 步即可开始</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">378</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="969974097ecdfff6cb04b4cb71efccd717da1ce8" datatype="html">
|
||||
@ -4003,7 +3999,7 @@
|
||||
<target state="translated">匿名注册*</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">384</context>
|
||||
<context context-type="linenumber">392</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="100e94a30dd0af12854336d0c90b50381e457b97" datatype="html">
|
||||
@ -4011,7 +4007,7 @@
|
||||
<target state="translated"><x id="START_SMALL_TEXT" ctype="x-small" equiv-text="<small>"/>* 无需电子邮件地址或信用卡<x id="CLOSE_SMALL_TEXT" ctype="x-small" equiv-text="</small>"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">386</context>
|
||||
<context context-type="linenumber">394</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="57aad8c9d23cc4f0bbb0abf4f3313bfb85154592" datatype="html">
|
||||
@ -4019,7 +4015,7 @@
|
||||
<target state="translated">添加您的任何历史交易</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">397</context>
|
||||
<context context-type="linenumber">405</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bb49f7d149617560f1962d3688ed6fafba63c0d" datatype="html">
|
||||
@ -4027,7 +4023,7 @@
|
||||
<target state="translated">获取有关您的投资组合构成的宝贵见解</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
<context context-type="linenumber">417</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="80abe38d82bca467f47bbb65f821a115cf9dfdc1" datatype="html">
|
||||
@ -4035,7 +4031,7 @@
|
||||
<target state="new">是<x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>你<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>准备好?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">423</context>
|
||||
<context context-type="linenumber">431</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8d0f35e084b3902a5b04ee86cfde0d4b991a93af" datatype="html">
|
||||
@ -4923,7 +4919,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">276</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a9eaad1a5cb1b7a8d154ecb75fc613e3bd5adbf3" datatype="html">
|
||||
@ -4931,7 +4927,7 @@
|
||||
<target state="translated">一次性付款,无自动续订。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">279</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8491ac1eac9be4c3b013f8cc51fe7b801a3c4d7b" datatype="html">
|
||||
@ -4939,7 +4935,7 @@
|
||||
<target state="translated">开始使用</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
<context context-type="linenumber">446</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9fc169f3af45f638d4b304b828b640514b1d017c" datatype="html">
|
||||
@ -4947,7 +4943,7 @@
|
||||
<target state="translated">免费。</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/pricing/pricing-page.html</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -5811,7 +5807,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
<context context-type="linenumber">400</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6333857424161463201" datatype="html">
|
||||
@ -6107,11 +6103,11 @@
|
||||
<target state="translated">无可用数据</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">391</context>
|
||||
<context context-type="linenumber">402</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">415</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="62c28ddba8fedb2ae7b0fff9a641778b59791aa2" datatype="html">
|
||||
@ -6203,7 +6199,7 @@
|
||||
<target state="translated">市场数据延迟</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8ce52b52483f502dd23ed290357a17307c60280c" datatype="html">
|
||||
@ -6455,7 +6451,7 @@
|
||||
<target state="translated">关闭</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8204176479746810612" datatype="html">
|
||||
@ -6463,7 +6459,7 @@
|
||||
<target state="translated">积极的</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.component.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">
|
||||
@ -6471,7 +6467,7 @@
|
||||
<target state="translated">活动</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">219</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="00ab08d0337ad99d0fabd37b521f8908a33f8550" datatype="html">
|
||||
@ -6479,7 +6475,7 @@
|
||||
<target state="new">Dividend Yield</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
<context context-type="linenumber">191</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c356d831858fd8fed753c149088c800e36b36d84" datatype="html">
|
||||
@ -6519,7 +6515,7 @@
|
||||
<target state="new">Change with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">52</context>
|
||||
<context context-type="linenumber">53</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6b690ad88cca4208035a1be392f327d9a2405ac" datatype="html">
|
||||
@ -6527,7 +6523,7 @@
|
||||
<target state="new">Performance with currency effect</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ebf471e68247ca2110cdc5c98538e2e2bbf6e56e" datatype="html">
|
||||
@ -6567,7 +6563,7 @@
|
||||
<target state="new">Do you really want to close your Ghostfolio account?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">147</context>
|
||||
<context context-type="linenumber">148</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="85614ebfd89fe16873dfcf593a05f18b7468daac" datatype="html">
|
||||
@ -6575,7 +6571,7 @@
|
||||
<target state="new">Danger Zone</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">240</context>
|
||||
<context context-type="linenumber">248</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c1ef66d62e3ecb5f661c8ffb89e1b1c46275684" datatype="html">
|
||||
@ -6583,7 +6579,7 @@
|
||||
<target state="new">Close Account</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.html</context>
|
||||
<context context-type="linenumber">275</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9d11f76485fd1306f47e2c2d585183ea844760f4" datatype="html">
|
||||
@ -6607,7 +6603,7 @@
|
||||
<target state="new"> Join now <x id="START_BLOCK_IF" equiv-text="@if (hasPermissionForDemo) {"/> or check out the example account <x id="CLOSE_BLOCK_IF" equiv-text="}"/></target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/landing/landing-page.html</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
<context context-type="linenumber">434</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5724720497710437101" datatype="html">
|
||||
@ -6615,7 +6611,7 @@
|
||||
<target state="new">Oops! There was an error setting up biometric authentication.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/user-account-settings/user-account-settings.component.ts</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">302</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f0c5f6f270e70cbe063b5368fcf48f9afc1abd9b" datatype="html">
|
||||
@ -6631,7 +6627,7 @@
|
||||
<target state="new">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
|
||||
<context context-type="linenumber">74</context>
|
||||
<context context-type="linenumber">80</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5a6b8dff75bad9c9ea5e010bd0d34beabd8ef3a2" datatype="html">
|
||||
@ -6639,7 +6635,7 @@
|
||||
<target state="new">Delete Profiles</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
|
||||
<context context-type="linenumber">181</context>
|
||||
<context context-type="linenumber">190</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3514960995395821133" datatype="html">
|
||||
@ -6658,6 +6654,30 @@
|
||||
<context context-type="linenumber">45</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c8ea0443990792280e53ee2cc87e577940c95cf" datatype="html">
|
||||
<source>Table</source>
|
||||
<target state="new">Table</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c60cf3d8e34731a4d9c2f3ff3cae128055d80a4" datatype="html">
|
||||
<source>Chart</source>
|
||||
<target state="new">Chart</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-holdings/home-holdings.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8e82d0437ea637850bb6cb99332b72422c723aae" datatype="html">
|
||||
<source> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </source>
|
||||
<target state="new"> Would you like to <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>refine<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> your <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>personal investment strategy<x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>? </target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page.html</context>
|
||||
<context context-type="linenumber">155</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
@ -73,40 +73,40 @@ $gf-secondary: (
|
||||
|
||||
$gf-typography: mat.m2-define-typography-config();
|
||||
|
||||
@include mat.core();
|
||||
|
||||
// Create default theme
|
||||
$gf-theme-default: mat.m2-define-light-theme(
|
||||
(
|
||||
color: (
|
||||
primary: mat.m2-define-palette($gf-primary),
|
||||
accent: mat.m2-define-palette($gf-secondary, 500, 900, A100)
|
||||
accent: mat.m2-define-palette($gf-secondary, 500, 900, A100),
|
||||
primary: mat.m2-define-palette($gf-primary)
|
||||
),
|
||||
density: -3,
|
||||
typography: $gf-typography
|
||||
)
|
||||
);
|
||||
|
||||
@include mat.all-component-themes($gf-theme-default);
|
||||
@include mat.button-density(0);
|
||||
@include mat.table-density(-1);
|
||||
|
||||
// Create dark theme
|
||||
$gf-theme-dark: mat.m2-define-dark-theme(
|
||||
(
|
||||
color: (
|
||||
primary: mat.m2-define-palette($gf-primary),
|
||||
accent: mat.m2-define-palette($gf-secondary, 500, 900, A100)
|
||||
accent: mat.m2-define-palette($gf-secondary, 500, 900, A100),
|
||||
primary: mat.m2-define-palette($gf-primary)
|
||||
),
|
||||
density: -3,
|
||||
typography: $gf-typography
|
||||
)
|
||||
);
|
||||
|
||||
.is-dark-theme {
|
||||
@include mat.all-component-colors($gf-theme-dark);
|
||||
@include mat.button-density(0);
|
||||
@include mat.table-density(-1);
|
||||
}
|
||||
|
||||
@include mat.button-density(0);
|
||||
@include mat.core();
|
||||
@include mat.table-density(-1);
|
||||
|
||||
:root {
|
||||
--gf-theme-alpha-hover: 0.04;
|
||||
--gf-theme-primary-500: #36cfcc;
|
||||
|
@ -6,7 +6,6 @@ services:
|
||||
- ../.env
|
||||
environment:
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer
|
||||
NODE_ENV: production
|
||||
REDIS_HOST: redis
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
ports:
|
||||
@ -21,8 +20,9 @@ services:
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
postgres:
|
||||
image: postgres:15
|
||||
image: docker.io/library/postgres:15
|
||||
env_file:
|
||||
- ../.env
|
||||
healthcheck:
|
||||
@ -32,8 +32,9 @@ services:
|
||||
retries: 5
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
image: docker.io/library/redis:alpine
|
||||
env_file:
|
||||
- ../.env
|
||||
command: ['redis-server', '--requirepass', $REDIS_PASSWORD]
|
||||
|
@ -1,6 +1,6 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15
|
||||
image: docker.io/library/postgres:15
|
||||
container_name: postgres
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
@ -9,8 +9,9 @@ services:
|
||||
- ${POSTGRES_PORT:-5432}:5432
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
image: docker.io/library/redis:alpine
|
||||
container_name: redis
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
|
@ -1,12 +1,16 @@
|
||||
services:
|
||||
ghostfolio:
|
||||
image: ghostfolio/ghostfolio:latest
|
||||
image: docker.io/ghostfolio/ghostfolio:latest
|
||||
init: true
|
||||
read_only: true
|
||||
cap_drop:
|
||||
- ALL
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
env_file:
|
||||
- ../.env
|
||||
environment:
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer
|
||||
NODE_ENV: production
|
||||
REDIS_HOST: redis
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
ports:
|
||||
@ -21,8 +25,19 @@ services:
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
postgres:
|
||||
image: postgres:15
|
||||
image: docker.io/library/postgres:15
|
||||
cap_drop:
|
||||
- ALL
|
||||
cap_add:
|
||||
- CHOWN
|
||||
- DAC_READ_SEARCH
|
||||
- FOWNER
|
||||
- SETGID
|
||||
- SETUID
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
env_file:
|
||||
- ../.env
|
||||
healthcheck:
|
||||
@ -32,8 +47,14 @@ services:
|
||||
retries: 5
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
image: docker.io/library/redis:alpine
|
||||
user: '999:1000'
|
||||
cap_drop:
|
||||
- ALL
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
env_file:
|
||||
- ../.env
|
||||
command: ['redis-server', '--requirepass', $REDIS_PASSWORD]
|
||||
|
@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Will check if "yarn format" is run before executing.
|
||||
# Will check if "npm run format" is run before executing.
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message if
|
||||
# it wants to stop the commit.
|
||||
|
||||
echo "Running yarn format"
|
||||
echo "Running npm run format"
|
||||
|
||||
# Run the command and loop over its output
|
||||
FILES_TO_STAGE=""
|
||||
@ -14,13 +14,13 @@ while IFS= read -r line; do
|
||||
# Process each line here
|
||||
((i++))
|
||||
if [ $i -le 2 ]; then
|
||||
continue
|
||||
continue
|
||||
fi
|
||||
if [[ $line == Done* ]]; then
|
||||
break
|
||||
break
|
||||
fi
|
||||
FILES_TO_STAGE="$FILES_TO_STAGE $line"
|
||||
|
||||
done < <(yarn format )
|
||||
done < <(npm run format)
|
||||
git add $FILES_TO_STAGE
|
||||
echo "Files formatted. Committing..."
|
||||
|
50
libs/common/src/lib/calculation-helper.spec.ts
Normal file
50
libs/common/src/lib/calculation-helper.spec.ts
Normal file
@ -0,0 +1,50 @@
|
||||
import { Big } from 'big.js';
|
||||
|
||||
import { getAnnualizedPerformancePercent } from './calculation-helper';
|
||||
|
||||
describe('CalculationHelper', () => {
|
||||
describe('annualized performance percentage', () => {
|
||||
it('Get annualized performance', async () => {
|
||||
expect(
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: NaN, // differenceInDays of date-fns returns NaN for the same day
|
||||
netPerformancePercentage: new Big(0)
|
||||
}).toNumber()
|
||||
).toEqual(0);
|
||||
|
||||
expect(
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: 0,
|
||||
netPerformancePercentage: new Big(0)
|
||||
}).toNumber()
|
||||
).toEqual(0);
|
||||
|
||||
/**
|
||||
* Source: https://www.readyratios.com/reference/analysis/annualized_rate.html
|
||||
*/
|
||||
expect(
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: 65, // < 1 year
|
||||
netPerformancePercentage: new Big(0.1025)
|
||||
}).toNumber()
|
||||
).toBeCloseTo(0.729705);
|
||||
|
||||
expect(
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: 365, // 1 year
|
||||
netPerformancePercentage: new Big(0.05)
|
||||
}).toNumber()
|
||||
).toBeCloseTo(0.05);
|
||||
|
||||
/**
|
||||
* Source: https://www.investopedia.com/terms/a/annualized-total-return.asp#annualized-return-formula-and-calculation
|
||||
*/
|
||||
expect(
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: 575, // > 1 year
|
||||
netPerformancePercentage: new Big(0.2374)
|
||||
}).toNumber()
|
||||
).toBeCloseTo(0.145);
|
||||
});
|
||||
});
|
||||
});
|
20
libs/common/src/lib/calculation-helper.ts
Normal file
20
libs/common/src/lib/calculation-helper.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { Big } from 'big.js';
|
||||
import { isNumber } from 'lodash';
|
||||
|
||||
export function getAnnualizedPerformancePercent({
|
||||
daysInMarket,
|
||||
netPerformancePercentage
|
||||
}: {
|
||||
daysInMarket: number;
|
||||
netPerformancePercentage: Big;
|
||||
}): Big {
|
||||
if (isNumber(daysInMarket) && daysInMarket > 0) {
|
||||
const exponent = new Big(365).div(daysInMarket).toNumber();
|
||||
|
||||
return new Big(
|
||||
Math.pow(netPerformancePercentage.plus(1).toNumber(), exponent)
|
||||
).minus(1);
|
||||
}
|
||||
|
||||
return new Big(0);
|
||||
}
|
@ -91,6 +91,8 @@ export const HEADER_KEY_TOKEN = 'Authorization';
|
||||
export const MAX_CHART_ITEMS = 365;
|
||||
export const MAX_TOP_HOLDINGS = 50;
|
||||
|
||||
export const NUMERICAL_PRECISION_THRESHOLD = 100000;
|
||||
|
||||
export const PROPERTY_BENCHMARKS = 'BENCHMARKS';
|
||||
export const PROPERTY_BETTER_UPTIME_MONITOR_ID = 'BETTER_UPTIME_MONITOR_ID';
|
||||
export const PROPERTY_COUNTRIES_OF_SUBSCRIBERS = 'COUNTRIES_OF_SUBSCRIBERS';
|
||||
@ -130,6 +132,7 @@ export const REPLACE_NAME_PARTS = [
|
||||
];
|
||||
|
||||
export const SUPPORTED_LANGUAGE_CODES = [
|
||||
'ca',
|
||||
'de',
|
||||
'en',
|
||||
'es',
|
||||
|
@ -11,7 +11,7 @@ import {
|
||||
parseISO,
|
||||
subDays
|
||||
} from 'date-fns';
|
||||
import { de, es, fr, it, nl, pl, pt, tr, zhCN } from 'date-fns/locale';
|
||||
import { ca, de, es, fr, it, nl, pl, pt, tr, zhCN } from 'date-fns/locale';
|
||||
|
||||
import {
|
||||
DEFAULT_CURRENCY,
|
||||
@ -171,7 +171,9 @@ export function getCurrencyFromSymbol(aSymbol = '') {
|
||||
}
|
||||
|
||||
export function getDateFnsLocale(aLanguageCode: string) {
|
||||
if (aLanguageCode === 'de') {
|
||||
if (aLanguageCode === 'ca') {
|
||||
return ca;
|
||||
} else if (aLanguageCode === 'de') {
|
||||
return de;
|
||||
} else if (aLanguageCode === 'es') {
|
||||
return es;
|
||||
|
@ -15,6 +15,7 @@ export interface AdminMarketDataItem {
|
||||
date: Date;
|
||||
id: string;
|
||||
isBenchmark?: boolean;
|
||||
isUsedByUsersWithSubscription?: boolean;
|
||||
marketDataItemCount: number;
|
||||
name: string;
|
||||
sectorsCount: number;
|
||||
|
@ -10,7 +10,7 @@ export interface Product {
|
||||
note?: string;
|
||||
origin?: string;
|
||||
pricingPerYear?: string;
|
||||
region?: string;
|
||||
regions?: string[];
|
||||
slogan?: string;
|
||||
useAnonymously?: boolean;
|
||||
}
|
||||
|
@ -1,4 +1,9 @@
|
||||
import { ColorScheme, DateRange, ViewMode } from '@ghostfolio/common/types';
|
||||
import {
|
||||
ColorScheme,
|
||||
DateRange,
|
||||
HoldingsViewMode,
|
||||
ViewMode
|
||||
} from '@ghostfolio/common/types';
|
||||
|
||||
export interface UserSettings {
|
||||
annualInterestRate?: number;
|
||||
@ -9,6 +14,7 @@ export interface UserSettings {
|
||||
emergencyFund?: number;
|
||||
'filters.accounts'?: string[];
|
||||
'filters.tags'?: string[];
|
||||
holdingsViewMode?: HoldingsViewMode;
|
||||
isExperimentalFeatures?: boolean;
|
||||
isRestrictedView?: boolean;
|
||||
language?: string;
|
||||
|
@ -24,6 +24,10 @@ export class TimelinePosition {
|
||||
@Type(() => Big)
|
||||
fee: Big;
|
||||
|
||||
@Transform(transformToBig, { toClassOnly: true })
|
||||
@Type(() => Big)
|
||||
feeInBaseCurrency: Big;
|
||||
|
||||
firstBuyDate: string;
|
||||
|
||||
@Transform(transformToBig, { toClassOnly: true })
|
||||
|
@ -5,6 +5,7 @@ import { Role } from '@prisma/client';
|
||||
export const permissions = {
|
||||
accessAdminControl: 'accessAdminControl',
|
||||
accessAssistant: 'accessAssistant',
|
||||
accessHoldingsChart: 'accessHoldingsChart',
|
||||
createAccess: 'createAccess',
|
||||
createAccount: 'createAccount',
|
||||
createAccountBalance: 'createAccountBalance',
|
||||
@ -47,6 +48,7 @@ export function getPermissions(aRole: Role): string[] {
|
||||
return [
|
||||
permissions.accessAdminControl,
|
||||
permissions.accessAssistant,
|
||||
permissions.accessHoldingsChart,
|
||||
permissions.createAccess,
|
||||
permissions.createAccount,
|
||||
permissions.createAccountBalance,
|
||||
@ -72,11 +74,16 @@ export function getPermissions(aRole: Role): string[] {
|
||||
];
|
||||
|
||||
case 'DEMO':
|
||||
return [permissions.accessAssistant, permissions.createUserAccount];
|
||||
return [
|
||||
permissions.accessAssistant,
|
||||
permissions.accessHoldingsChart,
|
||||
permissions.createUserAccount
|
||||
];
|
||||
|
||||
case 'USER':
|
||||
return [
|
||||
permissions.accessAssistant,
|
||||
permissions.accessHoldingsChart,
|
||||
permissions.createAccess,
|
||||
permissions.createAccount,
|
||||
permissions.createAccountBalance,
|
||||
|
@ -76,7 +76,7 @@ export const personalFinanceTools: Product[] = [
|
||||
key: 'capmon',
|
||||
name: 'CapMon.org',
|
||||
origin: `Germany`,
|
||||
note: 'CapMon.org has discontinued in 2023',
|
||||
note: 'CapMon.org was discontinued in 2023',
|
||||
slogan: 'Next Generation Assets Tracking'
|
||||
},
|
||||
{
|
||||
@ -223,7 +223,7 @@ export const personalFinanceTools: Product[] = [
|
||||
hasSelfHostingAbility: false,
|
||||
key: 'intuit-mint',
|
||||
name: 'Intuit Mint',
|
||||
note: 'Intuit Mint has discontinued in 2023',
|
||||
note: 'Intuit Mint was discontinued in 2023',
|
||||
origin: `United States`,
|
||||
pricingPerYear: '$60',
|
||||
slogan: 'Managing money, made simple'
|
||||
@ -277,7 +277,7 @@ export const personalFinanceTools: Product[] = [
|
||||
name: 'markets.sh',
|
||||
origin: `Germany`,
|
||||
pricingPerYear: '€168',
|
||||
region: `Global`,
|
||||
regions: [`Global`],
|
||||
slogan: 'Track your investments'
|
||||
},
|
||||
{
|
||||
@ -286,10 +286,10 @@ export const personalFinanceTools: Product[] = [
|
||||
key: 'maybe-finance',
|
||||
languages: ['English'],
|
||||
name: 'Maybe Finance',
|
||||
note: 'Maybe Finance has discontinued in 2023',
|
||||
note: 'Maybe Finance was discontinued in 2023',
|
||||
origin: `United States`,
|
||||
pricingPerYear: '$145',
|
||||
region: `United States`,
|
||||
regions: [`United States`],
|
||||
slogan: 'Your financial future, in your control'
|
||||
},
|
||||
{
|
||||
@ -300,7 +300,7 @@ export const personalFinanceTools: Product[] = [
|
||||
name: 'Merlin',
|
||||
origin: `United States`,
|
||||
pricingPerYear: '$204',
|
||||
region: 'Canada, United States',
|
||||
regions: ['Canada', 'United States'],
|
||||
slogan: 'The smartest way to track your crypto'
|
||||
},
|
||||
{
|
||||
@ -340,7 +340,7 @@ export const personalFinanceTools: Product[] = [
|
||||
note: 'Originally named as Tresor One',
|
||||
origin: `Germany`,
|
||||
pricingPerYear: '€88',
|
||||
region: 'Austria, Germany, Switzerland',
|
||||
regions: ['Austria', 'Germany', 'Switzerland'],
|
||||
slogan: 'Dein Vermögen immer im Blick'
|
||||
},
|
||||
{
|
||||
@ -351,6 +351,18 @@ export const personalFinanceTools: Product[] = [
|
||||
origin: `Italy`,
|
||||
slogan: 'Your Personal Finance Hub'
|
||||
},
|
||||
{
|
||||
founded: 2008,
|
||||
hasFreePlan: true,
|
||||
hasSelfHostingAbility: false,
|
||||
key: 'pocketsmith',
|
||||
languages: ['English'],
|
||||
name: 'PocketSmith',
|
||||
origin: `New Zealand`,
|
||||
pricingPerYear: '$120',
|
||||
regions: [`Global`],
|
||||
slogan: 'Know where your money is going'
|
||||
},
|
||||
{
|
||||
hasFreePlan: false,
|
||||
hasSelfHostingAbility: false,
|
||||
@ -374,7 +386,7 @@ export const personalFinanceTools: Product[] = [
|
||||
hasFreePlan: true,
|
||||
key: 'portfoloo',
|
||||
name: 'Portfoloo',
|
||||
note: 'Portfoloo has discontinued',
|
||||
note: 'Portfoloo was discontinued',
|
||||
slogan:
|
||||
'Free Stock Portfolio Tracker with unlimited portfolio and stocks for DIY investors'
|
||||
},
|
||||
@ -432,14 +444,14 @@ export const personalFinanceTools: Product[] = [
|
||||
name: 'Sharesight',
|
||||
origin: `New Zealand`,
|
||||
pricingPerYear: '$135',
|
||||
region: `Global`,
|
||||
regions: [`Global`],
|
||||
slogan: 'Stock Portfolio Tracker'
|
||||
},
|
||||
{
|
||||
hasFreePlan: true,
|
||||
key: 'sharesmaster',
|
||||
name: 'SharesMaster',
|
||||
note: 'SharesMaster has discontinued',
|
||||
note: 'SharesMaster was discontinued',
|
||||
slogan: 'Free Stock Portfolio Tracker'
|
||||
},
|
||||
{
|
||||
@ -480,7 +492,7 @@ export const personalFinanceTools: Product[] = [
|
||||
key: 'stockmarketeye',
|
||||
name: 'StockMarketEye',
|
||||
origin: `France`,
|
||||
note: 'StockMarketEye has discontinued in 2023',
|
||||
note: 'StockMarketEye was discontinued in 2023',
|
||||
slogan: 'A Powerful Portfolio & Investment Tracking App'
|
||||
},
|
||||
{
|
||||
@ -581,8 +593,9 @@ export const personalFinanceTools: Product[] = [
|
||||
key: 'yeekatee',
|
||||
languages: ['Deutsch', 'English', 'Español', 'Français', 'Italiano'],
|
||||
name: 'yeekatee',
|
||||
note: 'yeekatee was discontinued in 2024',
|
||||
origin: `Switzerland`,
|
||||
region: `Global`,
|
||||
regions: [`Global`],
|
||||
slogan: 'Connect. Share. Invest.'
|
||||
},
|
||||
{
|
||||
|
@ -1 +0,0 @@
|
||||
export type HoldingViewMode = 'CHART' | 'TABLE';
|
1
libs/common/src/lib/types/holdings-view-mode.type.ts
Normal file
1
libs/common/src/lib/types/holdings-view-mode.type.ts
Normal file
@ -0,0 +1 @@
|
||||
export type HoldingsViewMode = 'CHART' | 'TABLE';
|
@ -8,7 +8,7 @@ import type { DateRange } from './date-range.type';
|
||||
import type { Granularity } from './granularity.type';
|
||||
import type { GroupBy } from './group-by.type';
|
||||
import type { HoldingType } from './holding-type.type';
|
||||
import type { HoldingViewMode } from './holding-view-mode.type';
|
||||
import type { HoldingsViewMode } from './holdings-view-mode.type';
|
||||
import type { MarketAdvanced } from './market-advanced.type';
|
||||
import type { MarketDataPreset } from './market-data-preset.type';
|
||||
import type { MarketState } from './market-state.type';
|
||||
@ -31,7 +31,7 @@ export type {
|
||||
Granularity,
|
||||
GroupBy,
|
||||
HoldingType,
|
||||
HoldingViewMode,
|
||||
HoldingsViewMode,
|
||||
Market,
|
||||
MarketAdvanced,
|
||||
MarketDataPreset,
|
||||
|
@ -11,10 +11,10 @@ const locales = {
|
||||
DATA_IMPORT_AND_EXPORT_TOOLTIP_OSS: $localize`Switch to Ghostfolio Premium easily`,
|
||||
DATA_IMPORT_AND_EXPORT_TOOLTIP_PREMIUM: $localize`Switch to Ghostfolio Open Source or Ghostfolio Basic easily`,
|
||||
EMERGENCY_FUND: $localize`Emergency Fund`,
|
||||
Global: $localize`Global`,
|
||||
GRANT: $localize`Grant`,
|
||||
HIGHER_RISK: $localize`Higher Risk`,
|
||||
IMPORT_ACTIVITY_ERROR_IS_DUPLICATE: $localize`This activity already exists.`,
|
||||
Japan: $localize`Japan`,
|
||||
LOWER_RISK: $localize`Lower Risk`,
|
||||
MONTH: $localize`Month`,
|
||||
MONTHS: $localize`Months`,
|
||||
@ -65,6 +65,28 @@ const locales = {
|
||||
Oceania: $localize`Oceania`,
|
||||
'South America': $localize`South America`,
|
||||
|
||||
// Countries
|
||||
Australia: $localize`Australia`,
|
||||
Austria: $localize`Austria`,
|
||||
Belgium: $localize`Belgium`,
|
||||
Bulgaria: $localize`Bulgaria`,
|
||||
Canada: $localize`Canada`,
|
||||
'Czech Republic': $localize`Czech Republic`,
|
||||
Finland: $localize`Finland`,
|
||||
France: $localize`France`,
|
||||
Germany: $localize`Germany`,
|
||||
India: $localize`India`,
|
||||
Italy: $localize`Italy`,
|
||||
Japan: $localize`Japan`,
|
||||
Netherlands: $localize`Netherlands`,
|
||||
'New Zealand': $localize`New Zealand`,
|
||||
Poland: $localize`Poland`,
|
||||
Romania: $localize`Romania`,
|
||||
'South Africa': $localize`South Africa`,
|
||||
Switzerland: $localize`Switzerland`,
|
||||
Thailand: $localize`Thailand`,
|
||||
'United States': $localize`United States`,
|
||||
|
||||
// Fear and Greed Index
|
||||
EXTREME_FEAR: $localize`Extreme Fear`,
|
||||
EXTREME_GREED: $localize`Extreme Greed`,
|
||||
|
@ -29,6 +29,21 @@ import ChartDataLabels from 'chartjs-plugin-datalabels';
|
||||
import * as Color from 'color';
|
||||
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
||||
|
||||
const {
|
||||
blue,
|
||||
cyan,
|
||||
grape,
|
||||
green,
|
||||
indigo,
|
||||
lime,
|
||||
orange,
|
||||
pink,
|
||||
red,
|
||||
teal,
|
||||
violet,
|
||||
yellow
|
||||
} = require('open-color');
|
||||
|
||||
@Component({
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
imports: [CommonModule, NgxSkeletonLoaderModule],
|
||||
@ -350,24 +365,20 @@ export class GfPortfolioProportionChartComponent
|
||||
this.isLoading = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Color palette, inspired by https://yeun.github.io/open-color
|
||||
*/
|
||||
private getColorPalette() {
|
||||
// TODO: Reuse require('open-color')
|
||||
return [
|
||||
'#329af0', // blue 5
|
||||
'#20c997', // teal 5
|
||||
'#94d82d', // lime 5
|
||||
'#ff922b', // orange 5
|
||||
'#f06595', // pink 5
|
||||
'#845ef7', // violet 5
|
||||
'#5c7cfa', // indigo 5
|
||||
'#22b8cf', // cyan 5
|
||||
'#51cf66', // green 5
|
||||
'#fcc419', // yellow 5
|
||||
'#ff6b6b', // red 5
|
||||
'#cc5de8' // grape 5
|
||||
blue[5],
|
||||
teal[5],
|
||||
lime[5],
|
||||
orange[5],
|
||||
pink[5],
|
||||
violet[5],
|
||||
indigo[5],
|
||||
cyan[5],
|
||||
green[5],
|
||||
yellow[5],
|
||||
red[5],
|
||||
grape[5]
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { getLocale } from '@ghostfolio/common/helper';
|
||||
import { getAnnualizedPerformancePercent } from '@ghostfolio/common/calculation-helper';
|
||||
import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces';
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
@ -15,10 +15,12 @@ import {
|
||||
ViewChild
|
||||
} from '@angular/core';
|
||||
import { DataSource } from '@prisma/client';
|
||||
import { Big } from 'big.js';
|
||||
import { ChartConfiguration } from 'chart.js';
|
||||
import { LinearScale } from 'chart.js';
|
||||
import { Chart } from 'chart.js';
|
||||
import { TreemapController, TreemapElement } from 'chartjs-chart-treemap';
|
||||
import { differenceInDays } from 'date-fns';
|
||||
import { orderBy } from 'lodash';
|
||||
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
||||
|
||||
@ -42,6 +44,8 @@ export class GfTreemapChartComponent
|
||||
|
||||
@ViewChild('chartCanvas') chartCanvas: ElementRef<HTMLCanvasElement>;
|
||||
|
||||
public static readonly HEAT_MULTIPLIER = 5;
|
||||
|
||||
public chart: Chart<'treemap'>;
|
||||
public isLoading = true;
|
||||
|
||||
@ -72,29 +76,58 @@ export class GfTreemapChartComponent
|
||||
datasets: [
|
||||
{
|
||||
backgroundColor(ctx) {
|
||||
const netPerformancePercentWithCurrencyEffect =
|
||||
ctx.raw._data.netPerformancePercentWithCurrencyEffect;
|
||||
const annualizedNetPerformancePercentWithCurrencyEffect =
|
||||
getAnnualizedPerformancePercent({
|
||||
daysInMarket: differenceInDays(
|
||||
new Date(),
|
||||
ctx.raw._data.dateOfFirstActivity
|
||||
),
|
||||
netPerformancePercentage: new Big(
|
||||
ctx.raw._data.netPerformancePercentWithCurrencyEffect
|
||||
)
|
||||
}).toNumber();
|
||||
|
||||
if (netPerformancePercentWithCurrencyEffect > 0.03) {
|
||||
if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect >
|
||||
0.03 * GfTreemapChartComponent.HEAT_MULTIPLIER
|
||||
) {
|
||||
return green[9];
|
||||
} else if (netPerformancePercentWithCurrencyEffect > 0.02) {
|
||||
} else if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect >
|
||||
0.02 * GfTreemapChartComponent.HEAT_MULTIPLIER
|
||||
) {
|
||||
return green[7];
|
||||
} else if (netPerformancePercentWithCurrencyEffect > 0.01) {
|
||||
} else if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect >
|
||||
0.01 * GfTreemapChartComponent.HEAT_MULTIPLIER
|
||||
) {
|
||||
return green[5];
|
||||
} else if (netPerformancePercentWithCurrencyEffect > 0) {
|
||||
} else if (annualizedNetPerformancePercentWithCurrencyEffect > 0) {
|
||||
return green[3];
|
||||
} else if (netPerformancePercentWithCurrencyEffect === 0) {
|
||||
} else if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect === 0
|
||||
) {
|
||||
return gray[3];
|
||||
} else if (netPerformancePercentWithCurrencyEffect > -0.01) {
|
||||
} else if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect >
|
||||
-0.01 * GfTreemapChartComponent.HEAT_MULTIPLIER
|
||||
) {
|
||||
return red[3];
|
||||
} else if (netPerformancePercentWithCurrencyEffect > -0.02) {
|
||||
} else if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect >
|
||||
-0.02 * GfTreemapChartComponent.HEAT_MULTIPLIER
|
||||
) {
|
||||
return red[5];
|
||||
} else if (netPerformancePercentWithCurrencyEffect > -0.03) {
|
||||
} else if (
|
||||
annualizedNetPerformancePercentWithCurrencyEffect >
|
||||
-0.03 * GfTreemapChartComponent.HEAT_MULTIPLIER
|
||||
) {
|
||||
return red[7];
|
||||
} else {
|
||||
return red[9];
|
||||
}
|
||||
},
|
||||
borderRadius: 4,
|
||||
key: 'allocationInPercentage',
|
||||
labels: {
|
||||
align: 'left',
|
||||
|
@ -29,7 +29,7 @@ export class GfValueComponent implements OnChanges {
|
||||
@Input() isPercent = false;
|
||||
@Input() locale: string;
|
||||
@Input() position = '';
|
||||
@Input() precision: number | undefined;
|
||||
@Input() precision: number;
|
||||
@Input() size: 'large' | 'medium' | 'small' = 'small';
|
||||
@Input() subLabel = '';
|
||||
@Input() unit = '';
|
||||
@ -58,8 +58,10 @@ export class GfValueComponent implements OnChanges {
|
||||
this.formattedValue = this.absoluteValue.toLocaleString(
|
||||
this.locale,
|
||||
{
|
||||
maximumFractionDigits: 2,
|
||||
minimumFractionDigits: 2
|
||||
maximumFractionDigits:
|
||||
this.precision >= 0 ? this.precision : 2,
|
||||
minimumFractionDigits:
|
||||
this.precision >= 0 ? this.precision : 2
|
||||
}
|
||||
);
|
||||
} catch {}
|
||||
@ -68,8 +70,10 @@ export class GfValueComponent implements OnChanges {
|
||||
this.formattedValue = (this.absoluteValue * 100).toLocaleString(
|
||||
this.locale,
|
||||
{
|
||||
maximumFractionDigits: 2,
|
||||
minimumFractionDigits: 2
|
||||
maximumFractionDigits:
|
||||
this.precision >= 0 ? this.precision : 2,
|
||||
minimumFractionDigits:
|
||||
this.precision >= 0 ? this.precision : 2
|
||||
}
|
||||
);
|
||||
} catch {}
|
||||
@ -77,8 +81,8 @@ export class GfValueComponent implements OnChanges {
|
||||
} else if (this.isCurrency) {
|
||||
try {
|
||||
this.formattedValue = this.value?.toLocaleString(this.locale, {
|
||||
maximumFractionDigits: 2,
|
||||
minimumFractionDigits: 2
|
||||
maximumFractionDigits: this.precision >= 0 ? this.precision : 2,
|
||||
minimumFractionDigits: this.precision >= 0 ? this.precision : 2
|
||||
});
|
||||
} catch {}
|
||||
} else if (this.isPercent) {
|
||||
@ -86,12 +90,12 @@ export class GfValueComponent implements OnChanges {
|
||||
this.formattedValue = (this.value * 100).toLocaleString(
|
||||
this.locale,
|
||||
{
|
||||
maximumFractionDigits: 2,
|
||||
minimumFractionDigits: 2
|
||||
maximumFractionDigits: this.precision >= 0 ? this.precision : 2,
|
||||
minimumFractionDigits: this.precision >= 0 ? this.precision : 2
|
||||
}
|
||||
);
|
||||
} catch {}
|
||||
} else if (this.precision || this.precision === 0) {
|
||||
} else if (this.precision >= 0) {
|
||||
try {
|
||||
this.formattedValue = this.value?.toLocaleString(this.locale, {
|
||||
maximumFractionDigits: this.precision,
|
||||
@ -136,6 +140,7 @@ export class GfValueComponent implements OnChanges {
|
||||
this.isNumber = false;
|
||||
this.isString = false;
|
||||
this.locale = this.locale || getLocale();
|
||||
this.precision = this.precision >= 0 ? this.precision : undefined;
|
||||
this.useAbsoluteValue = false;
|
||||
}
|
||||
}
|
||||
|
34039
package-lock.json
generated
Normal file
34039
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
108
package.json
108
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ghostfolio",
|
||||
"version": "2.95.0",
|
||||
"version": "2.101.0",
|
||||
"homepage": "https://ghostfol.io",
|
||||
"license": "AGPL-3.0",
|
||||
"repository": "https://github.com/ghostfolio/ghostfolio",
|
||||
@ -15,7 +15,7 @@
|
||||
"affected:test": "nx affected:test",
|
||||
"analyze:client": "nx run client:build:production --stats-json && webpack-bundle-analyzer -p 1234 dist/apps/client/en/stats.json",
|
||||
"angular": "node --max_old_space_size=32768 ./node_modules/@angular/cli/bin/ng",
|
||||
"build:production": "nx run api:copy-assets && nx run api:build:production && nx run client:copy-assets && nx run client:build:production && yarn replace-placeholders-in-build",
|
||||
"build:production": "nx run api:copy-assets && nx run api:build:production && nx run client:copy-assets && nx run client:build:production && npm run replace-placeholders-in-build",
|
||||
"build:storybook": "nx run ui:build-storybook",
|
||||
"database:format-schema": "prisma format",
|
||||
"database:generate-typings": "prisma generate",
|
||||
@ -24,7 +24,7 @@
|
||||
"database:migrate": "prisma migrate deploy",
|
||||
"database:push": "prisma db push",
|
||||
"database:seed": "prisma db seed",
|
||||
"database:setup": "yarn database:push && yarn database:seed",
|
||||
"database:setup": "npm run database:push && npm run database:seed",
|
||||
"database:validate-schema": "prisma validate",
|
||||
"dep-graph": "nx dep-graph",
|
||||
"e2e": "ng e2e",
|
||||
@ -40,10 +40,10 @@
|
||||
"replace-placeholders-in-build": "node ./replace.build.js",
|
||||
"start": "node dist/apps/api/main",
|
||||
"start:client": "nx run client:copy-assets && nx run client:serve --configuration=development-en --hmr -o",
|
||||
"start:production": "yarn database:migrate && yarn database:seed && node main",
|
||||
"start:production": "npm run database:migrate && npm run database:seed && node main",
|
||||
"start:server": "nx run api:copy-assets && nx run api:serve --watch",
|
||||
"start:storybook": "nx run ui:storybook",
|
||||
"test": "yarn test:api && yarn test:common",
|
||||
"test": "npm run test:api && npm run test:common",
|
||||
"test:api": "npx dotenv-cli -e .env.example -- nx test api",
|
||||
"test:common": "npx dotenv-cli -e .env.example -- nx test common",
|
||||
"test:single": "nx run api:test --test-file portfolio-calculator-novn-buy-and-sell.spec.ts",
|
||||
@ -54,17 +54,17 @@
|
||||
"workspace-generator": "nx workspace-generator"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/animations": "18.0.4",
|
||||
"@angular/cdk": "18.0.4",
|
||||
"@angular/common": "18.0.4",
|
||||
"@angular/compiler": "18.0.4",
|
||||
"@angular/core": "18.0.4",
|
||||
"@angular/forms": "18.0.4",
|
||||
"@angular/material": "18.0.4",
|
||||
"@angular/platform-browser": "18.0.4",
|
||||
"@angular/platform-browser-dynamic": "18.0.4",
|
||||
"@angular/router": "18.0.4",
|
||||
"@angular/service-worker": "18.0.4",
|
||||
"@angular/animations": "18.1.1",
|
||||
"@angular/cdk": "18.1.1",
|
||||
"@angular/common": "18.1.1",
|
||||
"@angular/compiler": "18.1.1",
|
||||
"@angular/core": "18.1.1",
|
||||
"@angular/forms": "18.1.1",
|
||||
"@angular/material": "18.1.1",
|
||||
"@angular/platform-browser": "18.1.1",
|
||||
"@angular/platform-browser-dynamic": "18.1.1",
|
||||
"@angular/router": "18.1.1",
|
||||
"@angular/service-worker": "18.1.1",
|
||||
"@codewithdan/observable-store": "2.2.15",
|
||||
"@dfinity/agent": "0.15.7",
|
||||
"@dfinity/auth-client": "0.15.7",
|
||||
@ -84,7 +84,7 @@
|
||||
"@nestjs/platform-express": "10.1.3",
|
||||
"@nestjs/schedule": "3.0.2",
|
||||
"@nestjs/serve-static": "4.0.0",
|
||||
"@prisma/client": "5.16.1",
|
||||
"@prisma/client": "5.17.0",
|
||||
"@simplewebauthn/browser": "9.0.1",
|
||||
"@simplewebauthn/server": "9.0.3",
|
||||
"@stripe/stripe-js": "3.5.0",
|
||||
@ -116,7 +116,7 @@
|
||||
"ionicons": "7.4.0",
|
||||
"jsonpath": "1.1.1",
|
||||
"lodash": "4.17.21",
|
||||
"marked": "13.0.0",
|
||||
"marked": "12.0.2",
|
||||
"ms": "3.0.0-canary.1",
|
||||
"ng-extract-i18n-merge": "2.12.0",
|
||||
"ngx-device-detector": "8.0.0",
|
||||
@ -128,7 +128,7 @@
|
||||
"passport": "0.7.0",
|
||||
"passport-google-oauth20": "2.0.0",
|
||||
"passport-jwt": "4.0.1",
|
||||
"prisma": "5.16.1",
|
||||
"prisma": "5.17.0",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "7.5.6",
|
||||
"stripe": "15.11.0",
|
||||
@ -139,34 +139,34 @@
|
||||
"zone.js": "0.14.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "18.0.5",
|
||||
"@angular-devkit/core": "18.0.5",
|
||||
"@angular-devkit/schematics": "18.0.5",
|
||||
"@angular-eslint/eslint-plugin": "18.0.1",
|
||||
"@angular-eslint/eslint-plugin-template": "18.0.1",
|
||||
"@angular-eslint/template-parser": "18.0.1",
|
||||
"@angular/cli": "18.0.5",
|
||||
"@angular/compiler-cli": "18.0.4",
|
||||
"@angular/language-service": "18.0.4",
|
||||
"@angular/localize": "18.0.4",
|
||||
"@angular/pwa": "18.0.5",
|
||||
"@angular-devkit/build-angular": "18.1.1",
|
||||
"@angular-devkit/core": "18.1.1",
|
||||
"@angular-devkit/schematics": "18.1.1",
|
||||
"@angular-eslint/eslint-plugin": "18.1.0",
|
||||
"@angular-eslint/eslint-plugin-template": "18.1.0",
|
||||
"@angular-eslint/template-parser": "18.1.0",
|
||||
"@angular/cli": "18.1.1",
|
||||
"@angular/compiler-cli": "18.1.1",
|
||||
"@angular/language-service": "18.1.1",
|
||||
"@angular/localize": "18.1.1",
|
||||
"@angular/pwa": "18.1.1",
|
||||
"@nestjs/schematics": "10.0.1",
|
||||
"@nestjs/testing": "10.1.3",
|
||||
"@nx/angular": "19.4.0",
|
||||
"@nx/cypress": "19.4.0",
|
||||
"@nx/eslint-plugin": "19.4.0",
|
||||
"@nx/jest": "19.4.0",
|
||||
"@nx/js": "19.4.0",
|
||||
"@nx/nest": "19.4.0",
|
||||
"@nx/node": "19.4.0",
|
||||
"@nx/storybook": "19.4.0",
|
||||
"@nx/web": "19.4.0",
|
||||
"@nx/workspace": "19.4.0",
|
||||
"@schematics/angular": "18.0.3",
|
||||
"@nx/angular": "19.5.1",
|
||||
"@nx/cypress": "19.5.1",
|
||||
"@nx/eslint-plugin": "19.5.1",
|
||||
"@nx/jest": "19.5.1",
|
||||
"@nx/js": "19.5.1",
|
||||
"@nx/nest": "19.5.1",
|
||||
"@nx/node": "19.5.1",
|
||||
"@nx/storybook": "19.5.1",
|
||||
"@nx/web": "19.5.1",
|
||||
"@nx/workspace": "19.5.1",
|
||||
"@schematics/angular": "18.1.1",
|
||||
"@simplewebauthn/types": "9.0.1",
|
||||
"@storybook/addon-essentials": "7.6.5",
|
||||
"@storybook/angular": "7.6.5",
|
||||
"@storybook/core-server": "7.6.5",
|
||||
"@storybook/addon-essentials": "8.2.6",
|
||||
"@storybook/angular": "8.2.6",
|
||||
"@storybook/core-server": "8.2.6",
|
||||
"@trivago/prettier-plugin-sort-imports": "4.3.0",
|
||||
"@types/big.js": "6.2.2",
|
||||
"@types/body-parser": "1.19.5",
|
||||
@ -175,37 +175,37 @@
|
||||
"@types/google-spreadsheet": "3.1.5",
|
||||
"@types/jest": "29.4.4",
|
||||
"@types/lodash": "4.17.0",
|
||||
"@types/node": "18.16.9",
|
||||
"@types/node": "20.14.10",
|
||||
"@types/papaparse": "5.3.7",
|
||||
"@types/passport-google-oauth20": "2.0.16",
|
||||
"@typescript-eslint/eslint-plugin": "6.21.0",
|
||||
"@typescript-eslint/parser": "6.21.0",
|
||||
"codelyzer": "6.0.1",
|
||||
"cypress": "6.2.1",
|
||||
"eslint": "8.56.0",
|
||||
"eslint": "8.57.0",
|
||||
"eslint-config-prettier": "9.1.0",
|
||||
"eslint-plugin-cypress": "2.15.1",
|
||||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-storybook": "0.6.15",
|
||||
"jest": "29.4.3",
|
||||
"jest-environment-jsdom": "29.4.3",
|
||||
"jest": "29.7.0",
|
||||
"jest-environment-jsdom": "29.7.0",
|
||||
"jest-preset-angular": "14.1.0",
|
||||
"nx": "19.4.0",
|
||||
"prettier": "3.3.1",
|
||||
"nx": "19.5.1",
|
||||
"prettier": "3.3.3",
|
||||
"prettier-plugin-organize-attributes": "1.0.0",
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"replace-in-file": "7.0.1",
|
||||
"shx": "0.3.4",
|
||||
"storybook": "7.0.9",
|
||||
"storybook": "8.2.6",
|
||||
"ts-jest": "29.1.0",
|
||||
"ts-node": "10.9.1",
|
||||
"ts-node": "10.9.2",
|
||||
"tslib": "2.6.0",
|
||||
"typescript": "5.4.4",
|
||||
"typescript": "5.5.3",
|
||||
"webpack-bundle-analyzer": "4.10.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
"node": ">=20"
|
||||
},
|
||||
"prisma": {
|
||||
"seed": "node prisma/seed.js"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user