Browse Source

Feature/set up language localization for Korean (ko) (#6136)

* Set up language localization for Korean (ko)

* Update changelog
pull/6186/head^2
yaro 2 days ago
committed by GitHub
parent
commit
825a366367
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      CHANGELOG.md
  2. 15
      apps/client/project.json
  3. 15
      apps/client/src/app/components/footer/footer.component.html
  4. 1
      apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
  5. 13
      apps/client/src/app/components/user-account-settings/user-account-settings.html
  6. 5
      apps/client/src/app/pages/features/features-page.html
  7. 5
      apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
  8. 8665
      apps/client/src/locales/messages.ko.xlf
  9. 1
      libs/common/src/lib/config.ts
  10. 17
      libs/common/src/lib/helper.ts

6
CHANGELOG.md

@ -5,6 +5,12 @@ 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/), 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). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Added
- Set up the language localization for Korean (`ko`)
## 2.229.0 - 2026-01-11 ## 2.229.0 - 2026-01-11
### Changed ### Changed

15
apps/client/project.json

@ -26,6 +26,10 @@
"baseHref": "/it/", "baseHref": "/it/",
"translation": "apps/client/src/locales/messages.it.xlf" "translation": "apps/client/src/locales/messages.it.xlf"
}, },
"ko": {
"baseHref": "/ko/",
"translation": "apps/client/src/locales/messages.ko.xlf"
},
"nl": { "nl": {
"baseHref": "/nl/", "baseHref": "/nl/",
"translation": "apps/client/src/locales/messages.nl.xlf" "translation": "apps/client/src/locales/messages.nl.xlf"
@ -110,6 +114,10 @@
"baseHref": "/it/", "baseHref": "/it/",
"localize": ["it"] "localize": ["it"]
}, },
"development-ko": {
"baseHref": "/ko/",
"localize": ["ko"]
},
"development-nl": { "development-nl": {
"baseHref": "/nl/", "baseHref": "/nl/",
"localize": ["nl"] "localize": ["nl"]
@ -213,6 +221,9 @@
"sslKey": "apps/client/localhost.pem" "sslKey": "apps/client/localhost.pem"
}, },
"configurations": { "configurations": {
"development-ca": {
"buildTarget": "client:build:development-ca"
},
"development-de": { "development-de": {
"buildTarget": "client:build:development-de" "buildTarget": "client:build:development-de"
}, },
@ -228,6 +239,9 @@
"development-it": { "development-it": {
"buildTarget": "client:build:development-it" "buildTarget": "client:build:development-it"
}, },
"development-ko": {
"buildTarget": "client:build:development-ko"
},
"development-nl": { "development-nl": {
"buildTarget": "client:build:development-nl" "buildTarget": "client:build:development-nl"
}, },
@ -264,6 +278,7 @@
"messages.es.xlf", "messages.es.xlf",
"messages.fr.xlf", "messages.fr.xlf",
"messages.it.xlf", "messages.it.xlf",
"messages.ko.xlf",
"messages.nl.xlf", "messages.nl.xlf",
"messages.pl.xlf", "messages.pl.xlf",
"messages.pt.xlf", "messages.pt.xlf",

15
apps/client/src/app/components/footer/footer.component.html

@ -122,7 +122,9 @@
</li> </li>
--> -->
<li> <li>
<a href="../zh" title="Ghostfolio in Chinese">Chinese</a> <a href="../zh" title="Ghostfolio in Chinese (简体中文)"
>Chinese (简体中文)</a
>
</li> </li>
<li> <li>
<a href="../de" title="Ghostfolio in Deutsch">Deutsch</a> <a href="../de" title="Ghostfolio in Deutsch">Deutsch</a>
@ -139,6 +141,13 @@
<li> <li>
<a href="../it" title="Ghostfolio in Italiano">Italiano</a> <a href="../it" title="Ghostfolio in Italiano">Italiano</a>
</li> </li>
<!--
<li>
<a href="../ko" title="Ghostfolio in Korean (한국어)"
>Korean (한국어)</a
>
</li>
-->
<li> <li>
<a href="../nl" title="Ghostfolio in Nederlands">Nederlands</a> <a href="../nl" title="Ghostfolio in Nederlands">Nederlands</a>
</li> </li>
@ -153,7 +162,9 @@
</li> </li>
<!-- <!--
<li> <li>
<a href="../uk" title="Ghostfolio in Українська">Українська</a> <a href="../uk" title="Ghostfolio in Ukrainian (Українська)"
>Ukrainian (Українська)</a
>
</li> </li>
--> -->
</ul> </ul>

1
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts

@ -89,6 +89,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
'es', 'es',
'fr', 'fr',
'it', 'it',
'ko',
'nl', 'nl',
'pl', 'pl',
'pt', 'pt',

13
apps/client/src/app/components/user-account-settings/user-account-settings.html

@ -87,7 +87,8 @@
> >
} }
<mat-option value="zh" <mat-option value="zh"
>Chinese (<ng-container i18n>Community</ng-container >Chinese / 简体中文 (<ng-container i18n
>Community</ng-container
>)</mat-option >)</mat-option
> >
<mat-option value="es" <mat-option value="es"
@ -102,6 +103,13 @@
>Italiano (<ng-container i18n>Community</ng-container >Italiano (<ng-container i18n>Community</ng-container
>)</mat-option >)</mat-option
> >
@if (user?.settings?.isExperimentalFeatures) {
<mat-option value="ko"
>Korean / 한국어 (<ng-container i18n
>Community</ng-container
>)</mat-option
>
}
<mat-option value="nl" <mat-option value="nl"
>Nederlands (<ng-container i18n>Community</ng-container >Nederlands (<ng-container i18n>Community</ng-container
>)</mat-option >)</mat-option
@ -120,7 +128,8 @@
> >
@if (user?.settings?.isExperimentalFeatures) { @if (user?.settings?.isExperimentalFeatures) {
<mat-option value="uk" <mat-option value="uk"
>Українська (<ng-container i18n>Community</ng-container >Ukrainian / Українська (<ng-container i18n
>Community</ng-container
>)</mat-option >)</mat-option
> >
} }

5
apps/client/src/app/pages/features/features-page.html

@ -260,8 +260,9 @@
<p class="m-0"> <p class="m-0">
Use Ghostfolio in multiple languages: English, Use Ghostfolio in multiple languages: English,
<!-- Català, --> <!-- Català, -->
Chinese, Dutch, French, German, Italian, Polish, Portuguese, Chinese, Dutch, French, German, Italian,
Spanish and Turkish <!-- Korean, -->
Polish, Portuguese, Spanish and Turkish
<!-- and Ukrainian --> <!-- and Ukrainian -->
are currently supported. are currently supported.
</p> </p>

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

@ -43,15 +43,16 @@ export class GfProductPageComponent implements OnInit {
isOpenSource: true, isOpenSource: true,
key: 'ghostfolio', key: 'ghostfolio',
languages: [ languages: [
'Chinese (简体中文)',
'Deutsch', 'Deutsch',
'English', 'English',
'Español', 'Español',
'Français', 'Français',
'Italiano', 'Italiano',
'Korean (한국어)',
'Nederlands', 'Nederlands',
'Português', 'Português',
'Türkçe', 'Türkçe'
'简体中文'
], ],
name: 'Ghostfolio', name: 'Ghostfolio',
origin: $localize`Switzerland`, origin: $localize`Switzerland`,

8665
apps/client/src/locales/messages.ko.xlf

File diff suppressed because it is too large

1
libs/common/src/lib/config.ts

@ -193,6 +193,7 @@ export const SUPPORTED_LANGUAGE_CODES = [
'es', 'es',
'fr', 'fr',
'it', 'it',
'ko',
'nl', 'nl',
'pl', 'pl',
'pt', 'pt',

17
libs/common/src/lib/helper.ts

@ -11,7 +11,20 @@ import {
parseISO, parseISO,
subDays subDays
} from 'date-fns'; } from 'date-fns';
import { ca, de, es, fr, it, nl, pl, pt, tr, uk, zhCN } from 'date-fns/locale'; import {
ca,
de,
es,
fr,
it,
ko,
nl,
pl,
pt,
tr,
uk,
zhCN
} from 'date-fns/locale';
import { get, isNil, isString } from 'lodash'; import { get, isNil, isString } from 'lodash';
import { import {
@ -185,6 +198,8 @@ export function getDateFnsLocale(aLanguageCode: string) {
return fr; return fr;
} else if (aLanguageCode === 'it') { } else if (aLanguageCode === 'it') {
return it; return it;
} else if (aLanguageCode === 'ko') {
return ko;
} else if (aLanguageCode === 'nl') { } else if (aLanguageCode === 'nl') {
return nl; return nl;
} else if (aLanguageCode === 'pl') { } else if (aLanguageCode === 'pl') {

Loading…
Cancel
Save