Skip to content

🌐 Added missing translations for Finnish#25214

Merged
cathysarisky merged 4 commits intoTryGhost:mainfrom
minna-xD:finnish-update
Nov 23, 2025
Merged

🌐 Added missing translations for Finnish#25214
cathysarisky merged 4 commits intoTryGhost:mainfrom
minna-xD:finnish-update

Conversation

@minna-xD
Copy link
Contributor

@minna-xD minna-xD commented Oct 21, 2025

Hello @cathysarisky

Ref #23361

If possible, I'd very much appreciate if you can label this PR with hacktoberfest-accepted 🙏

This translates missing strings into Finnish.
A few minor changes were made to previously submitted translations to fix typos or formatting:

comments.json
"Add context to your comment, share your name and expertise to foster a healthy discussion.": "Lisää sisältöä kommenttiisi, jaa nimesi ja osaamisesi saadaksesi aikaan tervettä keskustelua.",
"Become a member of {publication} to start commenting.": "Ala {publication} jäseneksi pystyäksesi kommentoimaan.",
"Become a paid member of {publication} to start commenting.": "Ota maksullinen jäsenyys sivulle {publication}, jotta pystyt kommentoimaan.",
"This comment has been hidden.": "Tämä kommentti on piilotettu.",
"This comment has been removed.": "Tämä kommentti on poistettu.",
"Your request will be sent to the owner of this site.": "Sinun pyyntösi lähetetään sivun omistajalle."
--> missed fullstops at the end

ghost.json
"If you did not make this request, you can safely ignore this email.": "Jos et tehnyt tätä pyyntöä, voit olla reagoimatta viestiin.",
--> typo 'tehny' corrected to 'tehnyt', missed fullstop at the end

"If you did not make this request, you can simply delete this message.": "Jos et tehnyt tätä pyyntöä, voit poistaa tämän viestin.",
--> missed fullstop at the end

"Thank you for subscribing to {siteTitle}. Tap the link below to be automatically signed in:": "Kiitos tilauksestasi sivulle {siteTitle}. Klikkaa alla olevaa linkkiä jatkaaksesi.",
--> "Kiitos tilauksestasi sivulle" was duplicated

portal.json
"After a free trial ends, you will be charged the regular price for the tier you've chosen. You can always cancel before then.": "Kun ilmainen kokeilusi loppuu, sinulta veloitetaan valitsemasi tilauksen maksu. Voit aina peruuttaa tilauksesi ennen tätä.",
--> previously specified 'kuukausimaksu' but I believe it's not always a monthly payment but perhaps e.g. yearly

"Complimentary": "Maksuton",
--> used to be "Ilmainen" but had to make a distinction between free and complimentary

"Plan checkout was cancelled.": "Tilauksen maksaminen on peruttu",
--> checkout was left untranslated but there's no need for that

"Re-enable emails": "Hyväksy sähköpostit uudelleen",
--> used to be "Uudelleen hyväksy" but that's not proper grammar

"Renews at {price}.": "Tilaus uusiutuu hinnalla {price}.",
--> used to be "päivittyy" but the previous translator had elsewhere used 'uusiutuu' so I made it consistent

"There was a problem submitting your feedback. Please try again a little later.": "Meillä oli ongelma palautteesi lähetyksen kanssa. Kokeilethan myöhemmin uudestaan.",
--> There was a typo 'kokeleithan'

"When an inbox fails to accept an email it is commonly called a bounce. In many cases, this can be temporary. However, in some cases, a bounced email can be returned as a permanent failure when an email address is invalid or non-existent.": "Jos sähköpostilaatikko ei pysty vastaanottamaan viestiä, sitä kutsutaan “bounssaamiseksi”. Usein se on väliaikaista. Joissakin tapauksissa “bounssannut” sähköposti voi kuitenkin palautua pysyvänä virheenä, kun sähköpostiosoite on virheellinen tai sitä ei ole olemassa.",
--> A big chunk of text had disappeared from the beginning.


Got some code for us? Awesome 🎊!

Please take a minute to explain the change you're making:

  • Why are you making it?
  • What does it do?
  • Why is this something Ghost users or developers need?

Please check your PR against these items:

  • I've read and followed the Contributor Guide
  • I've explained my change
  • I've written an automated test to prove my change works

We appreciate your contribution! 🙏


Note

Adds missing Finnish translations and fixes typos/punctuation for comments, emails/auth, portal membership/payments UI, and search labels.

  • i18n (Finnish)
    • ghost/i18n/locales/fi/comments.json:
      • Add missing strings (e.g., prompts, sorting, load more, delete confirmations) and refine wording/punctuation.
    • ghost/i18n/locales/fi/ghost.json:
      • Add email/auth and notification strings; fix typos and add missing periods; ensure terminology consistency.
    • ghost/i18n/locales/fi/portal.json:
      • Fill numerous membership/payment, checkout, error, and preference strings; standardize terms (e.g., "Maksuton", renewal phrasing); localize examples; punctuation fixes.
    • ghost/i18n/locales/fi/search.json:
      • Provide translations for search UI labels (authors, posts, tags, results).

Written by Cursor Bugbot for commit 49bb496. This will update automatically on new commits. Configure here.

no ref

This translates missing strings into Finnish. A few minor changes were made to previously submitted translations to fix typos or formatting.
@github-actions github-actions bot added community [triage] Community features and bugs affects:i18n labels Oct 21, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 21, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

This pull request populates and updates Finnish translations across four locale files: ghost/i18n/locales/fi/comments.json, ghost/i18n/locales/fi/ghost.json, ghost/i18n/locales/fi/portal.json, and ghost/i18n/locales/fi/search.json. Numerous previously empty strings were filled with Finnish copy, punctuation normalized on several entries, and placeholders preserved. Changes cover comment UI, authentication and email/notification text, portal interface elements, and search labels.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Spot-check placeholder handling (e.g., {siteTitle}, {publication}, {otc}, {amount}, {date})
  • Verify consistent terminology and punctuation across files (comments, portal, ghost)
  • Review context-sensitive strings for correct grammatical forms and Finnish inflection

Possibly related issues

  • TryGhost/Ghost issue 23361 — Bulk Finnish locale completion: this PR fills many previously empty Finnish translation keys, which aligns with the objectives of that localization issue.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The title "Added missing translations for Finnish" directly corresponds to the main change in the pull request, which updates four JSON locale files with Finnish translations for previously untranslated strings. The core message clearly communicates what was done and is specific enough for a teammate reviewing the repository history to understand the primary change. While the emoji (🌐) could be considered minor decorative noise, the substantive text is clear, concise, and accurate.
Description check ✅ Passed The PR description is directly related to the changeset, clearly explaining that missing Finnish translations are being added and minor corrections to existing translations are being made across four JSON locale files.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cathysarisky cathysarisky self-assigned this Oct 22, 2025
Copy link
Member

@cathysarisky cathysarisky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR! Since I don't speak Finnish, I'm using an AI helper, which has left a few comments. I always believe the human over the AI, but in my experience, the AI usually makes a good suggestion or catches an error often enough that it's worth taking a look at the comments.

When you're happy with everything, please @ me and I'll come back to merge.

"Become a paid member of {publication} to start commenting.": "Ota maksullinen jäsenyys sivulle {publication}, jotta pystyt kommentoimaan",
"Best": "",
"Are you sure?": "Oletko varma?",
"Become a member of {publication} to start commenting.": "Ala {publication} jäseneksi pystyäksesi kommentoimaan.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: I think the phrasing “Ala {publication} jäseneksi” may sound a bit literal. Would something like “Liity {publication}-jäseneksi pystyäksesi kommentoimaan.” or “Liity sivuston {publication} jäseneksi pystyäksesi kommentoimaan.” feel more natural?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will fix

"Enter your name": "Syötä nimesi",
"Expertise": "Osaaminen",
"Founder @ Acme Inc": "",
"Founder @ Acme Inc": "Perustaja",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: The English placeholder is “Founder @ Acme Inc”, but the translation omits the “@ Acme Inc” part. Was that intentional? Should we preserve the full example format, e.g. “Perustaja @ Acme Inc” (or a localized company) to match the original placeholder?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this I followed the previous translator who had translated
"Head of Marketing at Acme, Inc": "Markkinointijohtaja",
also omitting the Acme part. Acme is not really a known dummy text in Finnish so I don't think it's necessary to include.

"Complete signup for {siteTitle}!": "Rekisteröidy sivulle {siteTitle}",
"Complete your sign up to {siteTitle}!": "Täytä kaikki tarvittavat tiedot sivulle {siteTitle}",
"complimentary": "",
"complimentary": "maksuttoman tilauksen",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: This string “complimentary” is substituted as a status in “...because you are a %%{status}%% subscriber”. Is “maksuttoman tilauksen” the intended case here? Perhaps “maksuttomalla tilauksella” or another form might fit the sentence better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I will overhaul this properly to make it sound natural. Main sentence will be edited to "Saat tämän viestin, koska sinulla on %%{status}%%tilaus sivulle {site}." and the statuses will be 'maksullinen ', 'maksuton ', 'ilmainen ', 'kokeilu'.
English equivalent is "You are receiving this because you have a (paid|free|complimentary|trialing) subscription to site yyy."

"Device:": "",
"Email": "",
"For security verification, enter the code below to sign in to {siteTitle}:": "",
"Device:": "Laite",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: The key is “Device:” with a colon. Should the Finnish translation also include the colon, e.g. “Laite:” to match the UI label?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. Will fix!

"Thank you for subscribing to {siteTitle}!": "Kiitos tilauksestasi sivulle {siteTitle}",
"Thank you for subscribing to {siteTitle}.": "Kiitos tilauksestasi sivulle {siteTitle}",
"Thank you for subscribing to {siteTitle}. Tap the link below to be automatically signed in:": "Kiitos tilauksestasi sivulle Kiitos tilauksestasi sivulle {siteTitle}. Klikkaa alla olevaa linkkiä jatkaaksesi.",
"Thank you for subscribing to {siteTitle}. Tap the link below to be automatically signed in:": "Kiitos tilauksestasi sivulle {siteTitle}. Klikkaa alla olevaa linkkiä jatkaaksesi.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: In English the sentence ends with a colon before the link (“...be automatically signed in:”), but the Finnish ends with a period. Would it be clearer to keep the colon, like “Klikkaa alla olevaa linkkiä jatkaaksesi:”?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will fix

"Upgrade to continue reading.": "",
"View comments": "",
"View in browser": "",
"This message was sent from {siteDomain} to {email}.": "Viesti on lähetetty sivulta {siteDomain} osoitteeseen {email}.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: You translated “sent from {siteDomain}” as “sivulta {siteDomain}”. Would “osoitteesta {siteDomain}” more precisely convey the idea of an email origin address?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion is ok. Will fix.

"Your subscription has expired.": "Tilauksesi on päättynyt.",
"Your subscription will expire on {date}.": "Tilauksesi päättyy {date}.",
"Your subscription will renew on {date}.": "Tilauksesi uusiutuu {date}.",
"Your verification code for {siteTitle}": "Vahvistuskoodisi sivulle {siteTitle}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI: For “Your verification code for {siteTitle}”, you have “Vahvistuskoodisi sivulle {siteTitle}”. Would “Vahvistuskoodisi sivustolle {siteTitle}” (allative) feel more natural in Finnish?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was tempted to use the word 'sivusto' instead of 'sivu' but I respected the previous translator's word choices.

Implemented suggested change
cursor[bot]

This comment was marked as outdated.

Implemented the suggested improvements
@minna-xD
Copy link
Contributor Author

@cathysarisky Files edited by implementing the best suggestions. Such cool bots there are nowadays!

@github-actions
Copy link
Contributor

Thanks for contributing to Ghost's i18n :)

This PR has been automatically marked as stale because there has not been any activity here in 3 weeks.
I18n PRs tend to get out of date quickly, so we're closing them to keep the PR list clean.

If you're still interested in working on this PR, please let us know. Otherwise this PR will be closed shortly, but can always be reopened later. Thank you for understanding 🙂

@github-actions github-actions bot added the stale [triage] Issues that were closed to to lack of traction label Nov 17, 2025
@cathysarisky
Copy link
Member

Hey @minna-xD , thanks for the contribution and sorry for the delay! Merging now. It'll be live in 1-2 weeks (depending on where exactly it lands on the release cycle).

@cathysarisky cathysarisky enabled auto-merge (squash) November 23, 2025 18:46
@cathysarisky cathysarisky merged commit 9b4ca2e into TryGhost:main Nov 23, 2025
38 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

affects:i18n community [triage] Community features and bugs hacktoberfest-accepted stale [triage] Issues that were closed to to lack of traction

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants