mirror of
https://github.com/discourse/discourse.git
synced 2024-12-12 07:26:19 +08:00
2d567cee26
Prior to this commit we were loading a large number of thread messages without any pagination. This commit attempts to fix this and also improves the following points: - code sharing between channels and threads: Attempts to reuse/share the code use in channels for threads. To make it possible part of this code has been extracted in dedicated helpers or has been improved to reduce the duplication needed. Examples of extracted helpers: - `stackingContextFix`: the ios hack for rendering bug when momentum scrolling is interrupted - `scrollListToMessage`, `scrollListToTop`, `scrollListToBottom`: a series of helper to correctly scroll to a specific position in the list of messages - better general performance of listing messages: One of the main changes which has been made is to remove the computation of visible message during scroll, it will only happen when needed (update last read for example). This constant recomputation of `message.visible` on intersection observer event while scrolling was consuming a lot of CPU time.
212 lines
13 KiB
YAML
212 lines
13 KiB
YAML
# WARNING: Never edit this file.
|
||
# It will be overwritten when translations are pulled from Crowdin.
|
||
#
|
||
# To work with us on translations, join this project:
|
||
# https://translate.discourse.org/
|
||
|
||
id:
|
||
site_settings:
|
||
chat_enabled: "Aktifkan plugin obrolan."
|
||
enable_public_channels: "Aktifkan saluran publik berdasarkan kategori."
|
||
chat_allowed_groups: "Pengguna dalam grup ini dapat mengobrol. Perhatikan bahwa staf selalu dapat mengakses obrolan."
|
||
chat_channel_retention_days: "Pesan obrolan di kanal reguler akan disimpan selama beberapa hari ini. Setel ke '0' untuk mempertahankan pesan selamanya."
|
||
chat_dm_retention_days: "Pesan obrolan di kanal obrolan pribadi akan dipertahankan selama beberapa hari ini. Setel ke '0' untuk mempertahankan pesan selamanya."
|
||
chat_auto_silence_duration: "Jumlah menit pengguna akan disenyapkan ketika mereka melebihi batas tingkat pembuatan pesan obrolan. Setel ke '0' untuk menonaktifkan senyap otomatis."
|
||
chat_allowed_messages_for_trust_level_0: "Jumlah pesan yang diizinkan untuk dikirim oleh pengguna trust level 0 dalam 30 detik. Setel ke '0' untuk menonaktifkan batas."
|
||
chat_allowed_messages_for_other_trust_levels: "Jumlah pesan yang boleh dikirim oleh pengguna dengan trust level 1-4 dalam 30 detik. Setel ke '0' untuk menonaktifkan batas."
|
||
chat_silence_user_sensitivity: "Kemungkinan pengguna yang ditandai dalam obrolan akan disenyapkan secara otomatis."
|
||
chat_auto_silence_from_flags_duration: "Jumlah menit pengguna akan disenyapkan ketika mereka disenyapkan secara otomatis karena pesan chat yang ditandai."
|
||
chat_default_channel_id: "Kanal obrolan yang akan dibuka secara bawaan saat pengguna tidak memiliki pesan yang belum dibaca atau sebutan di saluran lain."
|
||
chat_duplicate_message_sensitivity: "Kemungkinan pesan duplikat oleh pengirim yang sama akan diblokir dalam waktu singkat. Angka desimal antara 0 dan 1.0, dengan 1.0 sebagai setelan tertinggi (memblokir pesan lebih sering dalam waktu yang lebih singkat). Setel ke `0` untuk mengizinkan pesan duplikat."
|
||
chat_minimum_message_length: "Jumlah minimum karakter untuk pesan obrolan."
|
||
chat_allow_uploads: "Izinkan unggahan di kanal obrolan publik dan kanal pesan langsung."
|
||
chat_archive_destination_topic_status: "Status topik tujuan setelah arsip kanal selesai. Ini hanya berlaku bila topik tujuan adalah topik baru, bukan topik yang sudah ada."
|
||
default_emoji_reactions: "Reaksi emoji bawaan untuk pesan obrolan. Tambahkan hingga 5 emoji untuk reaksi cepat."
|
||
direct_message_enabled_groups: "Izinkan pengguna dalam grup ini untuk membuat Obrolan Pribadi pengguna-ke-pengguna. Catatan: staf selalu dapat membuat Obrolan Pribadi, dan pengguna akan dapat membalas Obrolan Pribadi yang dimulai oleh pengguna yang memiliki izin untuk membuatnya."
|
||
chat_message_flag_allowed_groups: "Pengguna dalam grup ini diizinkan untuk menandai pesan obrolan."
|
||
max_mentions_per_chat_message: "Jumlah maksimum notifikasi @nama yang dapat digunakan pengguna dalam pesan obrolan."
|
||
chat_max_direct_message_users: "Pengguna tidak dapat menambahkan lebih dari jumlah pengguna lain saat membuat pesan langsung baru. Setel ke 0 untuk hanya mengizinkan pesan untuk diri sendiri. Staf dibebaskan dari pengaturan ini."
|
||
chat_allow_archiving_channels: "Izinkan staf untuk mengarsipkan pesan ke suatu topik saat menutup kanal."
|
||
errors:
|
||
chat_default_channel: "Kanal obrolan bawaan harus berupa kanal publik."
|
||
direct_message_enabled_groups_invalid: "Anda harus menentukan setidaknya satu grup untuk setelan ini. Jika Anda tidak ingin siapa pun kecuali staf mengirim pesan langsung, pilih grup staf."
|
||
chat_upload_not_allowed_secure_uploads: "Unggahan obrolan tidak diizinkan saat pengaturan situs unggahan aman diaktifkan."
|
||
system_messages:
|
||
chat_channel_archive_complete:
|
||
title: "Pengarsipan Kanal Obrolan Selesai"
|
||
subject_template: "Pengarsipan kanal obrolan berhasil diselesaikan"
|
||
text_body_template: |
|
||
Pengarsipan kanal obrolan %{channel_hashtag_or_name} telah berhasil diselesaikan. Pesan disalin ke topik [%{topic_title}](%{topic_url}).
|
||
chat_channel_archive_failed:
|
||
title: "Pengarsipan Kanal Obrolan Gagal"
|
||
subject_template: "Pengarsipan kanal obrolan gagal"
|
||
text_body_template: |
|
||
Pengarsipan kanal obrolan %{channel_hashtag_or_name} gagal. %{messages_archived} pesan telah diarsipkan. Pesan yang diarsipkan sebagian disalin ke dalam topik [%{topic_title}](%{topic_url}). Kunjungi kanal di %{channel_url} untuk mencoba lagi.
|
||
chat_channel_archive_failed_no_topic:
|
||
title: "Pengarsipan Kanal Obrolan Gagal"
|
||
subject_template: "Pengarsipan kanal obrolan gagal"
|
||
text_body_template: |
|
||
Pengarsipan kanal obrolan %{channel_hashtag_or_name} gagal. Tidak ada pesan yang diarsipkan. Topik tidak berhasil dibuat karena alasan berikut:
|
||
|
||
%{topic_validation_errors}
|
||
|
||
Kunjungi kanal di %{channel_url} untuk mencoba lagi.
|
||
chat:
|
||
deleted_chat_username: dihapus
|
||
errors:
|
||
channel_exists_for_category: "Kanal sudah ada untuk kategori dan nama ini"
|
||
channel_new_message_disallowed:
|
||
archived: "Kanal diarsipkan, tidak ada pesan baru yang dapat dikirim"
|
||
closed: "Kanal ditutup, tidak ada pesan baru yang dapat dikirim"
|
||
read_only: "Kanal hanya dapat dibaca, tidak ada pesan baru yang dapat dikirim"
|
||
channel_modify_message_disallowed:
|
||
archived: "Kanal diarsipkan, tidak ada pesan yang dapat diedit atau dihapus"
|
||
closed: "Kanal ditutup, tidak ada pesan yang dapat diedit atau dihapus"
|
||
read_only: "Kanal hanya dapat dibaca, tidak ada pesan yang dapat diedit atau dihapus"
|
||
user_cannot_send_message: "Anda tidak dapat mengirim pesan saat ini."
|
||
rate_limit_exceeded: "Melebihi batas pesan obrolan yang dapat dikirim dalam waktu 30 detik"
|
||
auto_silence_from_flags: "Pesan obrolan ditandai dengan skor yang cukup tinggi untuk membuat senyap pengguna."
|
||
channel_cannot_be_archived: "Kanal tidak dapat diarsipkan saat ini, harus ditutup atau dibuka untuk diarsipkan."
|
||
duplicate_message: "Anda mengirim pesan yang sama baru-baru ini."
|
||
delete_channel_failed: "Hapus kanal gagal, harap coba lagi."
|
||
minimum_length_not_met:
|
||
other: "Pesan terlalu singkat, minimal harus berisi %{count} karakter."
|
||
message_too_long:
|
||
other: "Pesan terlalu panjang, pesan harus maksimal %{count} karakter."
|
||
draft_too_long: "Draf terlalu panjang."
|
||
max_reactions_limit_reached: "Reaksi baru tidak diperbolehkan pada pesan ini."
|
||
message_move_invalid_channel: "Kanal sumber dan tujuan harus kanal publik."
|
||
message_move_no_messages_found: "Tidak ada pesan yang ditemukan dengan ID pesan yang diberikan."
|
||
cant_update_direct_message_channel: "Properti kanal pesan langsung seperti nama dan deskripsi tidak dapat diperbarui."
|
||
not_accepting_dms: "Maaf, %{username} tidak menerima pesan saat ini."
|
||
actor_ignoring_target_user: "Anda mengabaikan %{username}, jadi Anda tidak dapat mengirim pesan kepadanya."
|
||
actor_muting_target_user: "Anda membisukan %{username}, jadi Anda tidak dapat mengirim pesan kepadanya."
|
||
actor_disallowed_dms: "Anda telah memilih untuk mencegah pengguna mengirimi Anda pesan langsung dan pribadi, sehingga Anda tidak dapat membuat pesan langsung baru."
|
||
actor_preventing_target_user_from_dm: "Anda telah memilih untuk mencegah %{username} mengirimi Anda pesan langsung dan pribadi, sehingga Anda tidak dapat membuat pesan langsung baru untuk dia."
|
||
user_cannot_send_direct_messages: "Maaf, Anda tidak dapat mengirim pesan langsung."
|
||
over_chat_max_direct_message_users_allow_self: "Anda hanya dapat membuat pesan langsung dengan diri Anda sendiri."
|
||
over_chat_max_direct_message_users:
|
||
other: "Anda tidak dapat membuat pesan langsung dengan lebih dari %{count} pengguna lain."
|
||
original_message_not_found: "Nenek moyang pesan yang Anda balas tidak dapat ditemukan atau telah dihapus."
|
||
thread_invalid_for_channel: "Utas bukan bagian dari saluran yang disediakan."
|
||
thread_does_not_match_parent: "Utas tidak cocok dengan pesan induk."
|
||
reviewables:
|
||
message_already_handled: "Terima kasih, tetapi kami telah meninjau pesan ini dan memutuskan bahwa pesan ini tidak perlu ditandai lagi."
|
||
actions:
|
||
agree:
|
||
title: "Setuju..."
|
||
agree_and_keep_message:
|
||
title: "Simpan Pesan"
|
||
description: "Setuju dengan penanda dan biarkan pesan tidak berubah."
|
||
agree_and_keep_deleted:
|
||
title: "Biarkan Pesan Dihapus"
|
||
description: "Setuju dengan penanda dan biarkan pesan dihapus."
|
||
agree_and_suspend:
|
||
title: "Tangguhkan Pengguna"
|
||
description: "Setuju dengan penanda dan menangguhkan pengguna."
|
||
agree_and_silence:
|
||
title: "Senyapkan Pengguna"
|
||
description: "Setuju dengan penanda dan senyapkan pengguna."
|
||
agree_and_restore:
|
||
title: "Pulihkan Pesan"
|
||
description: "Pulihkan pesan agar pengguna dapat melihatnya."
|
||
agree_and_delete:
|
||
title: "Hapus Pesan"
|
||
description: "Hapus pesan sehingga pengguna tidak dapat melihatnya."
|
||
delete_and_agree:
|
||
title: "Hapus Pesan"
|
||
disagree_and_restore:
|
||
title: "Tidak Setuju dan Pulihkan Pesan"
|
||
description: "Pulihkan pesan agar semua pengguna dapat melihatnya."
|
||
disagree:
|
||
title: "Tidak setuju"
|
||
ignore:
|
||
title: "Abaikan"
|
||
direct_messages:
|
||
transcript_title: "Transkrip pesan sebelumnya di %{channel_name}"
|
||
transcript_body: "Untuk memberi Anda lebih banyak konteks, kami menyertakan transkrip pesan sebelumnya dalam percakapan ini (hingga sepuluh):\n\n%{transcript}"
|
||
channel:
|
||
archive:
|
||
first_post_raw: "Topik ini adalah arsip dari kanal obrolan [%{channel_name}](%{channel_url})."
|
||
messages_moved:
|
||
other: "@%{acting_username} memindahkan %{count} pesan ke kanal [%{channel_name}](%{first_moved_message_url})."
|
||
dm_title:
|
||
single_user: "%{username}"
|
||
multi_user: "%{comma_separated_usernames}"
|
||
multi_user_truncated:
|
||
other: "%{comma_separated_usernames} dan %{count} lainnya"
|
||
category_channel:
|
||
errors:
|
||
slug_contains_non_ascii_chars: "berisi karakter non-ascii"
|
||
is_already_in_use: "sedang digunakan"
|
||
bookmarkable:
|
||
notification_title: "pesan di %{channel_name}"
|
||
personal_chat: "obrolan pribadi"
|
||
onebox:
|
||
inline_to_message: "Pesan #%{message_id} oleh %{username} – #%{chat_channel}"
|
||
inline_to_channel: "Obrolan #%{chat_channel}"
|
||
inline_to_topic_channel: "Obrolan untuk Topik %{topic_title}"
|
||
x_members:
|
||
other: "%{count} anggota"
|
||
and_x_others:
|
||
other: "dan %{count} lainnya"
|
||
summaries:
|
||
no_targets: "Tidak ada pesan selama periode yang dipilih."
|
||
discourse_push_notifications:
|
||
popup:
|
||
chat_mention:
|
||
direct: '%{username} menyebut Anda di "%{channel}"'
|
||
other_type: '%{username} menyebut %{identifier} di "%{channel}"'
|
||
direct_message_chat_mention:
|
||
direct: "%{username} menyebut Anda dalam obrolan pribadi"
|
||
other_type: "%{username} menyebut %{identifier} di obrolan pribadi"
|
||
new_chat_message: '%{username} mengirim pesan di "%{channel}"'
|
||
new_direct_chat_message: "%{username} mengirim pesan di obrolan pribadi"
|
||
discourse_automation:
|
||
scriptables:
|
||
send_chat_message:
|
||
title: Kirim pesan obrolan
|
||
reviewable_score_types:
|
||
needs_review:
|
||
title: "Perlu Reviu"
|
||
notify_user:
|
||
chat_pm_title: 'Pesan obrolan Anda di "%{channel_name}"'
|
||
chat_pm_body: "%{link}\n\n%{message}"
|
||
notify_moderators:
|
||
chat_pm_title: 'Pesan obrolan di "%{channel_name}" membutuhkan perhatian staf'
|
||
chat_pm_body: "%{link}\n\n%{message}"
|
||
reviewables:
|
||
reasons:
|
||
chat_message_queued_by_staff: "Anggota staf menganggap pesan obrolan ini perlu ditinjau."
|
||
user_notifications:
|
||
chat_summary:
|
||
deleted_user: "Pengguna yang dihapus"
|
||
description:
|
||
other: "Anda memiliki pesan obrolan baru"
|
||
from: "%{site_name}"
|
||
subject:
|
||
direct_message_from_1: "[%{email_prefix}] Pesan baru dari %{username}"
|
||
direct_message_from_2: "[%{email_prefix}] Pesan baru dari %{username1} dan %{username2}"
|
||
direct_message_from_more:
|
||
other: "[%{email_prefix}] Pesan baru dari %{username} dan %{count} lainnya"
|
||
chat_channel_1: "[%{email_prefix}] Pesan baru di %{channel}"
|
||
chat_channel_2: "[%{email_prefix}] Pesan baru di %{channel1} dan %{channel2}"
|
||
chat_channel_more:
|
||
other: "[%{email_prefix}] Pesan baru di %{channel} dan %{count} lainnya"
|
||
chat_channel_and_direct_message: "[%{email_prefix}] Pesan baru di %{channel} dan dari %{username}"
|
||
unsubscribe: "Ringkasan obrolan ini dikirim dari %{site_link} saat Anda pergi. Ubah %{email_preferences_link}, atau %{unsubscribe_link} Anda untuk berhenti berlangganan."
|
||
unsubscribe_no_link: "Ringkasan obrolan ini dikirim dari %{site_link} saat Anda pergi. Ubah %{email_preferences_link} Anda."
|
||
view_messages:
|
||
other: "Lihat %{count} pesan"
|
||
view_more:
|
||
other: "Lihat %{count} pesan lagi"
|
||
your_chat_settings: "preferensi frekuensi obrolan email"
|
||
unsubscribe:
|
||
chat_summary:
|
||
select_title: "Setel frekuensi email ringkasan obrolan ke:"
|
||
never: Tidak pernah
|
||
when_away: Hanya saat pergi
|
||
category:
|
||
cannot_delete:
|
||
has_chat_channels: "Tidak dapat menghapus kategori ini karena memiliki kanal obrolan."
|