Skip to content

🌐 Add Turkish (tr) translations#490

Open
muratcorlu wants to merge 3 commits intoTryGhost:mainfrom
muratcorlu:translations-tr
Open

🌐 Add Turkish (tr) translations#490
muratcorlu wants to merge 3 commits intoTryGhost:mainfrom
muratcorlu:translations-tr

Conversation

@muratcorlu
Copy link
Contributor

@muratcorlu muratcorlu commented Mar 10, 2026

Here is the Turkish translations for all shared texts for the themes. In some places, I tried to use more natural usage in Turkish instead of direct translations.

@cursor
Copy link

cursor bot commented Mar 10, 2026

You have run out of free Bugbot PR reviews for this billing cycle. This will reset on April 3.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c3baa1a4-f8ff-4aec-b2b6-d2873ee0cdea

📥 Commits

Reviewing files that changed from the base of the PR and between 7e94b37 and 6aa4405.

📒 Files selected for processing (1)
  • packages/theme-translations/locales/tr.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/theme-translations/locales/tr.json

Walkthrough

A new Turkish translation file (tr.json) was added to packages/theme-translations/locales. The file contains 112 lines of key-value mappings converting English UI strings to Turkish, covering navigation, authentication, posts, issues, subscriptions, and site elements, with placeholders preserved for dynamic content. This change is a localization data addition with no code or runtime behavior modifications.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: adding Turkish translations. It is concise and specific, matching the changeset which adds a Turkish localization file.
Description check ✅ Passed The description is directly related to the changeset, explaining that Turkish translations were added for shared theme texts with consideration for natural phrasing.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 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 Mar 11, 2026
Using "yazı" for post is more natural and aligns with Sodo Search translation
Copy link

@flightlesstux flightlesstux left a comment

Choose a reason for hiding this comment

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

Code Review: Turkish (tr) translations

Overview: Adds a new tr.json locale file to packages/theme-translations/locales/ with 112 Turkish translations for Ghost themes. Pure addition, no existing code modified.


Positive Aspects

  • Complete coverage — all keys from the shared translations appear to be present
  • Natural Turkish phrasing (intentional departures from literal translation, which is correct for UX)
  • Proper use of placeholders ({authors}, {numberOfIssues}, %, etc.) preserved correctly
  • Good handling of Turkish-specific characters (ş, ğ, ü, ö, ı, ç) — UTF-8 encoded correctly

Suggestions & Observations

Terminology consistency:

  • "Sign in""Giriş yap" and "Login""Giriş yap" — both map to the same translation. Fine since Turkish doesn't differentiate, intentionally identical.
  • "Sign in." (with period) → "Giriş yap." — correctly preserves punctuation.

Potentially debatable translations:

  • "issue" / "issues""sayı" / "sayılar" — "sayı" is the correct publishing term (magazine issue), good choice.
  • "Toggle menu""Menüyü değiştir" — "değiştir" means "change/switch", technically correct but "Menüyü aç/kapat" might be more intuitive for a toggle action.
  • "Toggle fullscreen""Tam ekran yap" — loses the toggle aspect (enter/exit). "Tam ekran geçiş" would be more accurate.
  • "Password""Şifre" — correct, though "Parola" is also widely used and considered more standard in modern Turkish UIs (Apple, Google TR). Minor preference.

Placeholder email localization:

  • "jamie@example.com""bilge@ornek.com" — Nice touch localizing to a Turkish name/domain.

Structural:

  • Valid JSON, well-indented (4 spaces, consistent with other locale files)
  • No missing or extra keys

Verdict

Looks good with minor comments. Two items worth considering:

  1. "Toggle menu" / "Toggle fullscreen" translations lose the bidirectional toggle semantics
  2. "Şifre" vs "Parola" — minor UX preference, not a blocker

No correctness issues, no security concerns, no structural problems.

@muratcorlu
Copy link
Contributor Author

Thank you @flightlesstux. Fair points. I changed "Toggle .." translations and switched to "Parola" for "Password".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants