diff --git a/CHANGELOG.md b/CHANGELOG.md
index 76dd5d0a1..6cadaeb90 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ major updates to the project.
### added
+- Add Indonesian localization
+ ([#200](https://github.com/giscus/giscus/pull/200)).
- Properly introduce i18n and l10n support
([#199](https://github.com/giscus/giscus/pull/199)).
diff --git a/README.id.md b/README.id.md
new file mode 100644
index 000000000..55daba7c7
--- /dev/null
+++ b/README.id.md
@@ -0,0 +1,85 @@
+# [giscus][giscus]
+
+Sebuah sistem komentar yang diberdayakan oleh [GitHub Discussions][discussions]. Memungkinkan pengunjung meninggalkan komentar dan reaksi pada website Anda melalui GitHub! Terinspirasi dari [utterances][utterances].
+
+- [Bersumber terbuka][repo]. 🌏
+- Tidak ada pelacakan, tidak ada iklan, selalu gratis. 📡 🚫
+- Tidak perlu basis data. Semua data disimpan di GitHub Discussions. :octocat:
+- Mendukung [tema buatan sendiri][creating-custom-themes]! 🌗
+- Mendukung [banyak bahasa][multiple-languages]. 🌐
+- [Dapat dikonfigurasi secara luas][advanced-usage]. 🔧
+- Otomatis mengambil komentar dan perubahan baru dari GitHub. 🔃
+- [Dapat diinangkan sendiri][self-hosting]! 🤳
+
+> **Catatan:**\
+> giscus masih sedang dalam pengembangan aktif. GitHub juga masih aktif mengembangkan Discussions dan API-nya. Oleh karena itu, beberapa fitur giscus mungkin rusak atau berubah seiring waktu.
+
+## cara kerja
+
+Ketika giscus dimuat, [API pencarian GitHub Discussions][search-api] digunakan untuk mencari diskusi yang terkait dengan halaman penyemat berdasarkan pemetaan yang dipilih (URL, `pathname`, `
`, dll.). Jika diskusi yang terkait tidak ditemukan, bot giscus akan otomatis membuat diskusinya ketika ada orang yang meninggalkan komentar atau reaksi untuk pertama kalinya.
+
+Untuk berkomentar, pengunjung harus mengizinkan [aplikasi giscus][giscus-app] untuk [berkomentar atas nama mereka][authorization] menggunakan alur GitHub OAuth. Atau, pengunjung dapat meninggalkan komentar pada diskusinya secara langsung di GitHub. Anda dapat memoderasi komentarnya di GitHub.
+
+[giscus]: https://giscus.app/id
+[discussions]: https://docs.github.com/en/discussions
+[utterances]: https://github.com/utterance/utterances
+[repo]: https://github.com/giscus/giscus
+[advanced-usage]: https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md
+[creating-custom-themes]: https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#data-theme
+[multiple-languages]: https://github.com/giscus/giscus/blob/main/CONTRIBUTING.md#adding-localizations
+[self-hosting]: https://github.com/giscus/giscus/blob/main/SELF-HOSTING.md
+[search-api]: https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions#search
+[giscus-app]: https://github.com/apps/giscus
+[authorization]: https://docs.github.com/en/developers/apps/identifying-and-authorizing-users-for-github-apps
+
+
+
+Jika Anda menggunakan giscus, pertimbangkan untuk [menambahkan bintang 🌟 giscus di GitHub][repo] dan menambahkan topic [`giscus`][giscus-topic] pada [repositori Anda][topic-howto]! 🎉
+
+## penggunaan lanjutan
+
+Anda dapat menambahkan konfigurasi tambahan (contoh: hanya mengizinkan situs tertentu) dengan mengikuti [panduan penggunaan lanjutan][advanced-usage].
+
+Untuk menggunakan giscus dengan React, Vue, atau Svelte, cek [pustaka komponen giscus][giscus-component].
+
+## migrasi
+
+Apabila Anda sebelumnya menggunakan sistem lain yang menggunakan GitHub Issues (misal: [utterances][utterances], [gitalk][gitalk]), Anda dapat [mengkonversi isu yang sudah ada menjadi diskusi][convert]. Setelah proses konversi, pastikan bahwa pemetaan antara judul diskusi dengan halaman-halamannya sudah benar, dan giscus akan otomatis menggunakan diskusinya.
+
+## situs yang menggunakan giscus
+
+- [laymonage.com][laymonage-website]
+- [os.phil-opp.com][os-phil-opp]
+- [Stats and R][statsandr]
+- [Tech Debt Burndown Podcast][techdebtburndown]
+- [**dan masih banyak yang lainnya!**][giscus-topic]
+
+## berkontribusi
+
+Lihat [CONTRIBUTING.md][contributing]
+
+[giscus-component]: https://github.com/giscus/giscus-component
+[repo]: https://github.com/giscus/giscus
+[giscus-topic]: https://github.com/topics/giscus
+[topic-howto]: https://docs.github.com/en/github/administering-a-repository/classifying-your-repository-with-topics
+[advanced-usage]: https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md
+[utterances]: https://github.com/utterance/utterances
+[gitalk]: https://github.com/gitalk/gitalk
+[convert]: https://docs.github.com/en/discussions/managing-discussions-for-your-community/moderating-discussions#converting-an-issue-to-a-discussion
+[laymonage-website]: https://laymonage.com/posts/giscus
+[os-phil-opp]: https://os.phil-opp.com
+[statsandr]: https://statsandr.com
+[techdebtburndown]: https://techdebtburndown.com
+[contributing]: https://github.com/giscus/giscus/blob/main/CONTRIBUTING.md
+
+
+
+---
+
+README ini tersedia dalam bahasa:
+
+[Inggris](README.md) • [Indonesia](README.id.md) • [Polandia](README.pl.md) • [Rumania](README.ro.md)
+
+[![Powered by Vercel](public/powered-by-vercel.svg)][vercel]
+
+[vercel]: https://vercel.com/?utm_source=giscus&utm_campaign=oss
diff --git a/README.md b/README.md
index dbbfdaa7b..428b31465 100644
--- a/README.md
+++ b/README.md
@@ -76,9 +76,9 @@ See [CONTRIBUTING.md][contributing]
---
-This README is also available in:
+This README is available in:
-[English](README.md) • [Polish](README.pl.md) • [Romanian](README.ro.md)
+[English](README.md) • [Indonesian](README.id.md) • [Polish](README.pl.md) • [Romanian](README.ro.md)
[![Powered by Vercel](public/powered-by-vercel.svg)][vercel]
diff --git a/README.pl.md b/README.pl.md
index f58a06c4e..1c5a65dbe 100644
--- a/README.pl.md
+++ b/README.pl.md
@@ -76,9 +76,9 @@ See [CONTRIBUTING.md][contributing]
---
-This README is also available in:
+This README is available in:
-[English](README.md) • [Polish](README.pl.md) • [Romanian](README.ro.md)
+[English](README.md) • [Indonesian](README.id.md) • [Polish](README.pl.md) • [Romanian](README.ro.md)
[![Powered by Vercel](public/powered-by-vercel.svg)][vercel]
diff --git a/README.ro.md b/README.ro.md
index 6a3c8dbbd..fa00bea59 100644
--- a/README.ro.md
+++ b/README.ro.md
@@ -76,9 +76,9 @@ See [CONTRIBUTING.md][contributing]
---
-This README is also available in:
+This README is available in:
-[English](README.md) • [Polish](README.pl.md) • [Romanian](README.ro.md)
+[English](README.md) • [Indonesian](README.id.md) • [Polish](README.pl.md) • [Romanian](README.ro.md)
[![Powered by Vercel](public/powered-by-vercel.svg)][vercel]
diff --git a/i18n.json b/i18n.json
index c9b15172d..db2a29a1a 100644
--- a/i18n.json
+++ b/i18n.json
@@ -1,5 +1,5 @@
{
- "locales": ["en", "pl", "ro"],
+ "locales": ["en", "id", "pl", "ro"],
"defaultLocale": "en",
"pages": {
"*": ["common"],
diff --git a/lib/i18n.tsx b/lib/i18n.tsx
index 8b534ed09..2d4db43b1 100644
--- a/lib/i18n.tsx
+++ b/lib/i18n.tsx
@@ -41,7 +41,7 @@ export interface GiscusTranslate {
(i18nKey: I18nKeysNoCount, query?: TranslationQuery): string;
}
-export const availableLanguages = ['en', 'pl', 'ro'] as const;
+export const availableLanguages = ['en', 'id', 'pl', 'ro'] as const;
export type AvailableLanguage = typeof availableLanguages[number];
@@ -100,6 +100,7 @@ const dateFormat: Intl.DateTimeFormatOptions = {
const dateFormatters: Record = {
en: new Intl.DateTimeFormat('en', dateFormat),
+ id: new Intl.DateTimeFormat('id', dateFormat),
pl: new Intl.DateTimeFormat('pl', dateFormat),
ro: new Intl.DateTimeFormat('ro', dateFormat),
};
@@ -111,6 +112,7 @@ const shortDateFormat: Intl.DateTimeFormatOptions = {
const shortDateFormatters: Record = {
en: new Intl.DateTimeFormat('en', shortDateFormat),
+ id: new Intl.DateTimeFormat('id', shortDateFormat),
pl: new Intl.DateTimeFormat('pl', shortDateFormat),
ro: new Intl.DateTimeFormat('ro', shortDateFormat),
};
@@ -123,6 +125,7 @@ const shortDateYearFormat: Intl.DateTimeFormatOptions = {
const shortDateYearFormatters: Record = {
en: new Intl.DateTimeFormat('en', shortDateYearFormat),
+ id: new Intl.DateTimeFormat('id', shortDateYearFormat),
pl: new Intl.DateTimeFormat('pl', shortDateYearFormat),
ro: new Intl.DateTimeFormat('ro', shortDateYearFormat),
};
@@ -135,6 +138,7 @@ const relativeTimeFormat: Intl.RelativeTimeFormatOptions = {
const relativeTimeFormatters: Record = {
en: new Intl.RelativeTimeFormat('en', relativeTimeFormat),
+ id: new Intl.RelativeTimeFormat('id', relativeTimeFormat),
pl: new Intl.RelativeTimeFormat('pl', relativeTimeFormat),
ro: new Intl.RelativeTimeFormat('ro', relativeTimeFormat),
};
diff --git a/locales/en/config.json b/locales/en/config.json
index c512e7d75..730a546f2 100644
--- a/locales/en/config.json
+++ b/locales/en/config.json
@@ -5,6 +5,7 @@
"chooseLanguageGiscusDisplayed": "Choose the language giscus will be displayed in. Can't find your language? Contribute a localization.",
"lang=en": "English",
+ "lang=id": "Indonesian",
"lang=pl": "Polish",
"lang=ro": "Romanian",
diff --git a/locales/id/common.json b/locales/id/common.json
new file mode 100644
index 000000000..34e957978
--- /dev/null
+++ b/locales/id/common.json
@@ -0,0 +1,76 @@
+{
+ "reactions": {
+ "other": "{{count}} reaksi"
+ },
+ "comment": "Komentar",
+ "comments": {
+ "other": "{{count}} komentar"
+ },
+ "reply": "Balas",
+ "replies": {
+ "other": "{{count}}{{plus}} balasan"
+ },
+ "upvotes": {
+ "other": "{{count}} suara positif"
+ },
+ "hiddenItems": {
+ "other": "{{count}} komentar belum dimuat"
+ },
+ "genericError": "Suatu galat terjadi{{message}}",
+ "loadMore": "Muat lebih banyak",
+ "loading": "Memuat",
+ "loadingComments": "Memuat komentar…",
+ "loadingPreview": "Memuat pratinjau…",
+ "poweredBy": "– diberdayakan oleh giscus",
+ "showPreviousReplies": {
+ "other": "Tampilkan {{count}} balasan sebelumnya"
+ },
+ "seePreviousRepliesOnGitHub": {
+ "other": "Lihat {{count}} balasan sebelumnya di GitHub"
+ },
+ "edited": "diedit",
+ "thisCommentWasDeleted": "Komentar ini telah dihapus.",
+ "thisCommentWasMinimized": "Komentar ini telah ditutup.",
+ "thisCommentWasHidden": "Komentar ini telah disembunyikan.",
+ "write": "Tulis",
+ "preview": "Pratinjau",
+ "lastEditedAt": "Terakhir diedit pada {{date}}",
+ "writeAComment": "Tulis komentar",
+ "signInToComment": "Masuk untuk berkomentar",
+ "stylingWithMarkdownIsSupported": "Gaya tulisan bisa diubah dengan Markdown",
+ "cancel": "Batal",
+ "signInWithGitHub": "Masuk dengan GitHub",
+ "writeAReply": "Tulis balasan",
+
+ "upvote": "Beri suara positif",
+ "addReactions": "Tambahkan reaksi",
+ "pleaseWait": "Mohon tunggu…",
+ "pickYourReaction": "Pilih reaksi Anda",
+ "addTheReaction": "Tambahkan reaksi {{reaction}}",
+ "signInToAddYourReaction": "Masuk untuk menambahkan reaksi Anda.",
+ "youMustBeSignedInToAddReactions": "Anda harus masuk untuk menambahkan reaksi.",
+ "peopleReactedWith": {
+ "other": "{{count}} orang bereaksi dengan {{emoji}} {{reaction}}"
+ },
+ "emoji": "emoji",
+ "nothingToPreview": "Tidak ada pratinjau",
+
+ "THUMBS_UP": "+1",
+ "THUMBS_DOWN": "-1",
+ "LAUGH": "Tertawa",
+ "HOORAY": "Hore",
+ "CONFUSED": "Bingung",
+ "HEART": "Suka",
+ "ROCKET": "Roket",
+ "EYES": "Mata",
+
+ "COLLABORATOR": "Kolaborator",
+ "CONTRIBUTOR": "Kontributor",
+ "FIRST_TIMER": "Pemula",
+ "FIRST_TIME_CONTRIBUTOR": "Kontributor pemula",
+ "MANNEQUIN": "Manekin",
+ "MEMBER": "Anggota",
+ "NONE": "Tidak ada",
+ "OWNER": "Pemilik",
+ "APP": "Aplikasi"
+}
diff --git a/locales/id/config.json b/locales/id/config.json
new file mode 100644
index 000000000..fc2ee55d2
--- /dev/null
+++ b/locales/id/config.json
@@ -0,0 +1,87 @@
+{
+ "configuration": "konfigurasi",
+
+ "language": "Bahasa",
+ "chooseLanguageGiscusDisplayed": "Pilih bahasa yang akan ditampilkan giscus. Tidak dapat menemukan bahasa Anda? Buat kontribusi terjemahan.",
+
+ "lang=en": "Inggris",
+ "lang=id": "Indonesia",
+ "lang=pl": "Polandia",
+ "lang=ro": "Rumania",
+
+ "repository": "Repositori",
+ "chooseTheRepository": "Pilih repositori yang akan dihubungkan dengan giscus. Pastikan:",
+ "theRepositoryIsPublic": "Repositori tersebut publik, jika tidak maka pengunjung tidak dapat melihat diskusi.",
+ "theGiscusAppIsInstalled": "Aplikasi giscus terpasang di repositori tersebut, jika tidak maka pengunjung tidak dapat meninggalkan komentar dan reaksi.",
+ "theDiscussionsFeatureIsTurnedOn": "Fitur Discussions diaktifkan dengan mengaktifkannya pada repositori tersebut.",
+ "repositoryLabel": "repositori:",
+ "myusername/myrepo": "namasaya/reposaya",
+ "cannotUseGiscusOnThisRepository": "Tidak dapat menggunakan giscus di repositori ini. Pastikan seluruh kriteria di atas telah terpenuhi.",
+ "successRepositoryMeetsCriteria": "Sukses! Repositori ini memenuhi seluruh kriteria di atas.",
+ "aPublicGitHubRepository": "Suatu repositori yang publik. Di repositori inilah diskusinya akan dihubungkan.",
+
+ "pageDiscussionsMapping": "Pemetaan Halaman ↔️ Diskusi",
+ "chooseTheMapping": "Pilih pemetaan antara halaman penyemat dan diskusi yang disematkan.",
+ "titleContainsPathname": "Judul diskusi mengandung pathname
halaman",
+ "titleContainsPathnameDesc": "giscus akan mencari diskusi yang judulnya mengandung komponen URL pathname
dari halaman penyemat.",
+ "titleContainsURL": "Judul diskusi mengandung URL
halaman",
+ "titleContainsURLDesc": "giscus akan mencari diskusi yang judulnya mengandung URL dari halaman penyemat.",
+ "titleContainsTitle": "Judul diskusi mengandung
halaman",
+ "titleContainsTitleDesc": "giscus akan mencari diskusi yang judulnya mengandung tag HTML
dari halaman penyemat.",
+ "titleContainsOgTitle": "Judul diskusi mengandung og:title
halaman",
+ "titleContainsOgTitleDesc": "giscus akan mencari diskusi yang judulnya mengandung tag HTML
dari halaman penyemat.",
+ "titleContainsSpecificTerm": "Judul diskusi mengandung istilah spesifik",
+ "titleContainsSpecificTermDesc": "giscus akan mencari diskusi yang judulnya mengandung suatu istilah spesifik.",
+ "enterTermHere": "Masukkan istilah di sini",
+ "specificDiscussionNumber": "Nomor diskusi spesifik",
+ "specificDiscussionNumberDesc": "giscus akan memuat suatu diskusi spesifik berdasarkan nomornya. Opsi ini tidak mendukung pembuatan diskusi otomatis.",
+ "enterDiscussionNumberHere": "Masukkan nomor diskusi di sini",
+
+ "discussionCategory": "Kategori Diskusi",
+ "chooseTheDiscussionCategory": "Pilih kategori diskusi di mana diskusi baru akan dibuat.",
+ "categoryIsNotSupported": "Fitur ini tidak didukung apabila Anda menggunakan pemetaan nomor diskusi spesifik.",
+ "recommendAnnouncementsCategory": "Disarankan untuk menggunakan kategori dengan tipe Announcements agar diskusi baru hanya dapat dibuat oleh pengurus dan giscus.",
+ "discussionCategoryLabel": "Kategori diskusi",
+ "categoryNotSupportedOption": "Tidak didukung",
+ "pickACategoryOption": "Pilih kategori",
+ "noCategoriesFoundOption": "Tidak ada kategori yang ditemukan",
+ "onlySearchInThisCategory": "Hanya cari diskusi dalam kategori ini",
+ "whenSearchingOnlyThisCategory": "Ketika mencari diskusi yang cocok, giscus hanya mencari dalam kategori ini.",
+
+ "features": "Fitur",
+ "chooseSpecificFeatures": "Pilih apakah fitur-fitur tertentu ingin diaktifkan.",
+ "enableReactionsMainPost": "Aktifkan reaksi untuk kiriman utama",
+ "reactionsMainPostShownBeforeComments": "Reaksi untuk kiriman utama diskusinya akan ditampilkan di atas komentar.",
+ "emitDiscussionMetadata": "Pancarkan metadata diskusi",
+ "discussionMetadataSentPeriodically": "Metadata diskusi akan dikirimkan secara berkala ke jendela induk (halaman yang menyematkan diskusi). Untuk demonstrasi, aktifkan opsi ini dan buka konsol peramban Anda pada halaman ini. Baca dokumentasinya untuk detail lebih lanjut.",
+
+ "theme": "Tema",
+ "chooseAThemeThatMatches": "Pilih tema yang cocok dengan situs web Anda. Tidak ada yang cocok? Buat kontribusi tema baru.",
+ "URLToThemeCSS": "URL menuju berkas CSS tema:",
+ "warningExternalCSSUnsafe": "Perhatian: memuat CSS eksternal mungkin tidak aman. Pastikan Anda memercayai pembuat dan penyedia berkas CSS ini.",
+
+ "theme=light": "GitHub Terang",
+ "theme=dark": "GitHub Gelap",
+ "theme=dark_dimmed": "GitHub Gelap Redup",
+ "theme=dark_high_contrast": "GitHub Gelap Kontras Tinggi",
+ "theme=dark_protanopia": "GitHub Gelap Buta Warna",
+ "theme=light_protanopia": "GitHub Terang Buta Warna",
+ "theme=transparent_dark": "Gelap Transparan",
+ "theme=preferred_color_scheme": "Skema warna pilihan",
+ "theme=custom": "Buat sendiri (eksperimental)",
+
+ "enableGiscus": "Aktifkan giscus",
+ "addTheFollowingScriptTag": "Tambahkan tag
berikut ke template halaman web Anda di mana Anda ingin komentarnya muncul. Apabila sudah terdapat elemen dengan kelas giscus
, maka komentarnya akan diletakkan di sana.",
+ "copy": "Salin",
+
+ "[enterRepoHere]": "[MASUKKAN REPOSITORI DI SINI]",
+ "[enterRepoIDHere]": "[MASUKKAN ID REPOSITORI DI SINI]",
+ "[enterCategoryHere]": "[MASUKKAN NAMA KATEGORI DI SINI]",
+ "[enterCategoryIDHere]": "[MASUKKAN ID KATEGORI DI SINI]",
+ "[enterTermHere]": "[MASUKKAN ISTILAH DI SINI]",
+ "[enterNumberHere]": "[MASUKKAN NOMOR DI SINI]",
+ "[enterThemeCSSURLHere]": "[MASUKKAN URL CSS TEMA DI SINI]",
+
+ "youCanCustomizeTheLayout": "Anda dapat mengubah tata letak wadahnya menggunakan pemilih kelas .giscus
dan .giscus-frame
dari halaman penyemat.",
+ "tryItOut": "silakan dicoba"
+}
diff --git a/locales/pl/config.json b/locales/pl/config.json
index c512e7d75..96315bfd8 100644
--- a/locales/pl/config.json
+++ b/locales/pl/config.json
@@ -5,6 +5,7 @@
"chooseLanguageGiscusDisplayed": "Choose the language giscus will be displayed in. Can't find your language? Contribute a localization.",
"lang=en": "English",
+ "lang=id": "Indonesia",
"lang=pl": "Polish",
"lang=ro": "Romanian",
diff --git a/locales/ro/config.json b/locales/ro/config.json
index c512e7d75..96315bfd8 100644
--- a/locales/ro/config.json
+++ b/locales/ro/config.json
@@ -5,6 +5,7 @@
"chooseLanguageGiscusDisplayed": "Choose the language giscus will be displayed in. Can't find your language? Contribute a localization.",
"lang=en": "English",
+ "lang=id": "Indonesia",
"lang=pl": "Polish",
"lang=ro": "Romanian",