-
-
Notifications
You must be signed in to change notification settings - Fork 11k
🌐 Complete Bahasa Indonesia translations #24635
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
🌐 Complete Bahasa Indonesia translations #24635
Conversation
WalkthroughThis update populates previously empty translation strings in three Indonesian locale JSON files: Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Note 🔌 MCP (Model Context Protocol) integration is now available in Early Access!Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
✨ Finishing Touches🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🧹 Nitpick comments (3)
ghost/i18n/locales/id/ghost.json (2)
17-17
: Spelling & punctuation• “dibawah” → “di bawah”
• Keep the trailing colon (:) to mirror the key.
• “kapan” / “dimana” should be “Kapan:” / “Di mana:” (two words).Also applies to: 61-62
65-65
: Duplicate word
"notifikasi notifikasi"
repeats the noun.
Use one occurrence:"notifikasi ini"
.ghost/i18n/locales/id/portal.json (1)
172-174
: Minor consistencyLines 172-174 now start with “Situs ini sedang …”. Good update, but add trailing period for line 174 to match punctuation style.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
ghost/i18n/locales/id/comments.json
(3 hunks)ghost/i18n/locales/id/ghost.json
(1 hunks)ghost/i18n/locales/id/portal.json
(7 hunks)
🧰 Additional context used
🧠 Learnings (18)
📓 Common learnings
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Learnt from: cathysarisky
PR: TryGhost/Ghost#22175
File: ghost/i18n/locales/pt-BR/portal.json:18-18
Timestamp: 2025-02-12T20:09:12.731Z
Learning: In the Ghost project, new translation keys are first added with empty string values, and the actual translations are added later in separate PRs to maintain better organization of translation work.
Learnt from: cathysarisky
PR: TryGhost/Ghost#23070
File: ghost/i18n/locales/hu/comments.json:45-45
Timestamp: 2025-04-30T16:27:03.542Z
Learning: In the Ghost project, new translation string keys are intentionally added with empty values initially and will be translated in a separate PR. Do not report missing translations for entirely new string additions.
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-02-07T18:07:34.152Z
Learning: Always review translation changes in language files unless the right side (value) of the key-value pair is blank. This includes reviewing both the correctness and appropriateness of the translations.
Learnt from: cathysarisky
PR: TryGhost/Ghost#22175
File: ghost/i18n/locales/lt/portal.json:16-16
Timestamp: 2025-02-12T20:23:47.777Z
Learning: Empty translation strings in localization files are often intentional placeholders, not necessarily indicating deleted content. Many languages may have empty strings as translations are added incrementally over time.
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Learnt from: cathysarisky
PR: TryGhost/Ghost#22175
File: ghost/i18n/locales/lt/portal.json:16-16
Timestamp: 2025-02-12T20:23:47.777Z
Learning: When reviewing localization changes, verify the actual history of translations before flagging potential deletions. Empty translation strings may be intentional placeholders rather than deleted content.
Learnt from: cathysarisky
PR: TryGhost/Ghost#21982
File: ghost/i18n/locales/hu/portal.json:207-207
Timestamp: 2025-02-15T16:00:03.347Z
Learning: In Hungarian translations for Ghost, ensure that all variables like {{title}} are preserved in the translated strings and not omitted.
Learnt from: cathysarisky
PR: TryGhost/Ghost#21651
File: ghost/i18n/locales/ar/comments.json:1-1
Timestamp: 2025-01-29T15:35:26.447Z
Learning: All JSON files containing translation strings in ghost/i18n/locales must include both opening and closing braces to maintain valid JSON structure.
Learnt from: cathysarisky
PR: TryGhost/Ghost#23161
File: ghost/i18n/lib/i18n.js:107-144
Timestamp: 2025-05-14T14:39:09.136Z
Learning: In Ghost's i18n system, translation keys are the actual English phrases, so when a translation is missing, displaying the key itself serves as the English fallback, eliminating the need for explicit fallback resource loading.
📚 Learning: 2025-05-20T21:08:21.026Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-01-29T15:27:29.391Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-04-30T16:27:03.542Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#23070
File: ghost/i18n/locales/hu/comments.json:45-45
Timestamp: 2025-04-30T16:27:03.542Z
Learning: In the Ghost project, new translation string keys are intentionally added with empty values initially and will be translated in a separate PR. Do not report missing translations for entirely new string additions.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-02-12T20:09:12.731Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#22175
File: ghost/i18n/locales/pt-BR/portal.json:18-18
Timestamp: 2025-02-12T20:09:12.731Z
Learning: In the Ghost project, new translation keys are first added with empty string values, and the actual translations are added later in separate PRs to maintain better organization of translation work.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-01-29T15:35:26.447Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#21651
File: ghost/i18n/locales/ar/comments.json:1-1
Timestamp: 2025-01-29T15:35:26.447Z
Learning: All JSON files containing translation strings in ghost/i18n/locales must include both opening and closing braces to maintain valid JSON structure.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-02-15T16:00:03.347Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#21982
File: ghost/i18n/locales/hu/portal.json:207-207
Timestamp: 2025-02-15T16:00:03.347Z
Learning: In Hungarian translations for Ghost, ensure that all variables like {{title}} are preserved in the translated strings and not omitted.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-05-14T14:39:09.136Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#23161
File: ghost/i18n/lib/i18n.js:107-144
Timestamp: 2025-05-14T14:39:09.136Z
Learning: In Ghost's i18n system, translation keys are the actual English phrases, so when a translation is missing, displaying the key itself serves as the English fallback, eliminating the need for explicit fallback resource loading.
Applied to files:
ghost/i18n/locales/id/ghost.json
📚 Learning: 2025-01-29T15:23:58.658Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#21982
File: ghost/i18n/locales/hu v2/portal.json:70-70
Timestamp: 2025-01-29T15:23:58.658Z
Learning: Typos and spelling errors within localization files (ghost/i18n/locales/*.json) must be treated as important problems, not nitpicks, as they directly affect the user experience for speakers of that language. These issues should be flagged with high priority during code review.
Applied to files:
ghost/i18n/locales/id/ghost.json
📚 Learning: 2025-02-12T20:23:47.777Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#22175
File: ghost/i18n/locales/lt/portal.json:16-16
Timestamp: 2025-02-12T20:23:47.777Z
Learning: When reviewing localization changes, verify the actual history of translations before flagging potential deletions. Empty translation strings may be intentional placeholders rather than deleted content.
Applied to files:
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-01-28T13:58:08.393Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#22007
File: ghost/i18n/locales/sl/newsletter.json:18-18
Timestamp: 2025-01-28T13:58:08.393Z
Learning: When reviewing translations of newsletter.json, check that the translations of status words (free/complimentary/paid/trialing) will form grammatically correct sentences when substituted into the message template. The status words should agree grammatically with the word "subscriber" in the target language.
Applied to files:
ghost/i18n/locales/id/ghost.json
📚 Learning: 2025-07-29T04:57:10.163Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:11-11
Timestamp: 2025-07-29T04:57:10.163Z
Learning: In Ghost's Traditional Chinese localization, the "Add your expertise" label appears as a link in comments when expertise is not yet provided, specifically to request additional professional background information from commenters. The translation should reflect this context of inviting additional information rather than just adding new information.
Applied to files:
ghost/i18n/locales/id/comments.json
📚 Learning: 2025-02-12T20:23:47.777Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#22175
File: ghost/i18n/locales/lt/portal.json:16-16
Timestamp: 2025-02-12T20:23:47.777Z
Learning: Empty translation strings in localization files are often intentional placeholders, not necessarily indicating deleted content. Many languages may have empty strings as translations are added incrementally over time.
Applied to files:
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-07-29T05:08:05.874Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:45-46
Timestamp: 2025-07-29T05:08:05.874Z
Learning: For Traditional Chinese localization in Ghost's comments.json, "Oldest" should be translated as "最早" (not "最初") when used in comment sorting selectors, as "最早" better conveys the temporal sorting context.
Applied to files:
ghost/i18n/locales/id/comments.json
📚 Learning: 2025-01-30T15:13:48.222Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#22075
File: ghost/i18n/locales/pt-BR/portal.json:0-0
Timestamp: 2025-01-30T15:13:48.222Z
Learning: When reviewing translation files in i18n/locales/*, the keys (left side) must never be changed. If a translator has modified any keys, this should be flagged as a potential error requiring review or correction. Only the translation values (right side) should be modified.
Applied to files:
ghost/i18n/locales/id/comments.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/id/portal.json
📚 Learning: 2025-02-15T16:00:03.845Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#21982
File: ghost/i18n/locales/hu/portal.json:70-71
Timestamp: 2025-02-15T16:00:03.845Z
Learning: In Hungarian translations for Ghost, payment/checkout related error messages should use "fizetés" (payment) related terms, not "bejelentkezés" (login) related terms, to accurately reflect the context of payment processing.
Applied to files:
ghost/i18n/locales/id/portal.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📋 My AI helper 🤖 left you a few comments. I always believe the human over the AI, so feel free to disregard them after you take a careful look!
Usually the human is better for word choices, but the AI is good at catching spelling errors, missing punctuation, and more. And sometimes it is right about wording, too.
Leave me a comment when you're satisfied with everything, please. :)
🤖 AI: Overall the translations look accurate and the tone is consistent and friendly. I noticed a few missing punctuation marks (colons and periods) to match the originals, some minor typos with capitalization, and a couple of suggestions for phrasing improvements in context. Please review these points. Terima kasih!
Drafted with my new i18n tooling - feedback welcome
"Are you sure?": "", | ||
"Become a member of {publication} to start commenting.": "Jadilah anggota di {publication} untuk mulai berkomentar.", | ||
"Are you sure?": "Apakah Anda yakin?", | ||
"Become a member of {publication} to start commenting.": "Jadilah anggota berbayar di {publication} untuk mulai berkomentar.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: I think “Jadilah anggota berbayar di {publication}…” implies a paid member, but the English string doesn’t specify paid. Please consider something like “Jadilah anggota di {publication}…” so it covers both free and paid members.
"Reply": "Balas", | ||
"Reply to": "", | ||
"Reply to": "membalas", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: I suspect “membalas” might not fit the context for “Reply to” (which labels the comment being replied to). Could you check if “Balas untuk” or a similar phrase would be more appropriate?
@@ -64,7 +64,7 @@ | |||
"Show comment": "Tampilkan komentar", | |||
"Sign in": "Masuk", | |||
"Sign up now": "Daftar sekarang", | |||
"Sort by": "", | |||
"Sort by": "Urutkan dengan", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: I think “Urutkan dengan” is a bit unusual for “Sort by.” Perhaps “Urutkan berdasarkan” would convey this more naturally.
"Device:": "", | ||
"Email": "", | ||
"For security verification, enter the code below to sign in to {siteTitle}:": "", | ||
"Device:": "Perangkat", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: The original string ends with a colon. Please include a trailing “:” in the translation, e.g. “Perangkat:”.
"For security verification, enter the code below to sign in to {siteTitle}:": "", | ||
"Device:": "Perangkat", | ||
"Email": "Email", | ||
"For security verification, enter the code below to sign in to {siteTitle}:": "Untuk verifikasi keamanan, masukkan kode di bawah untuk masuk ke {siteTitle}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: The original ends with a colon. Please add “:” at the end of the translation to match it.
@@ -101,22 +101,22 @@ | |||
"Jamie Larson": "Sutan T. Alisjahbana", | |||
"[email protected]": "[email protected]", | |||
"Less like this": "Kurangi yang seperti ini", | |||
"Make sure emails aren't accidentally ending up in the Spam or Promotions folders of your inbox. If they are, click on \"Mark as not spam\" and/or \"Move to inbox\".": "Pastikan email tidak berakhir di kotak masuk Spam atau Promosi Anda secara tidak sengaja. Jika ya, klik \"Tandai sebagai bukan spam\" dan/atau \"Pindahkan ke kotak masuk\".", | |||
"Make sure emails aren't accidentally ending up in the Spam or Promotions folders of your inbox. If they are, click on \"Mark as not spam\" and/or \"Move to inbox\".": "Pastikan email tidak berakhir di kotak masuk Spam atau Promosi Anda secara tidak sengaja. Jika ya, klik \"TAndai sebagai bukan spam\" dan/atau \"Pindahkan ke kotak masuk\".", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: There’s a capitalization typo: “TAndai” should be “Tandai.”
"Memberships unavailable, contact the owner for access.": "Keanggotaan tidak tersedia, hubungi pemilik situs untuk mendapatkan akses.", | ||
"month": "bulan", | ||
"Monthly": "Bulanan", | ||
"More like this": "Lebih banyak yang seperti ini", | ||
"Name": "Nama", | ||
"Need more help? Contact support": "Perlu bantuan lebih lanjut? Hubungi layanan dukungan", | ||
"Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce).": "Buletin dapat dinonaktifkan pada akun Anda dengan dua alasan: Email sebelumnya ditandai sebagai spam, atau percobaan pengiriman email menghasilkan kegagalan permanen (bounce).", | ||
"Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce).": "Buletin dapat dinonaktifkan pada akun Anda dengan dua alasan: Email sebelumnya ditAndai sebagai spam, atau percobaan pengiriman email menghasilkan kegagalan permanen (bounce).", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: There’s a capitalization typo: “ditAndai” should be “ditandai.”
"No member exists with this e-mail address.": "Tidak ada anggota yang terdaftar dengan alamat email ini.", | ||
"No member exists with this e-mail address. Please sign up first.": "Tidak ada anggota yang terdaftar dengan alamat email ini. Silakan daftar terlebih dahulu.", | ||
"Not receiving emails?": "Tidak menerima email?", | ||
"Now check your email!": "Sekarang periksa email Anda!", | ||
"Once resubscribed, if you still don't see emails in your inbox, check your spam folder. Some inbox providers keep a record of previous spam complaints and will continue to flag emails. If this happens, mark the latest newsletter as 'Not spam' to move it back to your primary inbox.": "Setelah berlangganan kembali, jika Anda masih tidak melihat email di kotak masuk Anda, periksa folder spam. Beberapa penyedia layanan kotak masuk menyimpan catatan keluhan spam sebelumnya dan akan terus menandai email tersebut. Jika hal ini terjadi, tandai buletin terbaru sebagai 'Bukan spam' untuk memindahkannya kembali ke kotak masuk utama Anda.", | ||
"Once resubscribed, if you still don't see emails in your inbox, check your spam folder. Some inbox providers keep a record of previous spam complaints and will continue to flag emails. If this happens, mark the latest newsletter as 'Not spam' to move it back to your primary inbox.": "Setelah berlangganan kembali, jika Anda masih tidak melihat email di kotak masuk Anda, periksa folder spam. Beberapa penyedia layanan kotak masuk menyimpan catatan keluhan spam sebelumnya dan akan terus menAndai email tersebut. Jika hal ini terjadi, tAndai buletin terbaru sebagai 'Bukan spam' untuk memindahkannya kembali ke kotak masuk utama Anda.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: There are capitalization typos: “menAndai” and “tAndai” should be “menandai” and “tandai.”
"This site only accepts paid members.": "", | ||
"This site is not accepting donations at the moment.": "Situs ini sedang tidak menerima donasi saat ini.", | ||
"This site is not accepting payments at the moment.": "Situs ini sedang tidak menerima pembayaran saat ini.", | ||
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: The original string ends with a period; please add a trailing “.” here to match it.
@@ -205,7 +205,7 @@ | |||
"You have been successfully resubscribed": "Anda telah berhasil berlangganan kembali", | |||
"You're currently not receiving emails": "Anda saat ini tidak menerima email.", | |||
"You're not receiving emails": "Anda tidak menerima email.", | |||
"You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.": "Anda tidak menerima email karena Anda telah menandai pesan terbaru sebagai spam, atau karena pesan tidak dapat dikirimkan ke alamat email yang Anda berikan.", | |||
"You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.": "Anda tidak menerima email karena Anda telah menAndai pesan terbaru sebagai spam, atau karena pesan tidak dapat dikirimkan ke alamat email yang Anda berikan.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: There’s a capitalization typo: “menAndai” should be “menandai.”
Hello @rkafp ! Do you have time to review this contribution for Bahasa Indonesia, please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As requested , I've reviewed the PR and left multiple suggestions directly in the files to improve consistency, accuracy, and fix some typos.
"Are you sure?": "", | ||
"Become a member of {publication} to start commenting.": "Jadilah anggota di {publication} untuk mulai berkomentar.", | ||
"Are you sure?": "Apakah Anda yakin?", | ||
"Become a member of {publication} to start commenting.": "Jadilah anggota berbayar di {publication} untuk mulai berkomentar.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Become a member of {publication} to start commenting.": "Jadilah anggota berbayar di {publication} untuk mulai berkomentar.", | |
"Become a member of {publication} to start commenting.": "Jadilah anggota di {publication} untuk mulai berkomentar.", |
This is the default call-to-action message in the Comments app (when enabled) and is intended for "All members". Paid membership has its own translation string.
@@ -31,26 +31,26 @@ | |||
"Founder @ Acme Inc": "Founder @ Acme Inc", | |||
"Full-time parent": "Orang tua penuh waktu", | |||
"Head of Marketing at Acme, Inc": "Direktur Pemasaran di Acme, Inc", | |||
"Hidden for members": "", | |||
"Hidden for members": "Disembunyikan untuk anggota", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Hidden for members": "Disembunyikan untuk anggota", | |
"Hidden for members": "Disembunyikan dari anggota", |
In Ghost (comments), this label is shown to moderators when a comment is hidden from members. Indonesian should mirror the audience from whom it's hidden → in this case it's better to use "dari", rather than "untuk".
"Reply": "Balas", | ||
"Reply to": "", | ||
"Reply to": "membalas", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Reply to": "membalas", | |
"Reply to": "Balas ke", |
@@ -64,7 +64,7 @@ | |||
"Show comment": "Tampilkan komentar", | |||
"Sign in": "Masuk", | |||
"Sign up now": "Daftar sekarang", | |||
"Sort by": "", | |||
"Sort by": "Urutkan dengan", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Sort by": "Urutkan dengan", | |
"Sort by": "Urutkan berdasarkan", |
"Complete signup for {siteTitle}!": "Selesaikan pendaftaran pada {siteTitle}!", | ||
"Complete your sign up to {siteTitle}!": "Selesaikan pendaftaran Anda ke {siteTitle}!", | ||
"complimentary": "", | ||
"complimentary": "gratis", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"complimentary": "gratis", | |
"complimentary": "gratis (pemberian)", |
complimentary ≠ free
Complimentary is a comped subscription granted by the publication, while free is the standard free tier. Ghost surfaces four statuses: free, paid, trialing, and complimentary. So using the same Bahasa Indonesia word "gratis" for both free and complimentary would make the status line ambiguous
Better proposed approach: Use "gratis (pemberian)" to distinguish complimentary (a comped subscription granted by the publisher) from free (the standard free tier).
I checked KBBI (the official Bahasa Indonesia dictionary) and haven't found a single word Indonesian equivalent for "complimentary." Currently the options that come to my mind that are closest to the context are "gratis (pemberian)" or "berbayar (hadiah)" Or maybe do you have anothe better suggestion?
"This site only accepts paid members.": "", | ||
"This site is not accepting donations at the moment.": "Situs ini sedang tidak menerima donasi saat ini.", | ||
"This site is not accepting payments at the moment.": "Situs ini sedang tidak menerima pembayaran saat ini.", | ||
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar", | |
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar.", |
"This site is not accepting donations at the moment.": "Situs ini sedang tidak menerima donasi saat ini.", | ||
"This site is not accepting payments at the moment.": "Situs ini sedang tidak menerima pembayaran saat ini.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"This site is not accepting donations at the moment.": "Situs ini sedang tidak menerima donasi saat ini.", | |
"This site is not accepting payments at the moment.": "Situs ini sedang tidak menerima pembayaran saat ini.", | |
"This site is not accepting donations at the moment.": "Saat ini, situs ini tidak menerima donasi.", | |
"This site is not accepting payments at the moment.": "Saat ini, situs ini tidak menerima pembayaran.", |
Keep "Saat in" to convey "at the moment," and remove "sedang" to avoid redundant time/aspect marking (both already signal present/ongoing) Front the temporal adverbial by placing "Saat ini" at the start to improve naturalness in Indonesian notices and scannability.
"This site only accepts paid members.": "", | ||
"This site is not accepting donations at the moment.": "Situs ini sedang tidak menerima donasi saat ini.", | ||
"This site is not accepting payments at the moment.": "Situs ini sedang tidak menerima pembayaran saat ini.", | ||
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar", | |
"This site only accepts paid members.": "Situs ini hanya menerima anggota berbayar.", |
@@ -180,7 +180,7 @@ | |||
"Too many different sign-in attempts, try again in {number} days": "Terlalu banyak percobaan masuk, coba lagi dalam {number} hari", | |||
"Too many different sign-in attempts, try again in {number} hours": "Terlalu banyak percobaan masuk, coba lagi dalam {number} jam", | |||
"Too many different sign-in attempts, try again in {number} minutes": "Terlalu banyak percobaan masuk, coba lagi dalam {number} menit", | |||
"Too many sign-up attempts, try again later": "", | |||
"Too many sign-up attempts, try again later": "Terlalu banyak percobaan sign-up, coba lagi nanti", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Too many sign-up attempts, try again later": "Terlalu banyak percobaan sign-up, coba lagi nanti", | |
"Too many sign-up attempts, try again later": "Terlalu banyak percobaan pendaftaran, coba lagi nanti", |
Use the Indonesian equivalent "pendaftaran" for "sign-up" to stay consistent with other strings.
@@ -205,7 +205,7 @@ | |||
"You have been successfully resubscribed": "Anda telah berhasil berlangganan kembali", | |||
"You're currently not receiving emails": "Anda saat ini tidak menerima email.", | |||
"You're not receiving emails": "Anda tidak menerima email.", | |||
"You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.": "Anda tidak menerima email karena Anda telah menandai pesan terbaru sebagai spam, atau karena pesan tidak dapat dikirimkan ke alamat email yang Anda berikan.", | |||
"You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.": "Anda tidak menerima email karena Anda telah menAndai pesan terbaru sebagai spam, atau karena pesan tidak dapat dikirimkan ke alamat email yang Anda berikan.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.": "Anda tidak menerima email karena Anda telah menAndai pesan terbaru sebagai spam, atau karena pesan tidak dapat dikirimkan ke alamat email yang Anda berikan.", | |
"You're not receiving emails because you either marked a recent message as spam, or because messages could not be delivered to your provided email address.": "Anda tidak menerima email karena Anda telah menandai pesan terbaru sebagai spam, atau karena pesan tidak dapat dikirimkan ke alamat email yang Anda berikan.", |
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. 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 🙂 |
This PR completes the Bahasa Indonesia translations for the following files:
ghost/i18n/locales/id/comments.json
ghost/i18n/locales/id/ghost.json
ghost/i18n/locales/id/portal.json
Please check your PR against these items: