Browse Source

Merge branch 'main' into feature/refresh-cryptocurrencies-list-20250728

pull/5270/head
Thomas Kaul 4 weeks ago
committed by GitHub
parent
commit
3144fb734c
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 57
      apps/client/src/assets/oss-friends.json
  3. 22
      apps/client/src/locales/messages.nl.xlf

1
CHANGELOG.md

@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Restructured the response of the portfolio report endpoint (_X-ray_) - Restructured the response of the portfolio report endpoint (_X-ray_)
- Refreshed the cryptocurrencies list - Refreshed the cryptocurrencies list
- Improved the language localization for Dutch (`nl`)
- Improved the language localization for Spanish (`es`) - Improved the language localization for Spanish (`es`)
### Fixed ### Fixed

57
apps/client/src/assets/oss-friends.json

@ -1,5 +1,5 @@
{ {
"createdAt": "2024-12-30T00:00:00.000Z", "createdAt": "2025-07-28T00:00:00.000Z",
"data": [ "data": [
{ {
"name": "Activepieces", "name": "Activepieces",
@ -16,11 +16,6 @@
"description": "Argos provides the developer tools to debug tests and detect visual regressions.", "description": "Argos provides the developer tools to debug tests and detect visual regressions.",
"href": "https://argos-ci.com" "href": "https://argos-ci.com"
}, },
{
"name": "BoxyHQ",
"description": "BoxyHQ’s suite of APIs for security and privacy helps engineering teams build and ship compliant cloud applications faster.",
"href": "https://boxyhq.com"
},
{ {
"name": "Cal.com", "name": "Cal.com",
"description": "Cal.com is a scheduling tool that helps you schedule meetings without the back-and-forth emails.", "description": "Cal.com is a scheduling tool that helps you schedule meetings without the back-and-forth emails.",
@ -31,41 +26,16 @@
"description": "ClassroomIO is a no-code tool that allows you build and scale your own teaching platform with ease.", "description": "ClassroomIO is a no-code tool that allows you build and scale your own teaching platform with ease.",
"href": "https://www.classroomio.com" "href": "https://www.classroomio.com"
}, },
{
"name": "Crowd.dev",
"description": "Centralize community, product, and customer data to understand which companies are engaging with your open source project.",
"href": "https://www.crowd.dev"
},
{
"name": "DevHunt",
"description": "Find the best Dev Tools upvoted by the community every week.",
"href": "https://devhunt.org"
},
{ {
"name": "Documenso", "name": "Documenso",
"description": "The Open-Source DocuSign Alternative. We aim to earn your trust by enabling you to self-host the platform and examine its inner workings.", "description": "The Open-Source DocuSign Alternative. We aim to earn your trust by enabling you to self-host the platform and examine its inner workings.",
"href": "https://documenso.com" "href": "https://documenso.com"
}, },
{
"name": "dyrector.io",
"description": "dyrector.io is an open-source continuous delivery & deployment platform with version management.",
"href": "https://dyrector.io"
},
{
"name": "Firecamp",
"description": "vscode for apis, open-source postman/insomnia alternative",
"href": "https://firecamp.io"
},
{ {
"name": "Formbricks", "name": "Formbricks",
"description": "Open source survey software and Experience Management Platform. Understand your customers, keep full control over your data.", "description": "Open source survey software and Experience Management Platform. Understand your customers, keep full control over your data.",
"href": "https://formbricks.com" "href": "https://formbricks.com"
}, },
{
"name": "GitWonk",
"description": "GitWonk is an open-source technical documentation tool, designed and built focusing on the developer experience.",
"href": "https://gitwonk.com"
},
{ {
"name": "Hanko", "name": "Hanko",
"description": "Open-source authentication and user management for the passkey era. Integrated in minutes, for web and mobile apps.", "description": "Open-source authentication and user management for the passkey era. Integrated in minutes, for web and mobile apps.",
@ -96,11 +66,6 @@
"description": "Open source LLM engineering platform. Debug, analyze and iterate together.", "description": "Open source LLM engineering platform. Debug, analyze and iterate together.",
"href": "https://langfuse.com" "href": "https://langfuse.com"
}, },
{
"name": "Lost Pixel",
"description": "Open source visual regression testing alternative to Percy & Chromatic",
"href": "https://lost-pixel.com"
},
{ {
"name": "Mockoon", "name": "Mockoon",
"description": "Mockoon is the easiest and quickest way to design and run mock REST APIs.", "description": "Mockoon is the easiest and quickest way to design and run mock REST APIs.",
@ -116,6 +81,11 @@
"description": "Open-source monitoring platform with beautiful status pages", "description": "Open-source monitoring platform with beautiful status pages",
"href": "https://www.openstatus.dev" "href": "https://www.openstatus.dev"
}, },
{
"name": "Papermark",
"description": "Open-Source Docsend Alternative to securely share documents with real-time analytics.",
"href": "https://www.papermark.com"
},
{ {
"name": "Portkey AI", "name": "Portkey AI",
"description": "AI Gateway with integrated Guardrails. Route to 250+ LLMs and 50+ Guardrails with 1-fast API. Supports caching, retries, and edge deployment for low latency.", "description": "AI Gateway with integrated Guardrails. Route to 250+ LLMs and 50+ Guardrails with 1-fast API. Supports caching, retries, and edge deployment for low latency.",
@ -146,11 +116,6 @@
"description": "Sniffnet is a network monitoring tool to help you easily keep track of your Internet traffic.", "description": "Sniffnet is a network monitoring tool to help you easily keep track of your Internet traffic.",
"href": "https://www.sniffnet.net" "href": "https://www.sniffnet.net"
}, },
{
"name": "Spark.NET",
"description": "The .NET Web Framework for Makers. Build production ready, full-stack web applications fast without sweating the small stuff.",
"href": "https://spark-framework.net"
},
{ {
"name": "Tiledesk", "name": "Tiledesk",
"description": "The innovative open-source framework for developing LLM-enabled chatbots, Tiledesk empowers developers to create advanced, conversational AI agents.", "description": "The innovative open-source framework for developing LLM-enabled chatbots, Tiledesk empowers developers to create advanced, conversational AI agents.",
@ -176,16 +141,16 @@
"description": "Typebot gives you powerful blocks to create unique chat experiences. Embed them anywhere on your apps and start collecting results like magic.", "description": "Typebot gives you powerful blocks to create unique chat experiences. Embed them anywhere on your apps and start collecting results like magic.",
"href": "https://typebot.io" "href": "https://typebot.io"
}, },
{
"name": "UnInbox",
"description": "Modern email for teams and professionals. Bringing the best of email and messaging into a single, modern, and secure platform.",
"href": "https://uninbox.com"
},
{ {
"name": "Unkey", "name": "Unkey",
"description": "An API authentication and authorization platform for scaling user facing APIs. Create, verify, and manage low latency API keys in seconds.", "description": "An API authentication and authorization platform for scaling user facing APIs. Create, verify, and manage low latency API keys in seconds.",
"href": "https://unkey.dev" "href": "https://unkey.dev"
}, },
{
"name": "Voltagent",
"description": "Open Source TypeScript framework for building AI agents with enterprise-grade capabilities and seamless integrations.",
"href": "https://voltagent.dev"
},
{ {
"name": "Webiny", "name": "Webiny",
"description": "Open-source enterprise-grade serverless CMS. Own your data. Scale effortlessly. Customize everything.", "description": "Open-source enterprise-grade serverless CMS. Own your data. Scale effortlessly. Customize everything.",

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

@ -8337,7 +8337,7 @@
</trans-unit> </trans-unit>
<trans-unit id="rule.regionalMarketClusterRiskNorthAmerica" datatype="html"> <trans-unit id="rule.regionalMarketClusterRiskNorthAmerica" datatype="html">
<source>North America</source> <source>North America</source>
<target state="new">North America</target> <target state="translated">Noord-Amerika</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">210</context> <context context-type="linenumber">210</context>
@ -8345,7 +8345,7 @@
</trans-unit> </trans-unit>
<trans-unit id="rule.regionalMarketClusterRiskNorthAmerica.false.max" datatype="html"> <trans-unit id="rule.regionalMarketClusterRiskNorthAmerica.false.max" datatype="html">
<source> The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% </source> <source> The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% </source>
<target state="new"> The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% </target> <target state="translated">De bijdrage van de Noord-Amerikaanse markt aan je huidige investering (${valueRatio}%) overschrijdt ${thresholdMax}%</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">211</context> <context context-type="linenumber">211</context>
@ -8353,7 +8353,7 @@
</trans-unit> </trans-unit>
<trans-unit id="rule.regionalMarketClusterRiskNorthAmerica.false.min" datatype="html"> <trans-unit id="rule.regionalMarketClusterRiskNorthAmerica.false.min" datatype="html">
<source> The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% </source> <source> The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% </source>
<target state="new"> The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% </target> <target state="translated">De bijdrage van de Noord-Amerikaanse markt aan je huidige investering (${valueRatio}%) ligt onder ${thresholdMin}%</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">215</context> <context context-type="linenumber">215</context>
@ -8361,7 +8361,7 @@
</trans-unit> </trans-unit>
<trans-unit id="rule.regionalMarketClusterRiskNorthAmerica.true" datatype="html"> <trans-unit id="rule.regionalMarketClusterRiskNorthAmerica.true" datatype="html">
<source> The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% </source> <source> The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% </source>
<target state="new"> The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% </target> <target state="translated">De bijdrage van de Noord-Amerikaanse markt aan je huidige investering (${valueRatio}%) ligt binnen het bereik van ${thresholdMin}% en ${thresholdMax}%</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/i18n/i18n-page.html</context>
<context context-type="linenumber">219</context> <context context-type="linenumber">219</context>
@ -8369,7 +8369,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1fcac88ae8e9a85075cdb79b41e8e01d99929e36" datatype="html"> <trans-unit id="1fcac88ae8e9a85075cdb79b41e8e01d99929e36" datatype="html">
<source>Find Ghostfolio on GitHub</source> <source>Find Ghostfolio on GitHub</source>
<target state="new">Find Ghostfolio on GitHub</target> <target state="translated">Vind Ghostfolio op GitHub</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">74</context> <context context-type="linenumber">74</context>
@ -8381,7 +8381,7 @@
</trans-unit> </trans-unit>
<trans-unit id="83437c98bf84f17c50c20f5519608f162881a2c8" datatype="html"> <trans-unit id="83437c98bf84f17c50c20f5519608f162881a2c8" datatype="html">
<source>Join the Ghostfolio Slack community</source> <source>Join the Ghostfolio Slack community</source>
<target state="new">Join the Ghostfolio Slack community</target> <target state="translated">Word lid van de Ghostfolio Slack-gemeenschap</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">84</context> <context context-type="linenumber">84</context>
@ -8389,7 +8389,7 @@
</trans-unit> </trans-unit>
<trans-unit id="f5df23754cae65f4637314605cfad153569c3462" datatype="html"> <trans-unit id="f5df23754cae65f4637314605cfad153569c3462" datatype="html">
<source>Follow Ghostfolio on X (formerly Twitter)</source> <source>Follow Ghostfolio on X (formerly Twitter)</source>
<target state="new">Follow Ghostfolio on X (formerly Twitter)</target> <target state="translated">Volg Ghostfolio op X (voorheen Twitter)</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">93</context> <context context-type="linenumber">93</context>
@ -8397,7 +8397,7 @@
</trans-unit> </trans-unit>
<trans-unit id="71c7491454b583e05a73d278aef040220b122086" datatype="html"> <trans-unit id="71c7491454b583e05a73d278aef040220b122086" datatype="html">
<source>Send an e-mail</source> <source>Send an e-mail</source>
<target state="new">Send an e-mail</target> <target state="translated">Stuur een e-mail</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">103</context>
@ -8405,7 +8405,7 @@
</trans-unit> </trans-unit>
<trans-unit id="b62bff3fbe3999076ed3927ba4beaaa1530ebc33" datatype="html"> <trans-unit id="b62bff3fbe3999076ed3927ba4beaaa1530ebc33" datatype="html">
<source>Follow Ghostfolio on LinkedIn</source> <source>Follow Ghostfolio on LinkedIn</source>
<target state="new">Follow Ghostfolio on LinkedIn</target> <target state="translated">Volg Ghostfolio op LinkedIn</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">122</context> <context context-type="linenumber">122</context>
@ -8413,7 +8413,7 @@
</trans-unit> </trans-unit>
<trans-unit id="4dc6baa510f0fc18e63021108e86605a3ba16e76" datatype="html"> <trans-unit id="4dc6baa510f0fc18e63021108e86605a3ba16e76" datatype="html">
<source>Ghostfolio is an independent &amp; bootstrapped business</source> <source>Ghostfolio is an independent &amp; bootstrapped business</source>
<target state="new">Ghostfolio is an independent &amp; bootstrapped business</target> <target state="translated">Ghostfolio is een onafhankelijk en zelfgefinancierd bedrijf</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">132</context> <context context-type="linenumber">132</context>
@ -8421,7 +8421,7 @@
</trans-unit> </trans-unit>
<trans-unit id="1739057cce181564a4b34537df2aacbd017e5778" datatype="html"> <trans-unit id="1739057cce181564a4b34537df2aacbd017e5778" datatype="html">
<source>Support Ghostfolio</source> <source>Support Ghostfolio</source>
<target state="new">Support Ghostfolio</target> <target state="translated">Ondersteun Ghostfolio</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context> <context context-type="sourcefile">apps/client/src/app/pages/about/overview/about-overview-page.html</context>
<context context-type="linenumber">141</context> <context context-type="linenumber">141</context>

Loading…
Cancel
Save