Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated/added Slovenian locale #22007

Merged
merged 15 commits into from
Feb 5, 2025
Merged

Updated/added Slovenian locale #22007

merged 15 commits into from
Feb 5, 2025

Conversation

martinverbic
Copy link
Contributor

@martinverbic martinverbic commented Jan 15, 2025

Will update when I test out a Ghost instance in Slovenian extensively.

Copy link
Contributor

coderabbitai bot commented Jan 15, 2025

Walkthrough

This pull request focuses on enhancing the Slovenian localization for the Ghost content management system. Multiple JSON files in the ghost/i18n/locales/sl/ directory have been updated with comprehensive Slovenian translations. The changes cover various aspects of the application, including comments, newsletter, portal, search, and signup form interfaces. Each file has been populated with translated strings, replacing previously empty or English-language entries with appropriate Slovenian text.

Changes

File Change Summary
ghost/i18n/locales/sl/comments.json Complete replacement of English strings with Slovenian translations for comment-related UI elements.
ghost/i18n/locales/sl/ghost.json Added and updated translations for signup, email confirmation, and user greeting messages.
ghost/i18n/locales/sl/newsletter.json Comprehensive translation of newsletter-related strings, including subscription and notification messages.
ghost/i18n/locales/sl/portal.json Extensive localization of user interface strings for account management and subscriptions.
ghost/i18n/locales/sl/search.json Translated search-related UI elements like "Authors", "Posts", and search prompts.
ghost/i18n/locales/sl/signup-form.json Complete translation of signup form messages and error handling strings.

Possibly related PRs

  • Add missing Scottish Gaelic translations #21979: The changes in the main PR, which involve replacing English strings with Slovenian translations in the comments.json file, are related to the retrieved PR that also modifies the comments.json file but for Scottish Gaelic translations, indicating a direct connection in terms of localization efforts for user interface elements.

Suggested reviewers

  • cathysarisky

Tip

🌐 Web search-backed reviews and chat
  • We have enabled web search-based reviews and chat for all users. This feature allows CodeRabbit to access the latest documentation and information on the web.
  • You can disable this feature by setting web_search: false in the knowledge_base settings.
  • Please share any feedback in the Discord discussion.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 11ecdc2 and 374fd20.

📒 Files selected for processing (1)
  • ghost/i18n/locales/sl/portal.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • ghost/i18n/locales/sl/portal.json
⏰ Context from checks skipped due to timeout of 90000ms (10)
  • GitHub Check: Ghost-CLI tests
  • GitHub Check: Unit tests (Node 20.11.1)
  • GitHub Check: Unit tests (Node 18.12.1)
  • GitHub Check: Regression tests (Node 20.11.1, sqlite3)
  • GitHub Check: Database tests (Node 20.11.1, sqlite3)
  • GitHub Check: Regression tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 18.12.1, mysql8)
  • GitHub Check: Lint
  • GitHub Check: i18n

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
ghost/i18n/locales/sl/newsletter.json (2)

2-2: Consider pluralization handling for authors.

The translation "Avtor: {authors}" assumes singular form, but {authors} could contain multiple authors.

Consider using a conditional form:

-"By {authors}": "Avtor: {authors}",
+"By {authors}": "Avtorji: {authors}",

4-4: Maintain consistency in translations.

The word "brezplačno" is used for both "complimentary" and "free". While technically correct, consider using different terms to maintain nuance.

Consider using "brezplačno" for "free" and "promocijsko" for "complimentary" to better reflect the distinction.

Also applies to: 6-6

ghost/i18n/locales/sl/ghost.json (1)

24-24: Maintain consistency in exclamation marks.

Notice the inconsistent use of exclamation marks between similar messages:

  • "Thank you for subscribing to {{siteTitle}}." → "Hvala, ker ste se naročili na {{siteTitle}}!"
  • "You're one tap away from subscribing to {{siteTitle}}!" → "Le en klik vas loči od tega, da se naročite na {{siteTitle}}!"

Consider maintaining consistent punctuation for similar message types.

Also applies to: 33-33

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2cc1e28 and 2f6d111.

📒 Files selected for processing (6)
  • ghost/i18n/locales/sl/comments.json (1 hunks)
  • ghost/i18n/locales/sl/ghost.json (2 hunks)
  • ghost/i18n/locales/sl/newsletter.json (1 hunks)
  • ghost/i18n/locales/sl/portal.json (1 hunks)
  • ghost/i18n/locales/sl/search.json (1 hunks)
  • ghost/i18n/locales/sl/signup-form.json (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • ghost/i18n/locales/sl/comments.json
  • ghost/i18n/locales/sl/signup-form.json
  • ghost/i18n/locales/sl/search.json
⏰ Context from checks skipped due to timeout of 90000ms (9)
  • GitHub Check: Unit tests (Node 20.11.1)
  • GitHub Check: Unit tests (Node 18.12.1)
  • GitHub Check: Regression tests (Node 20.11.1, sqlite3)
  • GitHub Check: Regression tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 20.11.1, sqlite3)
  • GitHub Check: Lint
  • GitHub Check: Database tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 18.12.1, mysql8)
  • GitHub Check: Ghost-CLI tests
🔇 Additional comments (6)
ghost/i18n/locales/sl/newsletter.json (1)

18-23: LGTM! Well-structured date-related messages.

The translations for subscription-related messages maintain proper grammar structure and preserve all variables. The date handling is consistent across different contexts.

ghost/i18n/locales/sl/ghost.json (1)

3-7: LGTM! Consistent handling of action phrases.

The translations for signup and confirmation actions maintain a consistent tone and proper use of the formal address form ("Potrdite", "Dokončajte").

ghost/i18n/locales/sl/portal.json (4)

13-13: LGTM! Proper phone number localization.

The phone number format has been correctly adapted to Slovenian format (+386 12 345 678).


100-101: LGTM! Culturally appropriate name localization.

The example name and email have been appropriately localized to "Janez Novak" and "[email protected]", which are common Slovenian examples.


173-178: LGTM! Consistent time-based messages.

The translations for time-based error messages (days, hours, minutes) maintain proper grammar forms and number agreement.


162-162: Verify HTML button tag handling.

The translations contain HTML button tags. Ensure the Ghost platform's translation system properly handles these HTML elements:

Also applies to: 203-203

✅ Verification successful

HTML button tags are consistently implemented across all translations

The button tags are present and consistently formatted across all 57 language translations in the portal.json files, indicating this is a supported and standardized feature of Ghost's translation system.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for other translations using HTML tags to verify consistency
rg -l '<button>' ghost/i18n/locales/

Length of output: 2126

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
ghost/i18n/locales/sl/portal.json (1)

13-13: Adjust phone number format to match Slovenian standards.

The phone number format should follow the standard Slovenian grouping: "+386 1 234 56 78" or "+386 12 345 678" depending on the area code length.

-    "+1 (123) 456-7890": "+386 12 345 678",
+    "+1 (123) 456-7890": "+386 1 234 56 78",
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2f6d111 and eba1872.

📒 Files selected for processing (3)
  • ghost/i18n/locales/sl/ghost.json (2 hunks)
  • ghost/i18n/locales/sl/newsletter.json (1 hunks)
  • ghost/i18n/locales/sl/portal.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • ghost/i18n/locales/sl/ghost.json
  • ghost/i18n/locales/sl/newsletter.json
⏰ Context from checks skipped due to timeout of 90000ms (9)
  • GitHub Check: Ghost-CLI tests
  • GitHub Check: Unit tests (Node 20.11.1)
  • GitHub Check: Regression tests (Node 20.11.1, sqlite3)
  • GitHub Check: Unit tests (Node 18.12.1)
  • GitHub Check: Database tests (Node 20.11.1, sqlite3)
  • GitHub Check: Regression tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 18.12.1, mysql8)
  • GitHub Check: Lint
🔇 Additional comments (6)
ghost/i18n/locales/sl/portal.json (6)

100-101: LGTM! Appropriate localization of example names and emails.

The changes correctly adapt the example name and email address to the Slovenian context, using the proper TLD (.si) and common Slovenian name.


2-211: LGTM! Consistent terminology throughout the translations.

Key terms are consistently translated throughout the file:

  • "subscription" -> "naročnina"
  • "account" -> "račun"
  • "plan" -> "paket"

2-211: LGTM! Correct placeholder preservation and positioning.

All variable placeholders ({{variable}}) are correctly preserved and positioned according to Slovenian grammar rules.


21-21: LGTM! Proper handling of HTML tags in translations.

HTML tags are correctly preserved and positioned within the Slovenian translations, maintaining both functionality and natural language flow.

Also applies to: 55-55, 162-162


2-211: LGTM! Culturally appropriate translations.

The translations maintain a consistent formal tone ("vi" form) appropriate for business communication in Slovenian, while correctly handling currency and numerical formats through variables.


2-211: LGTM! Proper handling of Slovenian special characters.

All Slovenian special characters (č, š, ž) are properly encoded and used correctly throughout the translations.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
ghost/i18n/locales/sl/portal.json (1)

203-203: Minor translation improvements suggested

Consider these refinements:

  • Line 203: Fix typo "visljeno pošto" to "vsiljeno pošto"
  • Line 208: Consider a more natural translation for "Your input helps shape what gets published." Perhaps: "Vaše mnenje nam pomaga pri izbiri objavljenih vsebin."

Also applies to: 208-208

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between eba1872 and f5bf94e.

📒 Files selected for processing (1)
  • ghost/i18n/locales/sl/portal.json (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (10)
  • GitHub Check: Ghost-CLI tests
  • GitHub Check: Unit tests (Node 20.11.1)
  • GitHub Check: Unit tests (Node 18.12.1)
  • GitHub Check: Regression tests (Node 20.11.1, sqlite3)
  • GitHub Check: Regression tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 20.11.1, sqlite3)
  • GitHub Check: Database tests (Node 20.11.1, mysql8)
  • GitHub Check: Database tests (Node 18.12.1, mysql8)
  • GitHub Check: Lint
  • GitHub Check: i18n
🔇 Additional comments (4)
ghost/i18n/locales/sl/portal.json (4)

1-212: JSON structure looks good!

The file follows proper JSON formatting conventions with correct use of quotes, commas, and braces.


2-211: Placeholder variables are consistently maintained!

All dynamic content placeholders (e.g., {{amount}}, {{name}}, {{price}}) are properly preserved in the translations, ensuring proper functionality.


13-13: Excellent cultural adaptations!

Good attention to detail in adapting:

  • Phone number format to Slovenian style (+386 1 234 56 78)
  • Name example to a common Slovenian name (Janez Novak)
  • Email example to use a Slovenian domain (primer.si)

Also applies to: 100-101


21-21: HTML elements are properly preserved!

The translations correctly maintain HTML tags for formatting and links, ensuring the UI elements will function as expected.

Also applies to: 55-55, 162-162

@cathysarisky
Copy link
Contributor

ghost/i18n/locales/sl/portal.json (1)> 13-13: Adjust phone number format to match Slovenian standards.

The phone number format should follow the standard Slovenian grouping: "+386 1 234 56 78" or "+386 12 345 678" depending on the area code length.

Hey @coderabbitai , we don't actually care about the formatting on the phone number. No need to ask contributors to correct it in the future. Great job otherwise.

Copy link
Contributor

coderabbitai bot commented Jan 28, 2025

Tip

For best results, initiate chat on the files or code changes.

@cathysarisky Thank you for the clarification. I understand now that phone number formatting standardization is not required in localization files. I'll keep this in mind for future reviews.


✏️ Learnings added
Learnt from: cathysarisky
URL: https://github.com/TryGhost/Ghost/pull/22007

Timestamp: 2025-01-28T13:12:39.451Z
Learning: Phone number format standardization is not required in localization files. Different format representations are acceptable.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Copy link
Contributor

@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.

General comment: Ghost generally tends towards informal language. I am NOT a Slovenian speaker, but I think you're using the formal forms here? I'll defer to your cultural knowledge about what's appropriate, but wanted to identify here that these translations are more formal in tone than what's in the English version.

ghost/i18n/locales/sl/newsletter.json Outdated Show resolved Hide resolved
ghost/i18n/locales/sl/newsletter.json Show resolved Hide resolved
ghost/i18n/locales/sl/portal.json Show resolved Hide resolved
ghost/i18n/locales/sl/portal.json Outdated Show resolved Hide resolved
ghost/i18n/locales/sl/portal.json Outdated Show resolved Hide resolved
@martinverbic
Copy link
Contributor Author

General comment: Ghost generally tends towards informal language. I am NOT a Slovenian speaker, but I think you're using the formal forms here? I'll defer to your cultural knowledge about what's appropriate, but wanted to identify here that these translations are more formal in tone than what's in the English version.

Yes, I had doubts about this myself, but wanted to check first how it feels in emails, portal etc. and then correct later if necessary. I will take a look and correct where applicable.

Copy link
Contributor

@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.

Good fixes, ready to merge.

@allouis
Copy link
Contributor

allouis commented Feb 5, 2025

@martinverbic There's some conflicts here - once they're fixed we can merge this ☺️

@martinverbic
Copy link
Contributor Author

Thanks for notifying @allouis. I think they should be resolved now.

@allouis allouis merged commit ae39d2f into TryGhost:main Feb 5, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants