Files
SnapOtter/packages/shared/src/i18n/id.ts
T
SnapOtterandGitHub d4eaa655b2 fix(audio): expose sample rate setting in Convert Audio (#561)
The Convert Audio tool promised configurable bitrate, sample rate, and channel count, but only format and bitrate were exposed. Adds an optional sampleRate setting (8000 to 96000 Hz, omitted = preserve source) wired through the Zod schema, the FFmpeg -ar flag, the standalone settings panel, and the pipeline builder controls.

Impossible combinations fail loudly instead of degrading silently: MP3 + 96000 Hz is rejected (libmp3lame caps at 48 kHz), and MP3 bitrates above the encoder ceiling at low rates (64 kbps at 8 kHz, 160 kbps at 16/22.05 kHz) are rejected rather than clamped. The UI offers only legal combinations and sanitizes stored pipeline settings on load.

Docs updated in English plus all 20 localized pages with refreshed i18n_source_hash stamps; two new UI strings added to all 21 locales.

Fixes #558
2026-07-18 10:14:50 +08:00

4081 lines
140 KiB
TypeScript

import type { TranslationKeys } from "./en.js";
export const id: TranslationKeys = {
migrationBanner: {
successTitle: "Data SnapOtter 1.x diimpor.",
successBody: "Memindahkan {users} pengguna dan {files} file tersimpan dari versi sebelumnya.",
warningTitle: "Database 1.x ditemukan, tetapi tidak diimpor.",
warningBody:
"Instans ini sudah memiliki data, jadi database 1.x Anda tidak diimpor. Impor memerlukan instans kosong. Lihat panduan peningkatan.",
dismiss: "Tutup",
},
common: {
upload: "Unggah dari komputer",
process: "Proses",
download: "Unduh",
cancel: "Batal",
save: "Simpan",
delete: "Hapus",
settings: "Pengaturan",
search: "Cari alat...",
dropFiles: "Seret file ke sini atau klik tombol unggah",
loading: "Memuat...",
saving: "Menyimpan...",
error: "Terjadi kesalahan",
confirm: "Konfirmasi",
close: "Tutup",
back: "Kembali",
next: "Berikutnya",
clear: "Hapus",
copy: "Salin",
copied: "Disalin!",
noResults: "Tidak ada hasil",
showLess: "Tampilkan lebih sedikit",
showMore: "Tampilkan {count} lainnya",
experimental: "Eksperimental",
enabled: "Aktif",
disabled: "Nonaktif",
rename: "Ganti nama",
edit: "Sunting",
actions: "Tindakan",
create: "Buat",
or: "atau",
goHome: "Ke Beranda",
somethingWentWrong: "Terjadi kesalahan",
unexpectedError: "Terjadi kesalahan yang tidak terduga.",
retry: "Coba lagi",
privacyPolicy: "Kebijakan Privasi",
pageNotFound: "Halaman tidak ditemukan",
pageNotFoundDescription: "Halaman yang Anda cari tidak ada atau telah dipindahkan.",
},
feedback: {
navLabel: "Bagikan masukan",
navButtonLabel: "Masukan",
dialogTitle: "Bagikan masukan",
toolDialogTitle: "Bagaimana kinerja alat ini?",
failedDialogTitle: "Laporkan masalah alat",
adminDialogTitle: "Bagaimana proses penyiapannya?",
closeLabel: "Tutup dialog masukan",
privacyNote:
"Masukan hanya dikirim saat Anda mengirimkannya. SnapOtter tidak menyertakan file, isi file, nama file, atau hasil pribadi Anda.",
typeLabel: "Jenis masukan",
sentimentLabel: "Penilaian cepat",
messageLabel: "Masukan",
messagePlaceholder:
"Ceritakan apa yang berhasil, apa yang bermasalah, atau apa yang bisa membuat SnapOtter lebih baik.",
improveFirstLabel: "Apa yang harus kami tingkatkan lebih dulu?",
improveFirstPlaceholder: "Ceritakan apa yang membuat penyiapan lebih sulit dari seharusnya.",
contactOkLabel: "Anda boleh menghubungi saya terkait masukan ini.",
emailPlaceholder: "Email (opsional)",
namePlaceholder: "Nama (opsional)",
companyPlaceholder: "Perusahaan atau organisasi (opsional)",
submit: "Kirim masukan",
submitting: "Mengirim...",
submitFailed: "Masukan tidak dapat dikirim. Silakan coba lagi.",
searchMissTitle: "Minta alat",
searchMissContext: "Anda mencari: {query}",
searchMissDiscussionsFallback: "Kami tidak dapat mencatatnya. Buka permintaan di Discussions.",
offlineDescription:
"Instance ini menonaktifkan analitik, jadi masukan tidak dicatat di sini. Anda tetap bisa menghubungi tim SnapOtter secara langsung.",
offlinePublicNote: "Issue GitHub bersifat publik.",
offlineGithubButton: "Buka issue GitHub",
offlineEmailButton: "Kirim email ke kami",
thanksTitle: "Terima kasih atas masukannya.",
thanksDescription:
"Ini membantu kami meningkatkan SnapOtter tanpa mengumpulkan file atau konten pribadi.",
quickThanks: "Terima kasih atas tanggapannya.",
reportIssue: "Laporkan masalah",
toolPromptTitle: "Bagaimana kinerja alat ini?",
toolPromptDescription: "Satu tanggapan singkat membantu kami meningkatkan SnapOtter.",
dismissPrompt: "Tutup ajakan masukan",
workedWell: "Berfungsi dengan baik",
dontAskAgain: "Jangan tanya lagi",
shareFeedback: "Bagikan masukan",
remindLater: "Ingatkan nanti",
adminCardTitle: "Bagaimana proses penyiapannya?",
adminCardDescription:
"Catatan singkat dari admin membantu kami meningkatkan Docker, instalasi dari sumber, dan dokumentasi.",
installMethodLabel: "Metode instalasi",
frictionAreaLabel: "Bagian penyiapan tersulit",
importantAreasLabel: "Bagian terpenting",
sentiments: {
great: "Bagus",
okay: "Lumayan",
issue: "Ada masalah",
missing: "Ada yang kurang",
bug: "Bug",
idea: "Ide",
other: "Lainnya",
},
types: {
bug: "Bug",
feature_request: "Permintaan fitur",
confusing_ux: "UX membingungkan",
performance: "Performa",
other: "Lainnya",
},
installMethods: {
docker: "Docker",
docker_compose: "Docker Compose",
source: "Dibangun dari sumber",
cloud: "Cloud/demo",
other: "Lainnya",
},
usageTypes: {
personal: "Hanya saya",
team_internal: "Tim kecil",
business_workflow: "Perusahaan atau organisasi",
education: "Pendidikan",
evaluating: "Sedang mengevaluasi",
},
frictionAreas: {
smooth: "Tidak ada, penyiapan berjalan lancar",
docker: "Penyiapan Docker/kontainer",
environment_variables: "Variabel lingkungan",
auth: "Autentikasi/SSO",
storage: "Penyimpanan/unggahan",
workers: "Pekerja/antrean",
ai_tools: "Alat AI",
docs: "Dokumentasi",
performance: "Performa/sumber daya",
other: "Lainnya",
},
importantAreas: {
images: "Gambar",
pdf_docs: "PDF/dokumen",
video_audio: "Video/audio",
batch_workflows: "Alur kerja batch",
ai_tools: "Alat AI",
},
},
onboarding: {
usageSurveyTitle: "Bagaimana Anda menggunakan SnapOtter?",
usageSurveyToolsLabel: "Apa yang paling penting bagi Anda?",
pickAnyHint: "(pilih sebanyak yang Anda mau)",
continueLabel: "Lanjutkan",
},
categories: {
essentials: "Dasar",
adjustments: "Penyesuaian",
enhance: "Penyempurnaan & AI",
watermark: "Watermark & Hamparan",
layout: "Tata Letak & Komposisi",
utilities: "Utilitas",
optimization: "Optimasi",
format: "Format & Konversi",
"video-edit": "Video",
"video-convert": "Konversi",
"video-effects": "Efek & Komposisi",
"video-subtitles": "Subtitle",
"video-metadata": "Metadata",
"audio-edit": "Sunting",
"audio-convert": "Konversi",
"audio-effects": "Efek & Komposisi",
"audio-metadata": "Metadata",
"pdf-organize": "Atur",
"pdf-edit": "Edit & Anotasi",
"pdf-security": "Keamanan",
"pdf-optimize": "Optimasi",
"doc-convert": "Konversi",
data: "File",
archives: "Arsip",
},
modalities: {
image: "Gambar",
video: "Video",
audio: "Audio",
documentsAndFiles: "PDF & File",
},
tools: {
// BEGIN conversion-presets (generated by scripts/generate-conversion-i18n.mjs)
"jpg-to-png": {
name: "JPG ke PNG",
description: "Konversi JPG ke PNG online. Cepat, gratis, dan privat.",
},
"png-to-jpg": {
name: "PNG ke JPG",
description: "Konversi PNG ke JPG online. Cepat, gratis, dan privat.",
},
"jpg-to-webp": {
name: "JPG ke WebP",
description: "Konversi JPG ke WebP online. Cepat, gratis, dan privat.",
},
"png-to-webp": {
name: "PNG ke WebP",
description: "Konversi PNG ke WebP online. Cepat, gratis, dan privat.",
},
"webp-to-jpg": {
name: "WebP ke JPG",
description: "Konversi WebP ke JPG online. Cepat, gratis, dan privat.",
},
"webp-to-png": {
name: "WebP ke PNG",
description: "Konversi WebP ke PNG online. Cepat, gratis, dan privat.",
},
"jpg-to-avif": {
name: "JPG ke AVIF",
description: "Konversi JPG ke AVIF online. Cepat, gratis, dan privat.",
},
"png-to-avif": {
name: "PNG ke AVIF",
description: "Konversi PNG ke AVIF online. Cepat, gratis, dan privat.",
},
"webp-to-avif": {
name: "WebP ke AVIF",
description: "Konversi WebP ke AVIF online. Cepat, gratis, dan privat.",
},
"heic-to-jpg": {
name: "HEIC ke JPG",
description: "Konversi HEIC ke JPG online. Cepat, gratis, dan privat.",
},
"heic-to-png": {
name: "HEIC ke PNG",
description: "Konversi HEIC ke PNG online. Cepat, gratis, dan privat.",
},
"heic-to-avif": {
name: "HEIC ke AVIF",
description: "Konversi HEIC ke AVIF online. Cepat, gratis, dan privat.",
},
"jpg-to-gif": {
name: "JPG ke GIF",
description: "Konversi JPG ke GIF online. Cepat, gratis, dan privat.",
},
"png-to-gif": {
name: "PNG ke GIF",
description: "Konversi PNG ke GIF online. Cepat, gratis, dan privat.",
},
"gif-to-jpg": {
name: "GIF ke JPG",
description: "Konversi GIF ke JPG online. Cepat, gratis, dan privat.",
},
"gif-to-png": {
name: "GIF ke PNG",
description: "Konversi GIF ke PNG online. Cepat, gratis, dan privat.",
},
"webp-to-gif": {
name: "WebP ke GIF",
description: "Konversi WebP ke GIF online. Cepat, gratis, dan privat.",
},
"jpg-to-tiff": {
name: "JPG ke TIFF",
description: "Konversi JPG ke TIFF online. Cepat, gratis, dan privat.",
},
"png-to-tiff": {
name: "PNG ke TIFF",
description: "Konversi PNG ke TIFF online. Cepat, gratis, dan privat.",
},
"tiff-to-jpg": {
name: "TIFF ke JPG",
description: "Konversi TIFF ke JPG online. Cepat, gratis, dan privat.",
},
"tiff-to-png": {
name: "TIFF ke PNG",
description: "Konversi TIFF ke PNG online. Cepat, gratis, dan privat.",
},
"psd-to-jpg": {
name: "PSD ke JPG",
description: "Konversi PSD ke JPG online. Cepat, gratis, dan privat.",
},
"psd-to-png": {
name: "PSD ke PNG",
description: "Konversi PSD ke PNG online. Cepat, gratis, dan privat.",
},
"png-to-eps": {
name: "PNG ke EPS",
description: "Konversi PNG ke EPS online. Cepat, gratis, dan privat.",
},
"jpg-to-eps": {
name: "JPG ke EPS",
description: "Konversi JPG ke EPS online. Cepat, gratis, dan privat.",
},
"eps-to-png": {
name: "EPS ke PNG",
description: "Konversi EPS ke PNG online. Cepat, gratis, dan privat.",
},
"eps-to-jpg": {
name: "EPS ke JPG",
description: "Konversi EPS ke JPG online. Cepat, gratis, dan privat.",
},
"png-to-svg": {
name: "PNG ke SVG",
description: "Konversi PNG ke SVG online. Cepat, gratis, dan privat.",
},
"jpg-to-svg": {
name: "JPG ke SVG",
description: "Konversi JPG ke SVG online. Cepat, gratis, dan privat.",
},
"tiff-to-svg": {
name: "TIFF ke SVG",
description: "Konversi TIFF ke SVG online. Cepat, gratis, dan privat.",
},
"psd-to-svg": {
name: "PSD ke SVG",
description: "Konversi PSD ke SVG online. Cepat, gratis, dan privat.",
},
"eps-to-svg": {
name: "EPS ke SVG",
description: "Konversi EPS ke SVG online. Cepat, gratis, dan privat.",
},
"svg-to-png": {
name: "SVG ke PNG",
description: "Konversi SVG ke PNG online. Cepat, gratis, dan privat.",
},
"svg-to-jpg": {
name: "SVG ke JPG",
description: "Konversi SVG ke JPG online. Cepat, gratis, dan privat.",
},
"jpg-to-pdf": {
name: "JPG ke PDF",
description: "Konversi JPG ke PDF online. Cepat, gratis, dan privat.",
},
"png-to-pdf": {
name: "PNG ke PDF",
description: "Konversi PNG ke PDF online. Cepat, gratis, dan privat.",
},
"heic-to-pdf": {
name: "HEIC ke PDF",
description: "Konversi HEIC ke PDF online. Cepat, gratis, dan privat.",
},
"tiff-to-pdf": {
name: "TIFF ke PDF",
description: "Konversi TIFF ke PDF online. Cepat, gratis, dan privat.",
},
"webp-to-pdf": {
name: "WebP ke PDF",
description: "Konversi WebP ke PDF online. Cepat, gratis, dan privat.",
},
"gif-to-pdf": {
name: "GIF ke PDF",
description: "Konversi GIF ke PDF online. Cepat, gratis, dan privat.",
},
"eps-to-pdf": {
name: "EPS ke PDF",
description: "Konversi EPS ke PDF online. Cepat, gratis, dan privat.",
},
"pdf-to-jpg": {
name: "PDF ke JPG",
description: "Konversi PDF ke JPG online. Cepat, gratis, dan privat.",
},
"pdf-to-png": {
name: "PDF ke PNG",
description: "Konversi PDF ke PNG online. Cepat, gratis, dan privat.",
},
"pdf-to-tiff": {
name: "PDF ke TIFF",
description: "Konversi PDF ke TIFF online. Cepat, gratis, dan privat.",
},
"mov-to-mp4": {
name: "MOV ke MP4",
description: "Konversi MOV ke MP4 online. Cepat, gratis, dan privat.",
},
"webm-to-mp4": {
name: "WEBM ke MP4",
description: "Konversi WEBM ke MP4 online. Cepat, gratis, dan privat.",
},
"mkv-to-mp4": {
name: "MKV ke MP4",
description: "Konversi MKV ke MP4 online. Cepat, gratis, dan privat.",
},
"avi-to-mp4": {
name: "AVI ke MP4",
description: "Konversi AVI ke MP4 online. Cepat, gratis, dan privat.",
},
"mp4-to-mov": {
name: "MP4 ke MOV",
description: "Konversi MP4 ke MOV online. Cepat, gratis, dan privat.",
},
"mp4-to-webm": {
name: "MP4 ke WEBM",
description: "Konversi MP4 ke WEBM online. Cepat, gratis, dan privat.",
},
"webm-to-mov": {
name: "WEBM ke MOV",
description: "Konversi WEBM ke MOV online. Cepat, gratis, dan privat.",
},
"mkv-to-mov": {
name: "MKV ke MOV",
description: "Konversi MKV ke MOV online. Cepat, gratis, dan privat.",
},
"avi-to-mov": {
name: "AVI ke MOV",
description: "Konversi AVI ke MOV online. Cepat, gratis, dan privat.",
},
"mp4-to-avi": {
name: "MP4 ke AVI",
description: "Konversi MP4 ke AVI online. Cepat, gratis, dan privat.",
},
"mov-to-avi": {
name: "MOV ke AVI",
description: "Konversi MOV ke AVI online. Cepat, gratis, dan privat.",
},
"mkv-to-avi": {
name: "MKV ke AVI",
description: "Konversi MKV ke AVI online. Cepat, gratis, dan privat.",
},
"avi-to-mkv": {
name: "AVI ke MKV",
description: "Konversi AVI ke MKV online. Cepat, gratis, dan privat.",
},
"mp4-to-gif": {
name: "MP4 ke GIF",
description: "Konversi MP4 ke GIF online. Cepat, gratis, dan privat.",
},
"mov-to-gif": {
name: "MOV ke GIF",
description: "Konversi MOV ke GIF online. Cepat, gratis, dan privat.",
},
"mkv-to-gif": {
name: "MKV ke GIF",
description: "Konversi MKV ke GIF online. Cepat, gratis, dan privat.",
},
"avi-to-gif": {
name: "AVI ke GIF",
description: "Konversi AVI ke GIF online. Cepat, gratis, dan privat.",
},
"gif-to-mp4": {
name: "GIF ke MP4",
description: "Konversi GIF ke MP4 online. Cepat, gratis, dan privat.",
},
"gif-to-webm": {
name: "GIF ke WEBM",
description: "Konversi GIF ke WEBM online. Cepat, gratis, dan privat.",
},
"gif-to-mov": {
name: "GIF ke MOV",
description: "Konversi GIF ke MOV online. Cepat, gratis, dan privat.",
},
"mp4-to-mp3": {
name: "MP4 ke MP3",
description: "Konversi MP4 ke MP3 online. Cepat, gratis, dan privat.",
},
"mov-to-mp3": {
name: "MOV ke MP3",
description: "Konversi MOV ke MP3 online. Cepat, gratis, dan privat.",
},
"mkv-to-mp3": {
name: "MKV ke MP3",
description: "Konversi MKV ke MP3 online. Cepat, gratis, dan privat.",
},
"webm-to-mp3": {
name: "WEBM ke MP3",
description: "Konversi WEBM ke MP3 online. Cepat, gratis, dan privat.",
},
"avi-to-mp3": {
name: "AVI ke MP3",
description: "Konversi AVI ke MP3 online. Cepat, gratis, dan privat.",
},
"mp4-to-wav": {
name: "MP4 ke WAV",
description: "Konversi MP4 ke WAV online. Cepat, gratis, dan privat.",
},
"mov-to-wav": {
name: "MOV ke WAV",
description: "Konversi MOV ke WAV online. Cepat, gratis, dan privat.",
},
"mp4-to-ogg": {
name: "MP4 ke OGG",
description: "Konversi MP4 ke OGG online. Cepat, gratis, dan privat.",
},
"m4a-to-mp3": {
name: "M4A ke MP3",
description: "Konversi M4A ke MP3 online. Cepat, gratis, dan privat.",
},
"m4a-to-wav": {
name: "M4A ke WAV",
description: "Konversi M4A ke WAV online. Cepat, gratis, dan privat.",
},
"aac-to-mp3": {
name: "AAC ke MP3",
description: "Konversi AAC ke MP3 online. Cepat, gratis, dan privat.",
},
"aac-to-wav": {
name: "AAC ke WAV",
description: "Konversi AAC ke WAV online. Cepat, gratis, dan privat.",
},
"aac-to-flac": {
name: "AAC ke FLAC",
description: "Konversi AAC ke FLAC online. Cepat, gratis, dan privat.",
},
"ogg-to-mp3": {
name: "OGG ke MP3",
description: "Konversi OGG ke MP3 online. Cepat, gratis, dan privat.",
},
"ogg-to-wav": {
name: "OGG ke WAV",
description: "Konversi OGG ke WAV online. Cepat, gratis, dan privat.",
},
"wav-to-mp3": {
name: "WAV ke MP3",
description: "Konversi WAV ke MP3 online. Cepat, gratis, dan privat.",
},
"mp3-to-wav": {
name: "MP3 ke WAV",
description: "Konversi MP3 ke WAV online. Cepat, gratis, dan privat.",
},
"flac-to-mp3": {
name: "FLAC ke MP3",
description: "Konversi FLAC ke MP3 online. Cepat, gratis, dan privat.",
},
"excel-to-csv": {
name: "Excel ke CSV",
description: "Konversi Excel ke CSV online. Cepat, gratis, dan privat.",
},
// END conversion-presets
resize: {
name: "Ubah Ukuran Gambar",
description: "Ubah ukuran berdasarkan piksel, persentase, atau preset media sosial",
},
crop: {
name: "Potong Gambar",
description: "Potong bebas, preset rasio aspek, potong bentuk",
},
rotate: {
name: "Putar & Balik Gambar",
description: "Putar, balik, dan luruskan gambar",
},
convert: {
name: "Konversi Gambar",
description: "Konversi antar format gambar",
},
compress: {
name: "Kompres Gambar",
description: "Kurangi ukuran file berdasarkan kualitas atau ukuran target",
},
"optimize-for-web": {
name: "Optimasi untuk Web",
description:
"Optimasi gambar untuk web dengan konversi format, kontrol kualitas, dan pratinjau langsung",
},
"strip-metadata": {
name: "Hapus Metadata Gambar",
description: "Hapus EXIF, GPS, dan info kamera",
},
"edit-metadata": {
name: "Sunting Metadata Gambar",
description: "Edit EXIF, IPTC, XMP, GPS, kata kunci, dan tanggal",
},
"bulk-rename": {
name: "Ganti Nama Massal",
description: "Ganti nama banyak file dengan pola",
},
"image-to-pdf": {
name: "Gambar ke PDF",
description: "Gabungkan gambar menjadi dokumen PDF",
},
"pdf-to-image": {
name: "PDF ke Gambar",
description: "Konversi halaman PDF menjadi gambar",
},
favicon: {
name: "Generator Favicon",
description: "Buat semua ukuran Favicon dan ikon aplikasi",
},
"adjust-colors": {
name: "Sesuaikan Warna",
description: "Kecerahan, kontras, eksposur, saturasi, suhu warna, ketajaman, dan efek",
},
sharpening: {
name: "Pertajam Gambar",
description: "Pertajam adaptif, unsharp mask, dan pertajam high-pass dengan preset",
},
"replace-color": {
name: "Ganti & Balik Warna",
description: "Ganti warna tertentu atau balikkan warna",
},
"color-blindness": {
name: "Simulasi Buta Warna",
description: "Simulasikan tampilan gambar dengan berbagai jenis defisiensi penglihatan warna",
},
"remove-background": {
name: "Hapus Latar Belakang",
description: "Penghapusan latar belakang dengan AI",
},
upscale: {
name: "Perbesar Gambar",
description: "Peningkatan resolusi super dengan AI",
},
"erase-object": {
name: "Penghapus Objek",
description: "Hapus objek yang tidak diinginkan dengan AI",
},
ocr: {
name: "Ekstrak Teks dari Gambar (OCR)",
description: "Ekstrak teks dari gambar dengan akurasi AI",
},
"ocr-pdf": {
name: "OCR PDF",
description: "Ekstrak teks dari dokumen PDF menggunakan OCR bertenaga AI",
},
"blur-faces": {
name: "Blur Wajah & Info Pribadi",
description: "Deteksi otomatis dan blur wajah serta informasi sensitif",
},
"enhance-faces": {
name: "Peningkatan Wajah",
description: "Pulihkan dan tingkatkan wajah dengan AI",
},
"smart-crop": {
name: "Potong Cerdas",
description: "Pemotongan cerdas berdasarkan subjek, wajah, atau trim",
},
"image-enhancement": {
name: "Peningkatan Gambar",
description:
"Perbaikan otomatis sekali klik dengan koreksi eksposur, kontras, warna, dan ketajaman cerdas",
},
"noise-removal": {
name: "Penghapusan Noise",
description: "Penghapusan noise dan grain dengan AI",
},
"red-eye-removal": {
name: "Penghapusan Mata Merah",
description: "Deteksi dan koreksi mata merah dengan AI untuk foto flash",
},
"restore-photo": {
name: "Restorasi Foto",
description: "Perbaiki goresan, robekan, dan kerusakan pada foto lama dengan AI",
},
"content-aware-resize": {
name: "Ubah Ukuran Content-Aware",
description: "Ubah ukuran gambar secara cerdas dengan mempertahankan konten penting",
},
"ai-canvas-expand": {
name: "Perluas Kanvas AI",
description: "Perluas kanvas dengan pengisian AI",
},
colorize: {
name: "Pewarnaan AI",
description: "Ubah foto hitam putih menjadi warna penuh menggunakan model deep learning AI",
},
"passport-photo": {
name: "Foto Paspor",
description:
"Buat foto paspor, visa, dan KTP sesuai standar pemerintah dengan deteksi wajah otomatis",
},
"transcribe-audio": {
name: "Transkripsi Audio",
description: "Ubah ucapan menjadi teks dengan transkripsi bertenaga AI",
},
"auto-subtitles": {
name: "Subtitle Otomatis",
description: "Buat file subtitle dari trek audio video",
},
"transparency-fixer": {
name: "Perbaikan Transparansi PNG",
description: "Perbaiki PNG transparansi palsu dalam satu klik",
},
"background-replace": {
name: "Ganti Latar Belakang",
description: "Ganti latar belakang gambar dengan warna solid",
},
"blur-background": {
name: "Buramkan Latar Belakang",
description: "Buramkan latar belakang sambil menjaga subjek tetap tajam",
},
"watermark-text": {
name: "Watermark Teks",
description: "Tambahkan overlay watermark teks",
},
"watermark-image": {
name: "Watermark Gambar",
description: "Tumpangkan logo sebagai watermark",
},
"text-overlay": {
name: "Overlay Teks",
description: "Tambahkan teks bergaya ke gambar",
},
compose: {
name: "Komposisi Gambar",
description: "Lapisi gambar dengan posisi dan opasitas",
},
"meme-generator": {
name: "Generator Meme",
description:
"Buat meme dengan template populer atau gambar Anda sendiri. Teks bergaya Impact klasik dengan font, warna, dan posisi yang dapat disesuaikan.",
},
info: {
name: "Info Gambar",
description: "Lihat semua metadata dan properti gambar",
},
compare: {
name: "Bandingkan Gambar",
description: "Perbandingan dua gambar secara berdampingan",
},
"find-duplicates": {
name: "Cari Duplikat",
description: "Deteksi gambar duplikat dan hampir duplikat",
},
"color-palette": {
name: "Palet Warna",
description: "Ekstrak warna dominan dari gambar",
},
"qr-generate": {
name: "Generator Kode QR",
description: "Buat kode QR bergaya dengan warna, pola, dan logo kustom",
},
"html-to-image": {
name: "HTML ke Gambar",
description: "Tangkap halaman web sebagai gambar berkualitas tinggi",
},
"barcode-read": {
name: "Pembaca Barcode",
description: "Pindai gambar untuk kode QR, barcode, dan kode 2D",
},
collage: {
name: "Kolase & Grid",
description: "Gabungkan gambar menjadi kolase grid yang indah dengan 25+ template",
},
stitch: {
name: "Gabungkan Gambar",
description: "Gabungkan gambar secara berdampingan, bertumpuk, atau dalam grid",
},
split: {
name: "Bagi Gambar",
description:
"Bagi gambar menjadi ubin grid atau berdasarkan ukuran piksel dengan pratinjau langsung",
},
border: {
name: "Border & Bingkai",
description:
"Tambahkan border, padding, sudut membulat, dan bayangan dengan preset sekali klik",
},
beautify: {
name: "Percantik Screenshot",
description:
"Tambahkan latar gradien, bingkai perangkat, bayangan, dan ukuran media sosial ke screenshot",
},
"circle-crop": {
name: "Potong Lingkaran",
description: "Potong gambar menjadi lingkaran di tengah dengan sudut transparan",
},
duotone: {
name: "Duotone",
description: "Terapkan efek duotone dua warna dengan warna bayangan dan sorotan kustom",
},
"image-pad": {
name: "Padding Gambar",
description: "Tambah padding gambar ke rasio aspek target dengan latar warna solid",
},
pixelate: {
name: "Pikselasi",
description: "Terapkan efek pikselasi pada seluruh gambar atau area tertentu",
},
vignette: {
name: "Vignet",
description: "Tambahkan efek vignette dengan intensitas dan warna yang dapat diatur",
},
"gif-webp": {
name: "Konverter GIF/WebP",
description: "Konversi GIF animasi ke WebP dan sebaliknya, mempertahankan semua frame",
},
histogram: {
name: "Histogram",
description: "Buat diagram histogram RGB dari gambar",
},
"lqip-placeholder": {
name: "Placeholder LQIP",
description: "Buat placeholder gambar kecil berkualitas rendah dengan data URI base64",
},
"sprite-sheet": {
name: "Sprite Sheet",
description: "Gabungkan beberapa gambar menjadi satu grid sprite sheet",
},
"svg-to-raster": {
name: "SVG ke Raster",
description:
"Konversi SVG ke PNG, JPEG, WebP, AVIF, TIFF, GIF, atau HEIF dengan skala dan DPI kustom",
},
vectorize: {
name: "Gambar ke SVG",
description: "Konversi gambar ke grafis vektor yang dapat diskalakan",
},
"gif-tools": {
name: "Alat GIF",
description:
"Ubah ukuran, optimasi, ubah kecepatan, balik, ekstrak frame, dan putar GIF animasi",
},
"image-to-base64": {
name: "Gambar ke Base64",
description: "Konversi gambar ke string Base64 untuk disematkan di HTML, CSS, dan lainnya",
},
"barcode-generate": {
name: "Generator Barcode",
description:
"Buat barcode dalam format Code 128, EAN-13, UPC-A, Code 39, ITF-14, dan Data Matrix",
},
"chart-maker": {
name: "Pembuat Grafik",
description: "Buat grafik batang, garis, atau lingkaran dari data CSV atau JSON",
},
"convert-video": {
name: "Konversi Video",
description: "Konversi video antara format MP4, MOV, dan WebM",
},
"compress-video": {
name: "Kompres Video",
description: "Perkecil ukuran file video dengan kontrol kualitas",
},
"trim-video": {
name: "Potong Video",
description: "Potong klip dari video",
},
"mute-video": {
name: "Bisukan Video",
description: "Hapus trek audio dari video",
},
"video-to-gif": {
name: "Video ke GIF",
description: "Ubah klip video menjadi GIF animasi",
},
"resize-video": {
name: "Ubah Ukuran Video",
description: "Skalakan video ke resolusi baru atau ukuran preset",
},
"crop-video": {
name: "Potong Area Video",
description: "Potong area tertentu dari video",
},
"rotate-video": {
name: "Putar Video",
description: "Putar atau balik video",
},
"change-fps": {
name: "Ubah FPS",
description: "Ubah frame rate video",
},
"video-color": {
name: "Warna Video",
description: "Atur kecerahan, kontras, saturasi, dan gamma",
},
"video-speed": {
name: "Kecepatan Video",
description: "Percepat atau perlambat video",
},
"reverse-video": {
name: "Balik Video",
description: "Putar klip video secara terbalik",
},
"video-loudnorm": {
name: "Normalisasi Audio Video",
description: "Normalisasi volume audio video ke standar siaran",
},
"aspect-pad": {
name: "Padding Rasio Aspek",
description: "Tambah bilah warna solid untuk menyesuaikan rasio aspek target",
},
"blur-pad": {
name: "Padding Blur",
description: "Isi bilah dengan salinan video yang diburamkan",
},
"watermark-video": {
name: "Watermark Video",
description: "Terapkan watermark teks pada frame video",
},
"stabilize-video": {
name: "Stabilkan Video",
description: "Kurangi guncangan kamera dengan stabilisasi dua tahap",
},
"gif-to-video": {
name: "GIF ke Video",
description: "Konversi GIF animasi menjadi video MP4 atau WebM",
},
"video-to-webp": {
name: "Video ke WebP",
description: "Konversi klip video menjadi gambar WebP animasi",
},
"video-to-frames": {
name: "Video ke Frame",
description: "Ekstrak frame dari video sebagai ZIP berisi gambar",
},
"merge-videos": {
name: "Gabung Video",
description: "Gabungkan beberapa klip video menjadi satu file",
},
"replace-audio": {
name: "Ganti Audio",
description: "Ganti trek audio video dengan file lain",
},
"burn-subtitles": {
name: "Tanam Subtitle",
description: "Render subtitle secara permanen pada frame video",
},
"embed-subtitles": {
name: "Sisipkan Subtitle",
description: "Sisipkan trek subtitle ke dalam kontainer video",
},
"extract-subtitles": {
name: "Ekstrak Subtitle",
description: "Keluarkan trek subtitle dari video sebagai file SRT",
},
"images-to-video": {
name: "Gambar ke Video",
description: "Ubah kumpulan gambar menjadi video slideshow",
},
"video-metadata": {
name: "Bersihkan Metadata Video",
description: "Hapus metadata dari video dan laporkan apa yang ditemukan",
},
"convert-audio": {
name: "Konversi Audio",
description: "Konversi audio antara MP3, WAV, OGG, dan lainnya",
},
"trim-audio": {
name: "Potong Audio",
description: "Potong bagian dari file audio",
},
"extract-audio": {
name: "Ekstrak Audio",
description: "Keluarkan trek audio dari video",
},
"volume-adjust": {
name: "Atur Volume",
description: "Naikkan atau turunkan volume audio dengan gain tetap",
},
"normalize-audio": {
name: "Normalisasi Audio",
description: "Ratakan kenyaringan ke level standar siaran",
},
"fade-audio": {
name: "Fade Audio",
description: "Tambahkan efek fade-in dan fade-out pada audio",
},
"reverse-audio": {
name: "Balik Audio",
description: "Putar audio secara terbalik",
},
"audio-speed": {
name: "Kecepatan Audio",
description: "Percepat atau perlambat pemutaran audio",
},
"pitch-shift": {
name: "Geser Nada",
description: "Naikkan atau turunkan nada per semitone tanpa mengubah kecepatan",
},
"audio-channels": {
name: "Kanal Audio",
description: "Konversi antara mono, stereo, atau tukar kanal kiri dan kanan",
},
"silence-removal": {
name: "Hapus Keheningan",
description: "Hapus bagian hening dari audio",
},
"noise-reduction": {
name: "Pengurangan Noise",
description: "Kurangi noise latar dengan denoising berbasis FFT",
},
"merge-audio": {
name: "Gabung Audio",
description: "Gabungkan beberapa file audio menjadi satu",
},
"split-audio": {
name: "Pisah Audio",
description: "Pisah audio berdasarkan waktu, bagian sama rata, atau deteksi keheningan",
},
"ringtone-maker": {
name: "Pembuat Nada Dering",
description: "Buat klip nada dering dari file audio apa pun",
},
"waveform-image": {
name: "Gambar Gelombang",
description: "Buat visualisasi gelombang sebagai gambar PNG",
},
"audio-metadata": {
name: "Metadata Audio",
description: "Lihat, edit, atau hapus tag audio (ID3)",
},
"merge-pdf": {
name: "Gabung PDF",
description: "Gabungkan beberapa PDF menjadi satu",
},
"split-pdf": {
name: "Pisah PDF",
description: "Ekstrak halaman atau pisah menjadi beberapa bagian",
},
"compress-pdf": {
name: "Kompres PDF",
description: "Perkecil ukuran file PDF",
},
"rotate-pdf": {
name: "Putar PDF",
description: "Putar halaman dalam PDF",
},
"convert-document": {
name: "Konversi Dokumen",
description: "Konversi antara format Word, OpenDocument, RTF, dan teks biasa",
},
"convert-presentation": {
name: "Konversi Presentasi",
description: "Konversi antara format presentasi PowerPoint dan OpenDocument",
},
"convert-spreadsheet": {
name: "Konversi Spreadsheet",
description:
"Konversi antara format Excel, OpenDocument, dan CSV. Workbook multi-sheet mengekspor sheet pertama ke CSV.",
},
"excel-to-pdf": {
name: "Excel ke PDF",
description: "Konversi spreadsheet ke PDF. Sheet lebar mungkin terbagi ke beberapa halaman.",
},
"word-to-pdf": {
name: "Word ke PDF",
description: "Konversi dokumen Word ke PDF",
},
"extract-pages": {
name: "Ekstrak Halaman",
description: "Keluarkan halaman terpilih ke PDF baru",
},
"remove-pages": {
name: "Hapus Halaman",
description: "Hapus halaman tertentu dari PDF",
},
"organize-pdf": {
name: "Atur PDF",
description: "Susun ulang halaman dengan urutan halaman eksplisit",
},
"protect-pdf": {
name: "Lindungi PDF",
description: "Tambahkan proteksi kata sandi (enkripsi AES-256)",
},
"unlock-pdf": {
name: "Buka Kunci PDF",
description: "Hapus proteksi kata sandi dari PDF",
},
"repair-pdf": {
name: "Perbaiki PDF",
description: "Coba perbaiki PDF yang rusak atau korup",
},
"linearize-pdf": {
name: "Optimasi PDF untuk Web",
description: "Linearisasi PDF untuk tampilan web yang cepat",
},
"grayscale-pdf": {
name: "PDF Grayscale",
description: "Konversi semua warna ke grayscale",
},
"pdfa-convert": {
name: "Konverter PDF/A",
description: "Konversi ke format arsip PDF/A-2",
},
"crop-pdf": {
name: "Potong PDF",
description: "Potong semua halaman dengan margin seragam",
},
"nup-pdf": {
name: "Halaman Per Lembar (N-up)",
description: "Tata beberapa halaman per lembar",
},
"booklet-pdf": {
name: "Buklet PDF",
description: "Tata halaman untuk dilipat menjadi buklet",
},
"watermark-pdf": {
name: "Watermark PDF",
description: "Tambahkan watermark teks di setiap halaman",
},
"pdf-page-numbers": {
name: "Nomor Halaman PDF",
description: "Tambahkan nomor halaman di setiap halaman",
},
"flatten-pdf": {
name: "Ratakan PDF",
description: "Gabungkan formulir dan anotasi ke dalam konten halaman",
},
"redact-pdf": {
name: "Redaksi PDF",
description: "Hapus kemunculan teks secara permanen (redaksi terverifikasi)",
},
"pdf-to-text": {
name: "PDF ke Teks",
description: "Ekstrak teks biasa dari PDF",
},
"pdf-to-word": {
name: "PDF ke Word",
description: "Terbaik untuk PDF berbasis teks; halaman pindaian memerlukan OCR",
},
"pdf-metadata": {
name: "Metadata PDF",
description: "Baca dan tulis metadata dokumen PDF",
},
"powerpoint-to-pdf": {
name: "PowerPoint ke PDF",
description: "Konversi presentasi ke PDF",
},
"html-to-pdf": {
name: "HTML ke PDF",
description: "Konversi file HTML ke PDF. Sumber daya jarak jauh dinonaktifkan demi privasi.",
},
"markdown-to-docx": {
name: "Markdown ke Word",
description: "Konversi file Markdown menjadi dokumen Word (DOCX)",
},
"markdown-to-html": {
name: "Markdown ke HTML",
description:
"Konversi file Markdown menjadi halaman HTML mandiri. Gambar jarak jauh di sumber dibiarkan apa adanya di output.",
},
"markdown-to-pdf": {
name: "Markdown ke PDF",
description:
"Konversi file Markdown menjadi PDF bergaya. Sumber daya jarak jauh dinonaktifkan demi privasi.",
},
"epub-convert": {
name: "Konversi dari EPUB",
description:
"Konversi EPUB ke PDF, DOCX, HTML, atau Markdown. Sumber daya jarak jauh di dalam buku tidak diambil.",
},
"to-epub": {
name: "Konversi ke EPUB",
description: "Konversi file Word, Markdown, HTML, atau teks biasa ke EPUB",
},
"csv-excel": {
name: "CSV ke Excel",
description: "Konversi antara CSV dan Excel (XLSX), dua arah",
},
"csv-json": {
name: "CSV ke JSON",
description: "Konversi antara CSV dan JSON, dua arah",
},
"json-xml": {
name: "JSON ke XML",
description: "Konversi antara JSON dan XML, dua arah",
},
"split-csv": {
name: "Pisah CSV",
description: "Pisah CSV menjadi file lebih kecil berdasarkan jumlah baris",
},
"merge-csvs": {
name: "Gabung CSV",
description: "Gabungkan beberapa file CSV atau TSV dengan kolom yang cocok menjadi satu",
},
"yaml-json": {
name: "Konversi YAML / JSON",
description: "Konversi antara YAML dan JSON, dua arah",
},
"xml-to-csv": {
name: "XML ke CSV",
description: "Ekstrak elemen berulang dari XML ke tabel CSV",
},
"create-zip": {
name: "Buat ZIP",
description: "Gabungkan beberapa file menjadi satu arsip ZIP",
},
"extract-zip": {
name: "Ekstrak ZIP",
description:
"Ekstrak file dari arsip ZIP dengan aman dilengkapi proteksi bom. Arsip satu file mengembalikan file secara langsung.",
},
pipeline: {
name: "Pembuat Pipeline",
description: "Rangkai beberapa alat menjadi alur kerja",
},
processing: { canceled: "Pemrosesan dibatalkan" },
mediaPlayer: {
unsupported: "Browser Anda tidak mendukung format media ini.",
},
documentView: {
loadFailed: "Gagal memuat dokumen.",
previousPage: "Halaman sebelumnya",
nextPage: "Halaman berikutnya",
inputNotPreviewable: "Pratinjau tidak tersedia untuk tipe file ini",
},
},
toolSettings: {
compress: {
compressionMode: "Mode Kompresi",
targetSize: "Ukuran Target",
quality: "Kualitas",
smallestFile: "File terkecil",
bestQuality: "Kualitas terbaik",
submit: "Kompres",
submitBatch: "Kompres ({count} file)",
progressLabel: "Mengompresi",
original: "Asli: {size} KB",
processed: "Diproses: {size} KB",
saved: "Hemat: {percent}%",
},
resize: {
customSize: "Ukuran Kustom",
scale: "Skala",
presets: "Preset",
contentAware: "Sadar Konten",
aspectRatio: "Rasio Aspek",
ratioFree: "Bebas",
ratioOriginal: "Asli",
widthPx: "Lebar (px)",
heightPx: "Tinggi (px)",
fitMode: "Mode Pas",
cropToFit: "Potong agar pas",
fitInside: "Pas di dalam",
stretch: "Regangkan",
limitToOriginalSize: "Batasi ke ukuran asli",
limitToOriginalSizeHint:
"Jika gambar Anda sudah lebih kecil dari target, biarkan apa adanya tanpa memperbesar",
scalePercent: "Skala (%)",
resizeToSquare: "Ubah ke persegi",
protectFaces: "Lindungi wajah",
smoothing: "Penghalusan",
edgeSensitivity: "Sensitivitas tepi",
submit: "Ubah Ukuran",
submitBatch: "Ubah Ukuran ({count} file)",
progressLabel: "Mengubah ukuran",
},
crop: {
aspectRatio: "Rasio Aspek",
custom: "Kustom",
positionAndSize: "Posisi & Ukuran",
ruleOfThirds: "Aturan Sepertiga",
leftOffsetPx: "Offset kiri (px)",
topOffsetPx: "Offset atas (px)",
submit: "Potong",
submitBatch: "Potong ({count} file)",
progressLabel: "Memotong",
},
rotate: {
rotate: "Putar",
angle: "Sudut",
straighten: "Luruskan",
flip: "Balik",
horizontal: "Horizontal",
vertical: "Vertikal",
resetAllChanges: "Reset semua perubahan",
submit: "Terapkan",
submitBatch: "Terapkan ({count} file)",
progressLabel: "Menerapkan",
},
convert: {
targetFormat: "Format Tujuan",
sourceFormat: "Format Sumber",
quality: "Kualitas",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"optimize-for-web": {
outputFormat: "Format Output",
quality: "Kualitas",
smallestFile: "File terkecil",
bestQuality: "Kualitas terbaik",
maxDimensions: "Dimensi Maksimum",
maxWidth: "Lebar Maksimum",
maxHeight: "Tinggi Maksimum",
stripMetadata: "Hapus Metadata",
sizeComparison: "Perbandingan Ukuran",
optimized: "Dioptimasi:",
smaller: "{percent}% lebih kecil",
larger: "{percent}% lebih besar",
submit: "Proses & Unduh",
submitBatch: "Proses & Unduh ({count} file)",
progressLabel: "Mengoptimasi",
},
"strip-metadata": {
currentMetadata: "Metadata Saat Ini",
readingMetadata: "Membaca metadata...",
noMetadataFound: "Tidak ada metadata di gambar ini.",
removeAllMetadata: "Hapus Semua Metadata",
selectSpecific: "Atau pilih metadata tertentu:",
stripExif: "Hapus EXIF (info kamera, tanggal, eksposur)",
stripGps: "Hapus GPS (data lokasi)",
stripIcc: "Hapus ICC (profil warna)",
stripXmp: "Hapus XMP (metadata yang dapat diperluas)",
locationFound: "lokasi ditemukan",
viewOnMap: "Lihat di peta",
locationWarning:
"Gambar ini berisi lokasi presisi Anda. Pertimbangkan untuk menghapus data GPS sebelum membagikan.",
metadataSections: "{count} bagian metadata ditemukan",
metadataSectionsPlural: "{count} bagian metadata ditemukan",
metadataRemoved: "Metadata dihapus: {size} KB",
submit: "Hapus Metadata",
progressLabel: "Menghapus metadata",
},
"edit-metadata": {
readingMetadata: "Membaca metadata...",
couldNotReadMetadata: "Tidak dapat membaca metadata - kolom akan dimulai kosong.",
basicInfo: "Info Dasar",
description: "Deskripsi",
artist: "Seniman",
copyright: "Hak Cipta",
software: "Perangkat Lunak",
iptc: "IPTC",
title: "Judul",
headline: "Judul",
city: "Kota",
stateProvince: "Provinsi",
country: "Negara",
dateAndTime: "Tanggal & Waktu",
editDates: "Edit Tanggal",
shiftAllDates: "Geser Semua Tanggal",
dateModified: "Tanggal Diubah",
dateTaken: "Tanggal Diambil",
shiftHint: "Geser semua kolom tanggal dengan offset (berguna untuk koreksi zona waktu)",
direction: "Arah",
forward: "+ Maju",
backward: "- Mundur",
hoursMinutes: "Jam:Menit",
locationGps: "Lokasi (GPS)",
locationDataFound: "Data lokasi ditemukan",
noGpsData: "Tidak ada data GPS. Tambahkan koordinat di bawah.",
latitude: "Lintang",
longitude: "Bujur",
altitudeMeters: "Ketinggian (meter)",
removeAllGpsData: "Hapus semua data GPS",
keywords: "Kata Kunci",
addKeywordPlaceholder: "Tambahkan kata kunci dan tekan Enter",
addToExisting: "Tambahkan ke yang ada",
replaceAll: "Ganti semua",
allMetadata: "Semua Metadata",
templates: "Template",
templateNamePlaceholder: "Nama template",
uploadPrompt: "Unggah gambar untuk mengedit metadatanya.",
changes: "{count} perubahan:",
modified: "{count} diubah",
removed: "{count} dihapus",
gpsCleared: "GPS dihapus",
gpsAdded: "GPS ditambahkan",
datesShifted: "tanggal digeser",
submit: "Terapkan Metadata",
progressLabel: "Menulis metadata",
},
"bulk-rename": {
pattern: "Pola",
patternHint: "Variabel: {{index}}, {{padded}}, {{original}}",
startIndex: "Indeks Awal",
preview: "Pratinjau",
andMore: "... dan {count} lainnya",
renaming: "Mengganti nama...",
submit: "Ganti Nama {count} File",
zipDownloaded: "ZIP berhasil diunduh",
},
"image-to-pdf": {
imageCount: "{count} gambar akan dikonversi menjadi {mode}",
imageCountPlural: "{count} gambar akan dikonversi menjadi {mode}",
singlePdfMode: "satu PDF, satu gambar per halaman",
separatePdfMode: "PDF terpisah, satu per gambar",
combineAllImages: "Gabungkan semua gambar ke satu PDF",
pageSize: "Ukuran Halaman",
orientation: "Orientasi",
portrait: "Potret",
landscape: "Lanskap",
margin: "Margin",
targetSizeLabel: "Ukuran file target (opsional)",
targetSizePlaceholder: "mis. 2",
targetSizeHint: "Kosongkan untuk kualitas maksimum",
targetSizeMet: "Target tercapai",
targetSizeNotMet: "Tidak dapat mencapai target. File dikompres ke kualitas minimum.",
targetSizeTooSmall: "Target minimal 50KB",
jpegQualityLabel: "Kualitas JPEG yang digunakan",
noImage: "Tidak ada gambar",
submitCollate: "Buat PDF ({count} halaman)",
submitSeparate: "Buat {count} PDF",
downloadPdf: "Unduh PDF",
downloadZip: "Unduh ZIP",
progressLabel: "Membuat PDF",
uploadingImages: "Mengunggah gambar...",
processingPages: "Memproses {count} halaman...",
},
"pdf-to-image": {
dropPdf: "Seret PDF ke sini atau klik untuk memilih",
readingPdf: "Membaca PDF...",
pageCount: "{count} halaman",
pageCountPlural: "{count} halaman",
outputFormat: "Format Output",
quality: "Kualitas",
resolutionDpi: "Resolusi (DPI)",
dpiScreen: "Layar",
dpiStandard: "Standar",
dpiPrint: "Cetak",
dpiHighQuality: "Kualitas Tinggi",
colorMode: "Mode Warna",
colorModeColor: "Warna",
colorModeGrayscale: "Skala Abu-abu",
colorModeBw: "Hitam Putih",
pages: "Halaman",
allPages: "Semua halaman",
pagesHint: "mis. 1-3, 5, 8-10 (dokumen memiliki {count} halaman)",
converting: "Mengonversi...",
submit: "Konversi {count} halaman",
submitPlural: "Konversi {count} halaman",
downloadAllZip: "Unduh Semua (ZIP)",
},
favicon: {
uploadHint:
"Unggah gambar persegi (disarankan 512x512 atau lebih besar) untuk membuat semua ukuran Favicon dan ikon aplikasi.",
multipleHint: "Masing-masing dari {count} gambar mendapat folder sendiri di ZIP.",
generatedSizes: "Ukuran yang Dibuat (per gambar)",
plusManifest: "+ manifest.json + cuplikan HTML",
submit: "Buat Favicon ({count} gambar)",
submitPlural: "Buat Favicon ({count} gambar)",
downloadZip: "Unduh Favicon ZIP",
progressLabel: "Membuat Favicon",
},
"adjust-colors": {
light: "Cahaya",
brightness: "Kecerahan",
contrast: "Kontras",
exposure: "Eksposur",
color: "Warna",
saturation: "Saturasi",
temperature: "Suhu Warna",
temperatureHint: "dingin / hangat",
tint: "Semburat",
tintHint: "hijau / magenta",
hue: "Rona",
detail: "Detail",
sharpness: "Ketajaman",
effects: "Efek",
none: "tidak ada",
grayscale: "skala abu-abu",
sepia: "sepia",
invert: "balik",
colorChannels: "Saluran Warna",
channelModified: "diubah",
red: "Merah",
green: "Hijau",
blue: "Biru",
resetAll: "Reset Semua",
submit: "Terapkan",
submitBatch: "Terapkan ({count} file)",
progressLabel: "Menyesuaikan warna",
},
sharpening: {
method: "Metode",
adaptive: "Adaptif",
unsharpMask: "Unsharp Mask",
highPass: "High-Pass",
presets: "Preset",
textureAmount: "Jumlah Tekstur",
amount: "Jumlah",
strength: "Kekuatan",
noiseReduction: "Pengurangan Noise",
off: "mati",
lightDenoise: "ringan",
mediumDenoise: "sedang",
strongDenoise: "kuat",
advancedControls: "Kontrol Lanjutan",
radius: "Radius",
flatProtection: "Proteksi Area Datar",
detailThreshold: "Ambang Detail",
haloLimitLight: "Batas Halo (Terang)",
haloLimitDark: "Batas Halo (Gelap)",
threshold: "Ambang",
kernelSize: "Ukuran Kernel",
submit: "Pertajam",
submitBatch: "Pertajam ({count} file)",
progressLabel: "Mempertajam",
},
"replace-color": {
sourceColor: "Warna Sumber (yang diganti)",
targetColor: "Warna Target (pengganti)",
makeTransparent: "Jadikan transparan",
tolerance: "Toleransi",
exactMatch: "Cocok persis",
wideRange: "Rentang lebar",
submit: "Ganti Warna",
submitBatch: "Ganti Warna ({count} file)",
progressLabel: "Mengganti warna",
},
"color-blindness": {
simulationType: "Jenis Simulasi",
redGreen: "Merah-Hijau",
blueYellow: "Biru-Kuning",
monochromatic: "Monokromatik",
submit: "Simulasi",
submitBatch: "Simulasi ({count} file)",
progressLabel: "Mensimulasikan buta warna",
},
"remove-background": {
subject: "Subjek",
people: "Orang",
products: "Produk",
general: "Umum",
passportIdPhoto: "Foto paspor / KTP",
quality: "Kualitas",
fast: "Cepat",
hd: "HD",
max: "Maksimum",
ultra: "Ultra",
background: "Latar Belakang",
transparent: "Transparan",
bgColor: "Warna",
gradient: "Gradien",
image: "Gambar",
gradientDirection: "Arah",
chooseBackgroundImage: "Pilih gambar latar",
effectsSection: "Efek",
effectsActive: "aktif",
blurBackground: "Blur Latar Belakang",
intensity: "Intensitas",
addShadow: "Tambah Bayangan",
opacity: "Opasitas",
outputFormat: "Format Output",
edgeSmoothing: "Penghalusan Tepi",
edgeSmoothingOff: "Mati",
edgeSmoothingLight: "Ringan",
edgeSmoothingMedium: "Sedang",
edgeSmoothingStrong: "Kuat",
colorDecontamination: "Dekontaminasi Warna",
rendering: "Merender...",
submit: "Hapus Latar Belakang",
submitBatch: "Hapus Latar Belakang ({count} file)",
progressLabel: "Menghapus latar belakang",
},
"remove-gif-background": {
quality: "Kualitas",
qualityFast: "Cepat",
qualityBalanced: "Seimbang",
qualityBest: "Terbaik",
qualityNote:
"Setiap frame diproses melalui model, jadi kualitas lebih tinggi jauh lebih lambat pada klip panjang.",
outputFormat: "Format Output",
formatWebp: "WebP",
formatApng: "APNG",
formatGif: "GIF",
formatWebpHint: "WebP dan APNG mempertahankan transparansi penuh yang halus.",
gifCaveat: "GIF hanya mendukung transparansi 1-bit, jadi tepinya terlihat kasar.",
background: "Latar Belakang",
bgTransparent: "Transparan",
bgColor: "Warna",
bgGradient: "Gradien",
bgBlur: "Blur",
bgImage: "Gambar",
gradientStart: "Mulai",
gradientEnd: "Akhir",
gradientAngle: "Sudut ({deg}°)",
blurStrength: "Kekuatan blur ({value})",
shadow: "Tambah bayangan",
shadowStrength: "Opasitas bayangan ({value})",
advanced: "Lanjutan",
edgeRefine: "Perhalus tepi (level {level})",
edgeRefineOff: "Perhalus tepi: mati",
decontaminate: "Hapus rembesan warna",
uploadBg: "Unggah gambar latar",
frameNote: "Memproses setiap frame, jadi animasi panjang lambat. GPU disarankan.",
submit: "Hapus Latar Belakang",
submitBatch: "Hapus Latar Belakang ({count} file)",
progressLabel: "Menghapus latar belakang dari frame",
download: "Unduh",
},
upscale: {
scaleFactor: "Faktor Skala",
quality: "Kualitas",
enhanceFaces: "Tingkatkan wajah",
noiseReduction: "Pengurangan Noise",
noiseReductionHint:
"Menghaluskan grain dan noise. Nilai lebih tinggi menghapus lebih banyak noise tetapi dapat mengaburkan detail.",
outputFormat: "Format Output",
submit: "Perbesar {scale}x",
submitBatch: "Perbesar {scale}x ({count} file)",
progressLabel: "Memperbesar gambar",
progressLabelBatch: "Memperbesar {count} gambar",
},
"erase-object": {
brushMode: "Kuas",
lassoMode: "Laso",
brushSize: "Ukuran Kuas",
fine: "Halus",
wide: "Lebar",
undo: "Urungkan",
clear: "Hapus",
outputFormat: "Format Output",
quality: "Kualitas",
paintHint: "Cat di atas objek yang ingin Anda hapus. Gunakan Ctrl+Z untuk undo.",
lassoHint:
"Gambar lingkaran di sekeliling objek yang ingin Anda hapus. Gunakan Ctrl+Z untuk undo.",
submit: "Hapus Objek",
submitBatch: "Hapus Semua ({count})",
progressLabel: "Menghapus objek",
},
ocr: {
quality: "Kualitas",
enhanceBeforeScanning: "Tingkatkan sebelum pemindaian",
enhanceHint:
"Memperbaiki kontras lokal sebelum pengenalan. Cepat menerapkannya langsung; Seimbang dan Terbaik hanya mempertahankannya jika skor terkalibrasi memperbaiki hasil.",
fastKoreanUnsupported:
"OCR Cepat tidak mendukung bahasa Korea. Instal paket OCR Akurat lalu pilih Seimbang atau Terbaik.",
language: "Bahasa",
autoDetect: "Deteksi otomatis",
extractedText: "Teks yang Diekstrak",
noTextDetected: "Tidak ada teks terdeteksi di gambar ini",
characters: "{count} karakter",
submit: "Ekstrak Teks",
submitBatch: "Ekstrak Teks ({count} file)",
progressLabel: "Mengekstrak teks",
},
"ocr-pdf": {
quality: "Kualitas",
language: "Bahasa",
autoDetect: "Deteksi otomatis",
pages: "Halaman",
pagesPlaceholder: "semua, 1-3, 5",
pagesHint: "Masukkan nomor halaman atau rentang (mis. 1-3, 5, 8-10). Maks 50 halaman.",
submit: "Ekstrak Teks",
submitBatch: "Ekstrak Teks ({count} file)",
progressLabel: "Mengekstrak teks dari PDF",
},
"blur-faces": {
blurRadius: "Radius Blur",
blurLight: "Ringan",
blurHeavy: "Berat",
detectionSensitivity: "Sensitivitas Deteksi",
moreFaces: "Lebih banyak wajah",
fewerFaces: "Lebih sedikit wajah",
submit: "Blur Wajah",
progressLabel: "Memblur wajah",
},
"enhance-faces": {
quality: "Kualitas",
enhancementStrength: "Kekuatan Peningkatan",
onlyCenterFace: "Hanya wajah tengah",
detectionSensitivity: "Sensitivitas Deteksi",
submit: "Tingkatkan Wajah",
submitBatch: "Tingkatkan Wajah ({count} file)",
progressLabel: "Meningkatkan wajah",
},
"smart-crop": {
subjectFocus: "Fokus Subjek",
faceFocus: "Fokus Wajah",
autoTrim: "Trim Otomatis",
customSize: "Ukuran Kustom",
socialPresets: "Preset Sosial",
detectionStrategy: "Strategi Deteksi",
detectionStrategyHint:
"Attention menemukan area paling menonjol secara visual. Entropy menemukan area dengan detail dan informasi terbanyak.",
attention: "Atensi",
entropy: "Entropi",
padding: "Padding",
paddingHint: "Ruang ekstra di sekitar area fokus",
outputQuality: "Kualitas Output",
outputQualityHint: "Untuk output JPEG dan WebP. PNG selalu lossless.",
subjectDescription:
"Mendeteksi area paling menarik menggunakan analisis saliency dan memotong ke ukuran target Anda.",
framing: "Pembingkaian",
facePadding: "Padding Wajah",
facePaddingHint: "Ruang ekstra di sekitar wajah yang terdeteksi",
fewerFalsePositives: "Lebih sedikit false positive",
faceDescription:
"Menggunakan deteksi wajah AI untuk menjaga wajah tetap terbingkai dengan benar. Beralih ke Fokus Subjek jika tidak ada wajah terdeteksi.",
trimTolerance: "Toleransi",
trimDescription:
"Seberapa berbeda piksel border dari warna tepi dan masih dipotong. Lebih tinggi = lebih agresif.",
padToSquare: "Padding ke persegi",
targetSizePx: "Ukuran target (px)",
padColor: "Warna padding",
trimHint:
'Hapus border warna seragam di sekitar subjek. Aktifkan "Padding ke persegi" untuk gambar siap e-commerce.',
submitSubject: "Potong Cerdas",
submitFace: "Potong Wajah",
submitTrim: "Trim Border",
},
imageEnhancement: {
enhancementMode: "Mode Peningkatan",
auto: "Otomatis",
portrait: "Potret",
landscape: "Lanskap",
lowLight: "Cahaya Redup",
food: "Makanan",
document: "Dokumen",
intensity: "Intensitas",
deepEnhance: "Peningkatan Mendalam (AI)",
deepEnhanceDescription: "Menghapus noise dan artefak menggunakan AI",
deepEnhanceRequires: "Memerlukan bundel Perbesar & Tingkatkan",
analyzingImage: "Menganalisis gambar...",
detectedIssues: "Masalah Terdeteksi",
imageLooksGood: "Gambar terlihat bagus. Atur halus dengan slider intensitas.",
issueUnderexposed: "Eksposur Rendah",
issueOverexposed: "Terlalu Terang",
issueLowContrast: "Kontras Datar",
issueColorCast: "Warna Pudar",
issueDesaturated: "Desaturasi",
issueSoftFocus: "Fokus Lembut",
issueNoisy: "Banyak Noise",
submit: "Tingkatkan",
submitDeep: "Peningkatan Mendalam",
submitBatch: "Tingkatkan ({count} file)",
submitDeepBatch: "Deep Enhance ({count} file)",
progressLabel: "Meningkatkan gambar",
progressLabelBatch: "Meningkatkan {count} gambar",
},
"noise-removal": {
denoisingTier: "Tingkat Denoising",
quick: "Cepat",
balanced: "Seimbang",
quality: "Kualitas",
maximum: "Maksimum",
quickDesc: "Cepat, ringan",
balancedDesc: "Kualitas baik, kecepatan sedang",
qualityDesc: "Didukung AI, lambat",
maximumDesc: "Model AI terbaik, paling lambat",
strength: "Kekuatan",
subtle: "Halus",
aggressive: "Agresif",
detailPreservation: "Preservasi Detail",
smooth: "Halus",
sharp: "Tajam",
colorNoise: "Noise Warna",
heavy: "Berat",
outputFormat: "Format Output",
gifAiWarning:
"Denoising AI pada file GIF hanya memproses frame pertama. Untuk GIF animasi, gunakan tingkat Cepat atau Seimbang.",
submit: "Hapus Noise",
submitBatch: "Hapus Noise ({count} file)",
progressLabel: "Menghapus noise",
progressLabelBatch: "Menghapus noise dari {count} gambar",
},
"red-eye-removal": {
sensitivity: "Sensitivitas",
strict: "Ketat",
aggressive: "Agresif",
correctionStrength: "Kekuatan Koreksi",
subtle: "Halus",
dark: "Gelap",
outputFormat: "Format Output",
quality: "Kualitas",
submit: "Perbaiki Mata Merah",
submitBatch: "Perbaiki Mata Merah ({count} file)",
progressLabel: "Memperbaiki mata merah",
progressLabelBatch: "Memperbaiki mata merah di {count} gambar",
},
"restore-photo": {
scratchRemoval: "Penghapusan Goresan",
scratchRemovalDesc: "Deteksi dan perbaiki goresan, robekan, noda",
faceEnhancement: "Peningkatan Wajah",
faceEnhancementDesc: "Pulihkan wajah yang rusak dengan CodeFormer AI",
faceFidelity: "Fidelitas Wajah",
enhanced: "Ditingkatkan",
faithful: "Setia",
noiseReduction: "Pengurangan Noise",
noiseReductionDesc: "Hapus grain dan noise dari foto lama",
denoiseStrength: "Kekuatan Denoise",
autoColorize: "Pewarnaan Otomatis",
autoColorizeDesc: "Tambahkan warna ke foto hitam putih menggunakan DDColor AI",
colorizeStrength: "Kekuatan Pewarnaan",
vivid: "Cerah",
submit: "Restorasi Foto",
submitBatch: "Restorasi Foto ({count})",
progressLabel: "Merestorasi foto",
progressLabelBatch: "Merestorasi {count} foto",
},
"content-aware-resize": {
widthPx: "Lebar (px)",
heightPx: "Tinggi (px)",
resizeToSquare: "Ubah ke persegi",
protectFaces: "Lindungi wajah",
protectFacesHint:
"Deteksi dan lindungi area wajah dari penghapusan seam menggunakan deteksi wajah",
smoothing: "Penghalusan",
edgeSensitivity: "Sensitivitas tepi",
submit: "Ubah Ukuran",
submitBatch: "Ubah Ukuran ({count} file)",
progressLabel: "Mengubah ukuran content-aware",
},
"ai-canvas-expand": {
quality: "Kualitas",
fast: "Cepat",
balanced: "Seimbang",
highQuality: "Kualitas Tinggi",
fastDesc: "Pratinjau cepat, lebih sedikit pass AI",
balancedDesc: "Kualitas baik, kecepatan sedang",
highQualityDesc: "Hasil terbaik, lebih lambat",
extendToAspectRatio: "Perluas ke rasio aspek",
extendByPixels: "Perluas sebesar (piksel)",
top: "Atas",
right: "Kanan",
bottom: "Bawah",
left: "Kiri",
newSize: "Ukuran baru: {width} x {height}",
submit: "Perluas Kanvas",
submitBatch: "Perluas ({count} file)",
progressLabel: "Memperluas kanvas",
},
colorize: {
aiModel: "Model AI",
fast: "Cepat",
fastDesc: "Hasil cepat",
balanced: "Seimbang",
balancedDesc: "Terbaik yang tersedia",
best: "Terbaik",
bestDesc: "Kualitas tertinggi",
colorIntensity: "Intensitas Warna",
grayscaleLabel: "Skala abu-abu",
subtleLabel: "Halus",
naturalLabel: "Alami",
vividLabel: "Cerah",
intensityHint: "Nilai lebih rendah menghasilkan warna yang lebih redup, bergaya vintage.",
strength: "Kekuatan Pewarnaan",
submit: "Warnai",
submitBatch: "Warnai ({count} file)",
progressLabel: "Mewarnai",
progressLabelBatch: "Mewarnai {count} gambar",
},
"passport-photo": {
country: "Negara",
searchCountries: "Cari negara...",
noCountriesFound: "Negara tidak ditemukan",
customDimensions: "Dimensi Kustom",
documentType: "Jenis Dokumen",
dimensionsMm: "Dimensi (mm)",
dpi: "DPI",
pixelsPerInch: "piksel per inci",
backgroundColor: "Warna Latar",
maxFileSize: "Ukuran File Maks",
noLimit: "Tanpa batas",
customKb: "Kustom KB...",
uploadPortrait: "Unggah foto potret",
uploadHint: "Seret atau unggah gambar di panel kiri untuk pratinjau foto paspor Anda",
analyzingPhoto: "Menganalisis foto",
detectingLandmarks: "Mendeteksi landmark wajah dan menghapus latar belakang...",
generatePassportPhoto: "Buat Foto Paspor",
generating: "Membuat...",
downloadPhoto: "Unduh Foto",
faceCentered: "Wajah di tengah",
headLevel: "Kepala lurus",
lookingStraight: "Melihat ke depan",
faceSize: "Ukuran wajah",
whatYouSee: "Apa yang Anda lihat adalah apa yang Anda unduh",
dragToAdjust: "Seret untuk menyesuaikan",
scrollToZoom: "Gulir untuk zoom",
photoGenerated: "Foto telah dibuat. Unduh dari panel kiri.",
},
"transcribe-audio": {
language: "Bahasa",
autoDetect: "Deteksi otomatis",
outputFormat: "Format Output",
plainText: "Teks Biasa",
submit: "Transkripsi",
submitBatch: "Transkripsi ({count} file)",
progressLabel: "Mentranskripsi audio",
},
"auto-subtitles": {
language: "Bahasa",
autoDetect: "Deteksi otomatis",
format: "Format Subtitle",
submit: "Buat Subtitle",
submitBatch: "Buat Subtitle ({count} file)",
progressLabel: "Membuat subtitle",
},
"transparency-fixer": {
description:
"Unggah PNG dengan latar transparan palsu dan kami akan memperbaikinya dalam satu klik.",
removeWatermark: "Hapus Watermark",
removeWatermarkHelp: "Deteksi dan hapus watermark semi-transparan",
requiresEraser: "Memerlukan bundel Penghapus Objek",
advanced: "Lanjutan",
defringe: "Defringe",
outputFormat: "Format Output",
submit: "Perbaiki Transparansi",
submitBatch: "Perbaiki Transparansi ({count} file)",
progressLabel: "Memperbaiki transparansi",
},
"background-replace": {
color: "Warna Latar Belakang",
submit: "Ganti Latar Belakang",
submitBatch: "Ganti Latar Belakang ({count} file)",
progressLabel: "Mengganti latar belakang",
},
"blur-background": {
intensity: "Intensitas Keburaman",
submit: "Buramkan Latar Belakang",
submitBatch: "Buramkan Latar Belakang ({count} file)",
progressLabel: "Memburamkan latar belakang",
},
"watermark-text": {
watermarkText: "Teks Watermark",
fontSize: "Ukuran Font",
color: "Warna",
opacity: "Opasitas",
position: "Posisi",
rotation: "Rotasi",
center: "Tengah",
topLeft: "Kiri Atas",
topRight: "Kanan Atas",
bottomLeft: "Kiri Bawah",
bottomRight: "Kanan Bawah",
tiled: "Ubin",
submit: "Tambah Watermark",
submitBatch: "Tambah Watermark ({count} file)",
progressLabel: "Menambahkan watermark",
},
"watermark-image": {
uploadWatermark: "Unggah Gambar Watermark",
position: "Posisi",
opacity: "Opasitas",
scale: "Skala",
submit: "Terapkan Watermark",
submitBatch: "Terapkan Watermark ({count} file)",
},
"text-overlay": {
text: "Teks",
fontSize: "Ukuran Font",
color: "Warna",
position: "Posisi",
top: "Atas",
center: "Tengah",
bottom: "Bawah",
backgroundBox: "Kotak Latar",
backgroundColor: "Warna Latar",
shadow: "Bayangan",
submit: "Tambah Teks",
submitBatch: "Tambah Teks ({count} file)",
progressLabel: "Menambahkan overlay teks",
download: "Unduh",
defaultText: "Teks Anda di Sini",
},
compose: {
uploadOverlay: "Unggah Gambar Overlay",
xPosition: "Posisi X",
yPosition: "Posisi Y",
opacity: "Opasitas",
blendMode: "Mode Blend",
submit: "Komposisi",
},
"meme-generator": {
selectTemplate: "Pilih template dari galeri atau unggah gambar Anda sendiri untuk memulai.",
chooseLayout: "Pilih tata letak teks untuk gambar kustom Anda.",
textContent: "Konten Teks",
textStyle: "Gaya Teks",
font: "Font",
fontSize: "Ukuran Font",
textColor: "Warna Teks",
strokeColor: "Warna Garis Tepi",
allCaps: "HURUF BESAR SEMUA",
generate: "Buat Meme",
generating: "Membuat...",
downloadMeme: "Unduh Meme",
backToGallery: "Kembali ke Galeri",
},
info: {
loadingInfo: "Memuat info...",
filename: "Nama File",
fileSize: "Ukuran File",
dimensions: "Dimensi",
format: "Format",
channels: "Saluran",
colorSpace: "Ruang Warna",
density: "Kepadatan",
bitDepth: "Kedalaman Bit",
progressive: "Progresif",
pages: "Halaman",
hasAlpha: "Memiliki Alpha",
hasProfile: "Memiliki Profil",
hasExif: "Memiliki EXIF",
hasIcc: "Memiliki ICC",
hasXmp: "Memiliki XMP",
readInfo: "Baca Info",
reading: "Membaca...",
channelStats: "Statistik Channel",
yes: "Ya",
no: "Tidak",
na: "N/A",
failedToRead: "Gagal membaca info",
},
compare: {
uploadSecondImage: "Unggah Gambar Kedua",
similarity: "Kemiripan: {percent}%",
submit: "Bandingkan",
downloadDiff: "Unduh Diff",
},
"find-duplicates": {
preset: "Preset",
exact: "Persis",
similar: "Mirip",
loose: "Longgar",
exactDesc: "Salinan identik piksel, gambar yang sama dalam format berbeda.",
similarDesc: "Salinan yang diubah ukurannya, dikompres ulang, atau diedit ringan.",
looseDesc: "Gambar terkait secara visual, potongan ringan, eksposur berbeda.",
threshold: "Ambang",
submit: "Pindai Duplikat",
scanning: "Memindai...",
},
"color-palette": {
submit: "Ekstrak Palet",
extracting: "Mengekstrak...",
dominantColors: "Warna Dominan",
clickToCopy: "Klik untuk menyalin",
},
"qr-generate": {
contentType: "Jenis Konten",
url: "URL",
text: "Teks",
wifi: "WiFi",
vcard: "vCard",
email: "Email",
phone: "Telepon",
sms: "SMS",
styling: "Gaya",
dotStyle: "Gaya Titik",
cornerSquareStyle: "Gaya Kotak Sudut",
cornerDotStyle: "Gaya Titik Sudut",
foregroundColor: "Warna Depan",
bgColor: "Warna Latar",
logo: "Logo",
downloadFormat: "Format Unduhan",
submit: "Buat Kode QR",
download: "Unduh Kode QR",
},
"html-to-image": {
modeUrl: "URL",
modeHtml: "File HTML",
htmlFile: "File HTML",
url: "URL",
urlPlaceholder: "https://snapotter.com",
format: "Format Output",
quality: "Kualitas",
devicePreset: "Perangkat",
viewportWidth: "Lebar",
viewportHeight: "Tinggi",
fullPage: "Halaman Penuh",
submit: "Tangkap",
download: "Unduh Screenshot",
capturing: "Menangkap halaman web...",
errorTimeout: "Halaman terlalu lama dimuat",
errorBlocked: "URL ini tidak dapat ditangkap",
errorUnavailable: "Layanan screenshot tidak tersedia",
errorFailed: "Gagal menangkap halaman",
placeholder: "Masukkan URL dan klik Tangkap",
presets: {
desktop: "Desktop",
tablet: "Tablet",
mobile: "Ponsel",
custom: "Kustom",
},
},
"barcode-read": {
submit: "Pindai Barcode",
submitBatch: "Pindai ({count} file)",
scanning: "Memindai...",
noBarcodesFound: "Tidak ada barcode ditemukan",
barcodesFound: "{count} barcode ditemukan",
barcodesFoundPlural: "{count} barcode ditemukan",
},
collage: {
template: "Templat",
aspectRatio: "Rasio Aspek",
gap: "Jarak",
cornerRadius: "Radius Sudut",
backgroundColor: "Warna Latar",
outputFormat: "Format Output",
quality: "Kualitas",
submit: "Buat Kolase",
downloadCollage: "Unduh Kolase",
},
stitch: {
direction: "Arah",
horizontal: "Horizontal",
vertical: "Vertikal",
grid: "Kisi",
gridColumns: "Kolom Grid",
resizeMode: "Mode Ukuran",
fit: "Pas",
original: "Asli",
stretchMode: "Regangkan",
cropMode: "Potong",
alignment: "Perataan",
start: "Awal",
center: "Tengah",
end: "Akhir",
gap: "Jarak",
border: "Bingkai",
cornerRadius: "Radius Sudut",
backgroundColor: "Warna Latar",
outputFormat: "Format Output",
quality: "Kualitas",
submit: "Jahit Gambar",
},
split: {
modeGrid: "Kisi",
modeTileSize: "Ukuran Ubin",
presets: "Preset",
columns: "Kolom",
rows: "Baris",
tileWidth: "Lebar Ubin",
tileHeight: "Tinggi Ubin",
outputFormat: "Format Output",
quality: "Kualitas",
submit: "Bagi Gambar",
downloadAll: "Unduh Semua (ZIP)",
},
border: {
presets: "Preset",
borderWidth: "Lebar Border",
borderColor: "Warna Border",
padding: "Padding",
paddingColor: "Warna Padding",
cornerRadius: "Radius Sudut",
shadow: "Bayangan",
shadowBlur: "Blur Bayangan",
shadowOffsetX: "Offset Bayangan X",
shadowOffsetY: "Offset Bayangan Y",
shadowColor: "Warna Bayangan",
shadowOpacity: "Opasitas Bayangan",
submit: "Tambah Border",
submitBatch: "Tambah Border ({count} file)",
progressLabel: "Menambahkan border",
},
beautify: {
preset: "Preset",
backgroundType: "Jenis Latar",
solidColor: "Warna Solid",
linearGradient: "Gradien Linear",
radialGradient: "Gradien Radial",
customImage: "Gambar Kustom",
gradientAngle: "Sudut Gradien",
padding: "Padding",
borderRadius: "Radius Border",
shadowPreset: "Preset Bayangan",
deviceFrame: "Bingkai Perangkat",
submit: "Percantik",
submitBatch: "Percantik ({count} file)",
progressLabel: "Mempercantik screenshot",
},
"circle-crop": {
submit: "Crop Lingkaran",
submitBatch: "Crop Lingkaran ({count} file)",
progressLabel: "Meng-crop menjadi lingkaran",
},
duotone: {
shadow: "Warna Bayangan",
highlight: "Warna Sorotan",
submit: "Terapkan Duotone",
submitBatch: "Terapkan Duotone ({count} file)",
progressLabel: "Menerapkan duotone",
},
"image-pad": {
target: "Rasio Target",
color: "Warna Latar Belakang",
submit: "Padding Gambar",
submitBatch: "Padding Gambar ({count} file)",
progressLabel: "Menambah padding gambar",
},
pixelate: {
blockSize: "Ukuran Blok",
submit: "Pikselasi",
submitBatch: "Pikselasi ({count} file)",
progressLabel: "Mempikselasi",
},
vignette: {
strength: "Kekuatan",
color: "Warna Vignette",
submit: "Terapkan Vignette",
submitBatch: "Terapkan Vignette ({count} file)",
progressLabel: "Menerapkan vignette",
},
"gif-webp": {
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi animasi",
},
histogram: {
submit: "Buat Histogram",
submitBatch: "Buat Histogram ({count} file)",
progressLabel: "Membuat histogram",
},
"lqip-placeholder": {
width: "Lebar",
blur: "Buram",
submit: "Buat Placeholder",
submitBatch: "Buat Placeholder ({count} file)",
progressLabel: "Membuat placeholder",
},
"sprite-sheet": {
columns: "Kolom",
padding: "Padding",
background: "Warna Latar Belakang",
submit: "Buat Sprite Sheet",
submitBatch: "Buat Sprite Sheet",
progressLabel: "Membuat sprite sheet",
},
"svg-to-raster": {
outputFormat: "Format Output",
sizing: "Ukuran",
scaleMode: "Skala",
customMode: "Kustom",
scalePresets: "Preset Skala",
dpiPresets: "Preset DPI",
customWidth: "Lebar (px)",
customHeight: "Tinggi (px)",
background: "Latar Belakang",
bgTransparent: "Transparan",
bgColor: "Warna",
quality: "Kualitas",
submit: "Konversi SVG",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi SVG",
},
vectorize: {
preset: "Preset",
logo: "Logo",
illustration: "Ilustrasi",
photo: "Foto",
sketch: "Sketsa",
customPreset: "Kustom",
colorMode: "Mode Warna",
bw: "Hitam Putih",
colorModeColor: "Warna",
threshold: "Ambang",
colorPrecision: "Presisi Warna",
layerDifference: "Perbedaan Layer",
filterSpeckle: "Filter Bintik",
pathMode: "Mode Path",
cornerThreshold: "Ambang Sudut",
invertColors: "Balikkan warna",
submit: "Vektorisasi",
submitBatch: "Vektorisasi ({count} file)",
progressLabel: "Memvektorisasi",
},
"gif-tools": {
mode: "Mode",
resize: "Ubah Ukuran",
optimize: "Optimasi",
speed: "Kecepatan",
reverse: "Balik",
extract: "Ekstrak",
rotateMode: "Putar",
pixel: "Piksel",
percentage: "Persentase",
colors: "Warna",
dither: "Dither",
effort: "Usaha",
speedFactor: "Faktor Kecepatan",
loopControl: "Kontrol Loop",
infinite: "Tak Terbatas",
once: "Sekali",
customLoop: "Kustom",
loopCount: "Jumlah Loop",
extractSingle: "Tunggal",
extractRange: "Rentang",
extractAll: "Semua",
frameNumber: "Nomor Frame",
frameStart: "Frame Awal",
frameEnd: "Frame Akhir",
extractFormat: "Format",
submit: "Proses GIF",
submitBatch: "Proses ({count} file)",
progressLabel: "Memproses GIF",
},
"image-to-base64": {
outputFormat: "Format Output",
keepOriginal: "Pertahankan Asli",
quality: "Kualitas",
maxWidth: "Lebar Maks",
maxHeight: "Tinggi Maks",
submit: "Konversi ke Base64",
submitBatch: "Konversi ({count} file)",
copyBase64: "Salin Base64",
copyDataUri: "Salin Data URI",
copyImgTag: "Salin Tag <img>",
copyCssUrl: "Salin CSS url()",
},
"barcode-generate": {
text: "Teks",
type: "Jenis Barcode",
scale: "Skala",
includeText: "Sertakan Teks",
submit: "Buat Barcode",
download: "Unduh Barcode",
},
"chart-maker": {
kind: "Jenis Grafik",
title: "Judul",
width: "Lebar",
height: "Tinggi",
submit: "Buat Grafik",
submitBatch: "Buat Grafik ({count} file)",
progressLabel: "Membuat grafik",
},
"enhance-faces-standalone": {
model: "Model",
fast: "Cepat",
balanced: "Seimbang",
best: "Terbaik",
},
"convert-video": {
format: "Format output",
quality: "Kualitas",
high: "Tinggi",
balanced: "Seimbang",
small: "Terkecil",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"compress-video": {
quality: "Kompresi",
light: "Ringan",
balanced: "Seimbang",
strong: "Kuat",
resolution: "Resolusi",
original: "Asli",
submit: "Kompres",
submitBatch: "Kompres ({count} file)",
progressLabel: "Mengompres",
},
"trim-video": {
start: "Mulai (detik)",
end: "Akhir (detik)",
precise: "Akurat per frame (encoding ulang)",
submit: "Potong",
submitBatch: "Potong ({count} file)",
progressLabel: "Memotong",
},
"mute-video": {
submit: "Hapus audio",
submitBatch: "Hapus audio ({count} file)",
progressLabel: "Menghapus audio",
},
"video-to-gif": {
fps: "Frame per detik",
width: "Lebar (px)",
start: "Mulai (detik)",
duration: "Durasi (detik)",
submit: "Buat GIF",
submitBatch: "Buat GIF ({count} file)",
progressLabel: "Membuat GIF",
},
"resize-video": {
preset: "Preset",
width: "Lebar (px)",
height: "Tinggi (px)",
hint: "Kosongkan salah satu dimensi untuk menjaga rasio aspek",
submit: "Ubah Ukuran",
submitBatch: "Ubah Ukuran ({count} file)",
progressLabel: "Mengubah ukuran",
},
"crop-video": {
width: "Lebar (px)",
height: "Tinggi (px)",
x: "Offset X",
y: "Offset Y",
submit: "Potong",
submitBatch: "Potong ({count} file)",
progressLabel: "Meng-crop",
},
"rotate-video": {
transform: "Transformasi",
cw90: "Putar 90 searah jarum jam",
ccw90: "Putar 90 berlawanan jarum jam",
rotate180: "Putar 180",
hflip: "Balik horizontal",
vflip: "Balik vertikal",
submit: "Putar",
submitBatch: "Putar ({count} file)",
progressLabel: "Memutar",
},
"change-fps": {
fps: "Frame per detik",
submit: "Ubah FPS",
submitBatch: "Ubah FPS ({count} file)",
progressLabel: "Mengubah FPS",
},
"video-color": {
brightness: "Kecerahan",
contrast: "Kontras",
saturation: "Saturasi",
gamma: "Gamma",
submit: "Terapkan",
submitBatch: "Terapkan ({count} file)",
progressLabel: "Menyesuaikan warna",
},
"video-speed": {
factor: "Faktor kecepatan",
keepPitch: "Pertahankan pitch asli",
submit: "Ubah kecepatan",
submitBatch: "Ubah kecepatan ({count} file)",
progressLabel: "Mengubah kecepatan",
},
"reverse-video": {
hint: "Terbatas untuk klip hingga 5 menit",
submit: "Balikkan",
submitBatch: "Balikkan ({count} file)",
progressLabel: "Membalikkan",
},
"video-loudnorm": {
hint: "Menormalkan audio ke standar siaran EBU R128",
submit: "Normalkan",
submitBatch: "Normalkan ({count} file)",
progressLabel: "Menormalkan",
},
"aspect-pad": {
target: "Rasio target",
color: "Warna latar belakang",
colorHint: "Warna HEX, mis. #000000",
submit: "Padding",
submitBatch: "Padding ({count} file)",
progressLabel: "Menambah padding",
},
"blur-pad": {
target: "Rasio target",
blur: "Kekuatan blur",
submit: "Padding",
submitBatch: "Padding ({count} file)",
progressLabel: "Menambah padding",
},
"watermark-video": {
text: "Teks watermark",
position: "Posisi",
fontSize: "Ukuran font",
opacity: "Opasitas",
color: "Warna",
colorHint: "Warna HEX, mis. #ffffff",
submit: "Beri Watermark",
submitBatch: "Watermark ({count} file)",
progressLabel: "Menambah watermark",
},
"stabilize-video": {
smoothing: "Penghalusan",
hint: "Menjalankan dua tahap dan membutuhkan waktu lebih lama dari alat lainnya",
submit: "Stabilkan",
submitBatch: "Stabilkan ({count} file)",
progressLabel: "Menstabilkan",
},
"gif-to-video": {
format: "Format output",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"video-to-webp": {
fps: "Frame per detik",
width: "Lebar (px)",
quality: "Kualitas",
loop: "Ulangi animasi",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"video-to-frames": {
mode: "Mode ekstraksi",
modeAll: "Semua frame",
modeNth: "Setiap frame ke-N",
modeTimestamps: "Waktu tertentu",
n: "Ambil setiap frame ke-N",
timestamps: "Waktu (detik)",
timestampsHint: "Dipisahkan koma, mis. 0.5, 2, 4.5",
format: "Format gambar",
submit: "Ekstrak Frame",
submitBatch: "Ekstrak Frame ({count} file)",
progressLabel: "Mengekstrak frame",
},
"merge-videos": {
hint: "File digabungkan sesuai urutan unggah",
submit: "Gabungkan",
submitBatch: "Gabungkan ({count} file)",
progressLabel: "Menggabungkan",
},
"replace-audio": {
hint: "Unggah video terlebih dahulu, lalu audio",
submit: "Ganti Audio",
submitBatch: "Ganti Audio ({count} file)",
progressLabel: "Mengganti audio",
},
"burn-subtitles": {
fontSize: "Ukuran font",
hint: "Unggah video dan file subtitle (.srt atau .vtt)",
submit: "Tanamkan Subtitle",
submitBatch: "Tanamkan Subtitle ({count} file)",
progressLabel: "Menanamkan subtitle",
},
"embed-subtitles": {
language: "Kode bahasa",
languageHint: "Kode ISO 639-2 tiga huruf, mis. eng, spa, fra",
submit: "Sisipkan Subtitle",
submitBatch: "Sisipkan Subtitle ({count} file)",
progressLabel: "Menyisipkan subtitle",
},
"extract-subtitles": {
submit: "Ekstrak Subtitle",
submitBatch: "Ekstrak Subtitle ({count} file)",
progressLabel: "Mengekstrak subtitle",
},
"images-to-video": {
secondsPerImage: "Detik per gambar",
resolution: "Resolusi",
fps: "Frame per detik",
submit: "Buat Video",
submitBatch: "Buat Video ({count} file)",
progressLabel: "Membuat slideshow",
},
"video-metadata": {
hint: "Laporan metadata muncul di hasil",
submit: "Hapus Metadata",
submitBatch: "Hapus Metadata ({count} file)",
progressLabel: "Menghapus metadata",
},
"convert-audio": {
format: "Format keluaran",
bitrate: "Bitrate (kbps)",
sampleRate: "Laju sampel (Hz)",
sampleRatePreserve: "Pertahankan asli",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"trim-audio": {
start: "Mulai (detik)",
end: "Akhir (detik)",
submit: "Potong",
submitBatch: "Potong ({count} file)",
progressLabel: "Memotong",
},
"extract-audio": {
format: "Format keluaran",
submit: "Ekstrak",
submitBatch: "Ekstrak ({count} file)",
progressLabel: "Mengekstrak",
},
"volume-adjust": {
"gain-db": "Penguatan (dB)",
submit: "Atur Volume",
submitBatch: "Atur Volume ({count} file)",
progressLabel: "Mengatur volume",
},
"normalize-audio": {
hint: "Normalisasi kekerasan suara EBU R128",
submit: "Normalisasi",
submitBatch: "Normalisasi ({count} file)",
progressLabel: "Menormalisasi",
},
"fade-audio": {
"fade-in-s": "Fade in (detik)",
"fade-out-s": "Fade out (detik)",
submit: "Terapkan Fade",
submitBatch: "Terapkan Fade ({count} file)",
progressLabel: "Menerapkan fade",
},
"reverse-audio": {
submit: "Balik",
submitBatch: "Balik ({count} file)",
progressLabel: "Membalik",
},
"audio-speed": {
factor: "Faktor kecepatan",
submit: "Ubah Kecepatan",
submitBatch: "Ubah Kecepatan ({count} file)",
progressLabel: "Mengubah kecepatan",
},
"pitch-shift": {
semitones: "Semitone",
hint: "0 semitone tidak diperbolehkan",
submit: "Geser Nada",
submitBatch: "Geser Nada ({count} file)",
progressLabel: "Menggeser nada",
},
"audio-channels": {
mode: "Mode kanal",
"stereo-to-mono": "Stereo ke mono",
"mono-to-stereo": "Mono ke stereo",
swap: "Tukar kiri/kanan",
submit: "Konversi Kanal",
submitBatch: "Konversi Kanal ({count} file)",
progressLabel: "Mengonversi kanal",
},
"silence-removal": {
"threshold-db": "Ambang batas keheningan (dB)",
"min-silence-s": "Durasi keheningan minimum (detik)",
submit: "Hapus Keheningan",
submitBatch: "Hapus Keheningan ({count} file)",
progressLabel: "Menghapus keheningan",
},
"noise-reduction": {
strength: "Kekuatan",
light: "Ringan",
medium: "Sedang",
strong: "Kuat",
submit: "Kurangi Noise",
submitBatch: "Kurangi Noise ({count} file)",
progressLabel: "Mengurangi noise",
},
"merge-audio": {
format: "Format keluaran",
mp3: "MP3",
wav: "WAV",
flac: "FLAC",
m4a: "M4A",
"order-hint": "File akan digabungkan sesuai urutan unggah",
submit: "Gabung Audio",
submitBatch: "Gabung Audio ({count} file)",
progressLabel: "Menggabungkan audio",
},
"split-audio": {
mode: "Mode pisah",
time: "Berdasarkan waktu",
parts: "Bagian sama rata",
silence: "Berdasarkan keheningan",
"segment-s": "Panjang segmen (detik)",
"num-parts": "Jumlah bagian",
"threshold-db": "Ambang batas keheningan (dB)",
"min-silence-s": "Durasi keheningan minimum (detik)",
submit: "Pisah Audio",
submitBatch: "Pisah Audio ({count} file)",
progressLabel: "Memisahkan audio",
},
"ringtone-maker": {
"start-s": "Waktu mulai (detik)",
"duration-s": "Durasi (detik)",
"max-hint": "Maksimal 30 detik",
submit: "Buat Nada Dering",
submitBatch: "Buat Nada Dering ({count} file)",
progressLabel: "Membuat nada dering",
},
"waveform-image": {
width: "Lebar (px)",
height: "Tinggi (px)",
color: "Warna gelombang",
submit: "Buat Gelombang",
submitBatch: "Buat Gelombang ({count} file)",
progressLabel: "Membuat gelombang",
},
"audio-metadata": {
strip: "Hapus semua metadata",
title: "Judul",
artist: "Artis",
album: "Album",
submit: "Terapkan Metadata",
submitBatch: "Terapkan Metadata ({count} file)",
progressLabel: "Menerapkan metadata",
},
"merge-pdf": {
addFiles: "Tambahkan PDF untuk digabung",
needTwo: "Diperlukan minimal dua PDF",
orderHint: "{count} PDF akan digabung dalam urutan ini",
submit: "Gabung",
submitBatch: "Gabung ({count} file)",
progressLabel: "Menggabungkan",
},
"split-pdf": {
mode: "Mode pisah",
range: "Rentang halaman",
rangeHint: "mis. 1-3, 5, 7-z",
everyN: "Halaman per bagian",
submit: "Pisah",
submitBatch: "Pisah ({count} file)",
progressLabel: "Memisahkan",
},
"compress-pdf": {
preset: "Preset kualitas",
screen: "Layar (terkecil)",
ebook: "Ebook (seimbang)",
printer: "Printer (kualitas terbaik)",
submit: "Kompres",
submitBatch: "Kompres ({count} file)",
progressLabel: "Mengompres",
bestEffortHint:
"Maksimum sebisa mungkin. PDF berbasis gambar mendekati ukuran ini; PDF berisi teks saja mungkin tidak menyusut ke ukuran ini.",
targetReached: "Target {target} tercapai (hasil: {size}).",
targetMissed:
"Tidak dapat mencapai {target}. Ukuran terkecil yang bisa dicapai adalah {size} karena PDF ini sebagian besar berupa teks atau vektor, yang tidak dapat diperkecil oleh kompresi gambar.",
},
"rotate-pdf": {
angle: "Sudut rotasi",
range: "Rentang halaman",
rangeHint: "mis. 1-3, 5, 1-z (semua halaman)",
submit: "Putar",
submitBatch: "Putar ({count} file)",
progressLabel: "Memutar",
},
"convert-document": {
format: "Format keluaran",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"convert-presentation": {
format: "Format keluaran",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"convert-spreadsheet": {
format: "Format keluaran",
hint: "Workbook multi-sheet mengekspor sheet pertama ke CSV.",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"excel-to-pdf": {
submit: "Konversi ke PDF",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"powerpoint-to-pdf": {
submit: "Konversi ke PDF",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"word-to-pdf": {
submit: "Konversi ke PDF",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"extract-pages": {
range: "Rentang halaman",
rangeHint: "mis. 1-3, 5, 7-z",
submit: "Ekstrak",
submitBatch: "Ekstrak ({count} file)",
progressLabel: "Mengekstrak",
},
"remove-pages": {
pages: "Halaman yang dihapus",
pagesHint: "mis. 2, 4-6, z (halaman terakhir)",
submit: "Hapus",
submitBatch: "Hapus ({count} file)",
progressLabel: "Menghapus",
},
"organize-pdf": {
order: "Urutan halaman",
orderHint: "mis. 3,1,2 atau 1-z (identitas)",
submit: "Urutkan Ulang",
submitBatch: "Urutkan Ulang ({count} file)",
progressLabel: "Mengurutkan ulang",
},
"protect-pdf": {
userPassword: "Kata sandi pengguna",
ownerPassword: "Kata sandi pemilik (opsional)",
ownerPasswordHint: "Default ke kata sandi pengguna jika kosong",
submit: "Lindungi",
submitBatch: "Lindungi ({count} file)",
progressLabel: "Mengenkripsi",
},
"unlock-pdf": {
password: "Kata sandi",
submit: "Buka Kunci",
submitBatch: "Buka Kunci ({count} file)",
progressLabel: "Mendekripsi",
},
"repair-pdf": {
submit: "Perbaiki",
submitBatch: "Perbaiki ({count} file)",
progressLabel: "Memperbaiki",
},
"linearize-pdf": {
submit: "Optimasi",
submitBatch: "Optimasi ({count} file)",
progressLabel: "Melinearkan",
},
"grayscale-pdf": {
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"pdfa-convert": {
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"crop-pdf": {
margin: "Margin (poin)",
submit: "Pangkas",
submitBatch: "Pangkas ({count} file)",
progressLabel: "Memangkas",
},
"nup-pdf": {
perSheet: "Halaman per lembar",
submit: "Susun",
submitBatch: "Susun ({count} file)",
progressLabel: "Menyusun",
},
"booklet-pdf": {
perSheet: "Halaman per lembar",
submit: "Buat Buklet",
submitBatch: "Buat Buklet ({count} file)",
progressLabel: "Membuat buklet",
},
"watermark-pdf": {
text: "Teks watermark",
position: "Posisi",
fontSize: "Ukuran font",
opacity: "Opasitas",
rotation: "Rotasi",
submit: "Beri Watermark",
submitBatch: "Watermark ({count} file)",
progressLabel: "Memberi watermark",
},
"pdf-page-numbers": {
position: "Posisi",
fontSize: "Ukuran font",
submit: "Tambah Nomor",
submitBatch: "Tambah Nomor ({count} file)",
progressLabel: "Memberi nomor",
},
"flatten-pdf": {
submit: "Ratakan",
submitBatch: "Ratakan ({count} file)",
progressLabel: "Meratakan",
},
"sign-pdf": {
yourSignatures: "Tanda tangan Anda",
newSignature: "Baru",
clickToPlace: "Klik tanda tangan untuk meletakkannya di halaman saat ini.",
selectedSignature: "Tanda tangan terpilih",
dragToAdjust: "Seret pegangan untuk mengubah ukuran atau memutar.",
disclaimer:
"Menambahkan gambar tanda tangan visual. Ini bukan tanda tangan digital berbasis sertifikat.",
signing: "Menandatangani…",
signingPercent: "Menandatangani… {percent}%",
downloadSigned: "Unduh PDF yang ditandatangani",
addFirst: "Tambahkan setidaknya satu tanda tangan sebelum mengunduh.",
loadFailed:
"Tidak dapat menampilkan PDF ini. File mungkin rusak atau dilindungi kata sandi; jika terenkripsi, hapus kata sandinya terlebih dahulu dengan alat Buka Kunci PDF.",
pad: {
title: "Buat tanda tangan",
draw: "Gambar",
type: "Ketik",
upload: "Unggah",
color: "Warna",
pen: "Pena",
namePlaceholder: "Ketik nama Anda",
yourName: "Nama Anda",
remember: "Ingat di perangkat ini",
save: "Simpan dan tempatkan",
uploadHint:
"Letakkan PNG / JPG, atau klik untuk memilih. PNG transparan bekerja paling baik.",
},
},
"redact-pdf": {
terms: "Istilah untuk disensor",
termsHint: "Satu istilah per baris (maks 50)",
caseSensitive: "Peka huruf besar/kecil",
submit: "Sensor",
submitBatch: "Sensor ({count} file)",
progressLabel: "Menyensor",
},
"pdf-to-text": {
submit: "Ekstrak Teks",
submitBatch: "Ekstrak Teks ({count} file)",
progressLabel: "Mengekstrak",
},
"pdf-to-word": {
hint: "Terbaik untuk PDF berbasis teks; halaman pindaian memerlukan OCR",
submit: "Konversi ke Word",
submitBatch: "Konversi ke Word ({count} file)",
progressLabel: "Mengonversi",
},
"pdf-metadata": {
title: "Judul",
author: "Penulis",
subject: "Subjek",
keywords: "Kata kunci",
submit: "Atur Metadata",
submitBatch: "Atur Metadata ({count} file)",
progressLabel: "Mengatur metadata",
},
"html-to-pdf": {
hint: "Sumber daya eksternal dinonaktifkan demi privasi.",
submit: "Konversi ke PDF",
submitBatch: "Konversi ke PDF ({count} file)",
progressLabel: "Mengonversi",
},
"markdown-to-docx": {
submit: "Konversi ke DOCX",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"markdown-to-html": {
hint: "Gambar remote di sumber tetap apa adanya di keluaran.",
submit: "Konversi ke HTML",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"markdown-to-pdf": {
hint: "Sumber daya eksternal dinonaktifkan demi privasi.",
submit: "Konversi ke PDF",
submitBatch: "Konversi ke PDF ({count} file)",
progressLabel: "Mengonversi",
},
"epub-convert": {
format: "Format keluaran",
hint: "Sumber daya jarak jauh di dalam buku tidak diambil.",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"to-epub": {
submit: "Konversi ke EPUB",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"csv-excel": {
sheet: "Nomor lembar kerja",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"csv-json": {
pretty: "Cetak rapi",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"json-xml": {
pretty: "Cetak rapi",
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"split-csv": {
rowsPerFile: "Baris per file",
keepHeader: "Pertahankan header di setiap file",
submit: "Pisahkan",
submitBatch: "Pisahkan ({count} file)",
progressLabel: "Memisahkan",
},
"merge-csvs": {
submit: "Gabungkan",
submitBatch: "Gabungkan ({count} file)",
progressLabel: "Menggabungkan",
},
"yaml-json": {
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"xml-to-csv": {
submit: "Konversi",
submitBatch: "Konversi ({count} file)",
progressLabel: "Mengonversi",
},
"create-zip": {
submit: "Buat ZIP",
submitBatch: "Buat ZIP ({count} file)",
progressLabel: "Mengarsipkan",
},
"extract-zip": {
submit: "Ekstrak",
submitBatch: "Ekstrak ({count} file)",
progressLabel: "Mengekstrak",
},
},
urlImport: {
title: "Impor dari URL",
placeholder: "Tempel URL gambar, satu per baris...",
importButton: "Impor URL",
addButton: "Tambah {count} File",
adding: "Menambahkan...",
retryButton: "Coba Lagi",
cancelButton: "Batal",
readyCount: "{count} siap",
failedStatus: "Gagal",
},
comparison: {
original: "Asli",
processed: "Diproses",
before: "Sebelum",
after: "Sesudah",
savings: "Penghematan",
},
toolPage: {
emptyPrompt: "Seret atau unggah gambar untuk memulai",
filesCount: "File ({count})",
addMore: "+ Tambah lagi",
clearAll: "Hapus semua",
acceptDescription: "Hanya file {exts}",
notFound: "Alat tidak ditemukan",
configureAndGenerate: "Atur pengaturan dan buat.",
processingFailed: "Pemrosesan gagal untuk file ini",
conversionComplete: "Konversi selesai",
cannotPreviewDownload:
"File {type} tidak dapat dipratinjau di browser. Gunakan tombol unduh untuk menyimpan file Anda.",
generatingPreview: "Membuat pratinjau...",
cannotPreviewWillProcess:
"File {ext} tidak dapat dipratinjau di browser. Alat ini tetap akan memproses file ini secara normal.",
previousImage: "Gambar sebelumnya",
nextImage: "Gambar berikutnya",
imageCounter: "{current} / {total}",
settingsLabel: "Pengaturan",
downloadAllZip: "Unduh Semua (ZIP)",
hideSettings: "Sembunyikan Pengaturan",
imageArea: "Area gambar",
disabledByAdmin: "Alat ini telah dinonaktifkan oleh administrator Anda",
browseOtherTools: "Jelajahi alat lainnya",
privacyNote: "File diproses di server Anda dan tidak pernah keluar dari jaringan Anda",
applyAndDownload: "Terapkan & Unduh",
andMore: "dan {count} lainnya",
importFromFiles: "Impor dari File",
saveToFiles: "Simpan ke File",
savedToFiles: "Tersimpan ke File",
adjustSettings: "Sesuaikan pengaturan",
startOver: "Mulai ulang dengan file baru",
newFile: "File baru",
previewUnavailable: "Pratinjau akan tersedia setelah pemrosesan",
generatePreview: "Buat Pratinjau",
previewFailed: "Pembuatan pratinjau gagal",
backToTools: "Kembali ke Alat",
original: "Asli",
processed: "Diproses",
saved: "Tersimpan",
noChange: "tidak berubah",
download: "Unduh",
settingsSaved: "Pengaturan Anda tersimpan.",
tryAgain: "Coba lagi",
tryDifferentFile: "Coba file lain",
batchPartialSuccess: "{success} dari {total} diproses. {failed} gagal.",
dataResultsHint: "Hasil ditampilkan di atas. Gunakan tombol salin di panel hasil.",
downloadAsFile: "Unduh sebagai file",
downloadAll: "Unduh Semua",
downloadFiles: "Unduh {count} file",
audioDecodeUnsupported: "Format audio ini tidak dapat dipratinjau di browser",
},
homePage: {
generatingPreview: "Membuat pratinjau...",
loadingPreview: "Memuat pratinjau...",
changeFile: "Ganti file",
quickActions: "Aksi Cepat",
allTools: "Semua Alat",
searchPlaceholder: "Cari {count} alat...",
recent: "Terbaru",
pinned: "Disematkan",
popular: "Populer",
browseByCategory: "Jelajahi berdasarkan Kategori",
gettingStarted: "Memulai",
noToolsMatch: "Tidak ada alat yang cocok dengan '{query}'",
clearSearch: "Hapus pencarian",
requestToolCta: "Minta '{query}'",
requestToolBelowResults: "Tidak menemukannya? Minta alat",
all: "Semua",
documents: "PDF",
data: "File",
pdf: "PDF",
files: "File",
toolCount: "{count} alat",
heading: "Alat SnapOtter",
},
fullscreenGrid: {
searchPlaceholder: "Cari alat...",
hideDetails: "Sembunyikan Detail",
showDetails: "Tampilkan Detail",
switchToSidebar: "Beralih ke tampilan sidebar",
sidebarButton: "Bilah Sisi",
noToolsFound: "Tidak ada alat ditemukan",
tryDifferent: "Coba kata pencarian yang berbeda",
},
editor: {
menu: {
file: {
label: "Berkas",
new: "Baru",
open: "Buka",
save: "Simpan",
exportAs: "Ekspor Sebagai...",
quickExportPng: "Ekspor Cepat PNG",
close: "Tutup",
},
edit: {
label: "Sunting",
undo: "Urungkan",
redo: "Ulangi",
cut: "Potong",
copy: "Salin",
copyMerged: "Salin Gabungan",
paste: "Tempel",
pasteInPlace: "Tempel di Tempat",
delete: "Hapus",
freeTransform: "Transformasi Bebas",
transform: {
label: "Transformasi",
scale: "Skala",
rotate: "Putar",
skew: "Miring",
flipHorizontal: "Balik Horizontal",
flipVertical: "Balik Vertikal",
},
},
image: {
label: "Gambar",
imageSize: "Ukuran Gambar...",
canvasSize: "Ukuran Kanvas...",
rotation: {
label: "Rotasi Gambar",
cw90: "90° Searah Jarum Jam",
ccw90: "90° Berlawanan Jarum Jam",
r180: "180°",
flipHorizontal: "Balik Horizontal",
flipVertical: "Balik Vertikal",
},
trim: "Pangkas",
adjustments: {
label: "Penyesuaian",
brightnessContrast: "Kecerahan/Kontras",
hueSaturation: "Hue/Saturasi",
colorBalance: "Keseimbangan Warna",
levels: "Level",
curves: "Kurva",
},
},
layer: {
label: "Lapisan",
newLayer: "Layer Baru",
duplicateLayer: "Duplikat Layer",
deleteLayer: "Hapus Layer",
arrange: {
label: "Susun",
bringToFront: "Bawa ke Depan",
bringForward: "Majukan",
sendBackward: "Mundurkan",
sendToBack: "Kirim ke Belakang",
},
mergeDown: "Gabung ke Bawah",
flattenImage: "Ratakan Gambar",
},
select: {
label: "Seleksi",
all: "Semua",
deselect: "Hapus Seleksi",
inverse: "Balikkan",
colorRange: "Rentang Warna...",
},
filter: {
label: "Filter",
blur: {
label: "Buram",
gaussian: "Blur Gaussian",
motion: "Blur Gerakan",
radial: "Blur Radial",
surface: "Blur Permukaan",
},
sharpen: {
label: "Pertajam",
sharpen: "Pertajam",
unsharpMask: "Unsharp Mask",
},
noise: {
label: "Noise",
addNoise: "Tambah Noise",
reduceNoise: "Kurangi Noise",
},
pixelate: {
label: "Pikselasi",
pixelate: "Pikselasi",
mosaic: "Mosaik",
},
stylize: {
label: "Stilisasi",
emboss: "Timbul",
solarize: "Solarisasi",
posterize: "Posterisasi",
},
grayscale: "Skala Abu-abu",
sepia: "Sepia",
invert: "Balikkan",
},
view: {
label: "Tampilan",
zoomIn: "Perbesar",
zoomOut: "Perkecil",
fitOnScreen: "Pas di Layar",
actualPixels: "Piksel Asli",
rulers: "Penggaris",
grid: "Kisi",
guides: "Panduan",
snap: "Paskan",
panels: "Panel",
},
},
menuBar: {
backTitle: "Kembali ke SnapOtter",
},
welcome: {
ariaLabel: "Area seret gambar",
heading: "Editor Gambar",
dropDescription: "Seret gambar ke sini untuk memulai",
openImageButton: "Buka Gambar",
newDocumentButton: "Dokumen Baru",
pasteHint: "Atau tempel dari clipboard (Ctrl+V)",
},
mobile: {
heading: "Disarankan Desktop",
description:
"Editor gambar paling baik digunakan di layar desktop. Silakan beralih ke perangkat dengan layar lebih besar untuk pengalaman pengeditan penuh.",
},
errors: {
serverDecodeFailed: "Dekoding server gagal",
},
shapes: {
shape: "Bentuk",
fill: "Isi",
stroke: "Garis Tepi",
strokeWidth: "Lebar",
cornerRadius: "Radius",
sides: "Sisi",
points: "Titik",
dashStyle: "Garis Putus",
solid: "Utuh",
dashed: "Putus-putus",
dotted: "Titik-titik",
none: "Tidak ada",
opacity: "Opasitas",
rectangle: "Persegi Panjang",
ellipse: "Elips",
line: "Garis",
arrow: "Panah",
polygon: "Poligon",
star: "Bintang",
},
},
settings: {
heading: "Pengaturan",
nav: {
general: "Umum",
systemSettings: "Pengaturan Sistem",
security: "Keamanan",
people: "Anggota",
teams: "Tim",
roles: "Peran",
auditLog: "Log Audit",
usage: "Penggunaan",
apiKeys: "Kunci API",
aiFeatures: "Fitur AI",
tools: "Alat",
about: "Tentang",
},
general: {
heading: "Umum",
description: "Preferensi pengguna dan pengaturan tampilan.",
loading: "Memuat...",
logOut: "Keluar",
defaultToolViewLabel: "Tampilan Alat Default",
defaultToolViewDescription: "Cara alat ditampilkan di halaman beranda",
sidebarOption: "Bilah Sisi",
fullscreenGridOption: "Grid Layar Penuh",
appVersionLabel: "Versi Aplikasi",
appVersionDescription: "Versi SnapOtter saat ini",
saveButton: "Simpan Pengaturan",
saveSuccess: "Pengaturan disimpan.",
saveFailed: "Gagal menyimpan pengaturan.",
},
system: {
heading: "Pengaturan Sistem",
description: "Konfigurasi sisi server dan batasan.",
fileUploadLimitLabel: "Batas Unggahan File (MB)",
fileUploadLimitDescription: "Ukuran file maksimum per unggahan",
defaultThemeLabel: "Tema Default",
defaultThemeDescription: "Tema yang diterapkan untuk sesi baru",
lightOption: "Terang",
darkOption: "Gelap",
systemOption: "Sistem",
languageLabel: "Bahasa",
languageDescription: "Bahasa untuk antarmuka",
loginAttemptLimitLabel: "Batas Percobaan Login",
loginAttemptLimitDescription: "Maksimum percobaan login gagal per menit sebelum dikunci",
fileManagementHeading: "Manajemen File",
maxFileAgeLabel: "Usia File Maks (jam)",
maxFileAgeDescription: "Berapa lama file yang diproses disimpan sebelum pembersihan otomatis",
startupCleanupLabel: "Pembersihan Saat Startup",
startupCleanupDescription: "Bersihkan file sementara lama saat server dimulai",
saveButton: "Simpan Pengaturan",
saveSuccess: "Pengaturan disimpan.",
saveFailed: "Gagal menyimpan pengaturan.",
limitsAndResources: "Batasan & Sumber Daya",
maxFileSize: "Ukuran File Maks",
maxBatchSize: "Ukuran Batch Maks",
concurrentJobs: "Pekerjaan Bersamaan",
workerThreads: "Thread Pekerja",
maxPipelineSteps: "Langkah Pipeline Maks",
processingTimeout: "Timeout Pemrosesan",
rateLimitPerMin: "Batas Rate (req/menit)",
unlimited: "Tidak terbatas",
auto: "Otomatis",
envOverride: "Diatur oleh variabel lingkungan",
maxCanvasPixels: "Piksel Kanvas Maks",
maxSvgSize: "Ukuran SVG Maks",
maxSplitGrid: "Grid Split Maks",
maxPdfPages: "Halaman PDF Maks",
sessionDuration: "Durasi Sesi",
supportBundleButton: "Unduh Paket Dukungan",
supportBundleDescription:
"Unduh ZIP diagnostik berisi konfigurasi yang disunting, log, dan data pekerjaan untuk pemecahan masalah.",
supportBundleFailed: "Gagal mengunduh paket dukungan.",
},
privacy: {
title: "Privasi",
description:
"Analitik Produk Anonim membantu meningkatkan SnapOtter. Fitur ini aktif secara default dan diatur untuk seluruh instance oleh administrator.",
analyticsLabel: "Analitik Produk Anonim",
analyticsDescription:
"Bagikan data penggunaan anonim (alat mana yang dijalankan, durasi, kode kesalahan) dan laporan kerusakan. Tanpa alamat IP, tanpa identitas akun. Kami tidak pernah mengumpulkan nama file, isi file, keluaran OCR, metadata gambar, atau teks dokumen Anda. Matikan ini untuk menghentikan semuanya.",
},
security: {
heading: "Keamanan",
description: "Pengaturan kata sandi dan autentikasi.",
changePasswordHeading: "Ubah Kata Sandi",
currentPasswordPlaceholder: "Kata Sandi Saat Ini",
newPasswordPlaceholder: "Kata Sandi Baru",
confirmPasswordPlaceholder: "Konfirmasi Kata Sandi Baru",
passwordsMismatch: "Kata sandi tidak cocok",
passwordTooShort: "Kata sandi harus minimal 4 karakter",
changeSuccess: "Kata sandi berhasil diubah",
changeFailed: "Gagal mengubah kata sandi",
currentPasswordIncorrect: "Kata sandi saat ini salah",
changePasswordButton: "Ubah Kata Sandi",
loginAttemptLimitNote: "Batas percobaan login dapat dikonfigurasi di Pengaturan Sistem.",
twoFactorHeading: "Autentikasi Dua Faktor",
twoFactorDescription:
"Tambahkan lapisan keamanan ekstra ke akun Anda dengan aplikasi autentikator.",
twoFactorEnabledStatus: "Autentikasi dua faktor aktif.",
twoFactorDisabledStatus: "Autentikasi dua faktor tidak aktif.",
enableTwoFactorButton: "Aktifkan autentikasi dua faktor",
disableTwoFactorButton: "Nonaktifkan autentikasi dua faktor",
twoFactorScanQr:
"Pindai kode QR ini dengan aplikasi autentikator Anda (seperti Google Authenticator, Authy, atau 1Password).",
twoFactorManualEntry: "Tidak bisa memindai kode? Masukkan kunci ini secara manual:",
twoFactorRecoveryCodesHeading: "Kode pemulihan",
twoFactorRecoveryCodesDescription:
"Simpan kode ini di tempat yang aman. Setiap kode dapat digunakan sekali untuk masuk jika Anda kehilangan akses ke aplikasi autentikator.",
twoFactorCopyRecoveryCodes: "Salin kode",
twoFactorCodesCopied: "Disalin",
twoFactorCopyFailed:
"Tidak dapat menyalin secara otomatis. Pilih kode di atas dan salin secara manual.",
twoFactorEnterCode: "Masukkan kode 6 digit dari aplikasi Anda untuk mengonfirmasi penyiapan.",
twoFactorCodePlaceholder: "000000",
twoFactorConfirmButton: "Konfirmasi dan aktifkan",
twoFactorCancelButton: "Batal",
twoFactorEnableSuccess: "Autentikasi dua faktor kini aktif.",
twoFactorDisableSuccess: "Autentikasi dua faktor telah dinonaktifkan.",
twoFactorDisablePrompt:
"Masukkan kode autentikator Anda saat ini untuk menonaktifkan autentikasi dua faktor.",
adminHeading: "Pengaturan Keamanan Admin",
adminDescription: "Pengaturan kebijakan keamanan enterprise. Berlaku untuk semua pengguna.",
sessionIdleTimeout: "Batas Waktu Sesi Tidak Aktif (menit)",
sessionIdleTimeoutDesc: "Otomatis keluarkan sesi yang tidak aktif. 0 = nonaktif.",
maxSessionsPerUser: "Sesi Maksimal Per Pengguna",
maxSessionsPerUserDesc: "Batasi sesi bersamaan per pengguna. 0 = tidak terbatas.",
mfaPolicy: "Kebijakan MFA",
mfaPolicyDesc: "Wajibkan autentikasi multi-faktor untuk pengguna.",
mfaPolicyOptional: "Opsional",
mfaPolicyAdminsOnly: "Wajib untuk admin",
mfaPolicyRequired: "Wajib untuk semua pengguna",
ssoEnforcement: "Penerapan SSO",
ssoEnforcementDesc: "Wajibkan login SSO untuk semua pengguna non-break-glass.",
ssoBreakGlassUsername: "Username Admin Break Glass",
ssoBreakGlassUsernameDesc:
"Admin ini tetap dapat masuk dengan kredensial lokal saat SSO diberlakukan.",
passwordMinLength: "Panjang Kata Sandi Minimum",
passwordMinLengthDesc: "Jumlah karakter minimum yang diperlukan untuk kata sandi.",
passwordRequireUppercase: "Wajib Huruf Besar",
passwordRequireUppercaseDesc: "Wajib mengandung minimal satu huruf besar.",
passwordRequireNumber: "Wajib Angka",
passwordRequireNumberDesc: "Wajib mengandung minimal satu angka.",
passwordRequireSpecial: "Wajib Karakter Khusus",
passwordRequireSpecialDesc: "Wajib mengandung minimal satu karakter khusus.",
passwordPolicyHeading: "Kebijakan Kata Sandi",
securitySettingsSaved: "Pengaturan keamanan tersimpan",
securitySettingsFailed: "Gagal menyimpan pengaturan keamanan",
},
people: {
heading: "Anggota",
description: "Kelola anggota workspace dan izin mereka",
userCount: "{count} pengguna",
userCountPlural: "{count} pengguna",
searchPlaceholder: "Cari anggota...",
addMembersButton: "Tambah Anggota",
newMemberHeading: "Anggota Baru",
usernamePlaceholder: "Nama pengguna",
passwordPlaceholder: "Kata sandi",
roleUserOption: "Pengguna",
roleEditorOption: "Penyunting",
roleAdminOption: "Admin",
roleUserDescription: "Akses alat dasar",
roleEditorDescription: "Semua file & pipeline",
roleAdminDescription: "Akses penuh",
noDescription: "Tidak ada deskripsi",
defaultTeamOption: "Bawaan",
createButton: "Buat",
cancelButton: "Batal",
createSuccess: "Pengguna berhasil dibuat",
createFailed: "Gagal membuat pengguna",
userLimitReached: "Batas pengguna tercapai (maks {max})",
deleteConfirm: 'Hapus pengguna "{username}"? Tindakan ini tidak dapat dibatalkan.',
deleteSuccess: 'Pengguna "{username}" dihapus',
deleteFailed: "Gagal menghapus pengguna",
editHeading: "Sunting {username}",
updateSuccess: "Pengguna diperbarui",
updateFailed: "Gagal memperbarui pengguna",
cannotRemoveOwnAdmin: "Tidak dapat menghapus peran admin Anda sendiri",
resetPasswordHeading: "Reset kata sandi untuk {username}",
newPasswordLabel: "Kata sandi baru (min 8 karakter)",
resetPasswordButton: "Reset Kata Sandi",
resetPasswordWarning: "Ini akan membatalkan semua sesi dan kunci API untuk pengguna ini.",
resetSuccess: "Kata sandi berhasil direset",
resetFailed: "Gagal mereset kata sandi",
tableHeaderUser: "Pengguna",
tableHeaderRole: "Peran",
tableHeaderTeam: "Tim",
noSearchResults: "Tidak ada anggota yang cocok dengan pencarian Anda.",
noUsersFound: "Tidak ada pengguna ditemukan.",
authBadgeLocalOidc: "Lokal + OIDC",
authBadgeOidc: "OIDC",
editRoleTeamAction: "Edit Peran / Tim",
resetPasswordAction: "Reset Kata Sandi",
deleteUserAction: "Hapus Pengguna",
saveButton: "Simpan",
copyPasswordButton: "Salin kata sandi",
passwordCopied: "Disalin!",
copyPasswordWarning:
"Salin kata sandi ini sekarang. Anda tidak akan bisa melihatnya setelah membuat pengguna.",
},
teams: {
heading: "Tim",
description: "Organisasikan anggota ke dalam tim untuk manajemen yang lebih baik.",
createButton: "Buat Tim Baru",
newTeamHeading: "Tim Baru",
teamNamePlaceholder: "Nama tim",
createSubmitButton: "Buat",
cancelButton: "Batal",
createSuccess: "Tim berhasil dibuat",
createFailed: "Gagal membuat tim",
duplicateTeamError: "Tim dengan nama tersebut sudah ada",
renameSuccess: "Tim diganti nama",
renameFailed: "Gagal mengganti nama tim",
deleteConfirm: 'Hapus tim "{name}"? Anggota akan dilepaskan.',
deleteSuccess: 'Tim "{name}" dihapus',
deleteFailed: "Gagal menghapus tim",
cannotDeleteDefault: "Tidak dapat menghapus tim default atau tim yang memiliki anggota",
tableHeaderTeamName: "Nama Tim",
tableHeaderMembers: "Anggota",
emptyState: "Tidak ada tim ditemukan.",
renameSaveButton: "Simpan",
renameCancelButton: "Batal",
renameAction: "Ganti Nama",
deleteAction: "Hapus",
totalMembers: "Total Anggota",
nameRequired: "Nama tim wajib diisi",
nameTooLong: "Nama tim maksimal 50 karakter",
duplicateName: "Tim dengan nama ini sudah ada",
teamStorageQuota: "Kuota Penyimpanan (MB)",
teamStorageQuotaDesc:
"Penyimpanan maksimal untuk tim ini dalam MB. Kosongkan untuk tanpa batas.",
teamRetentionHours: "Retensi (jam)",
teamRetentionHoursDesc:
"Retensi file pemrosesan untuk tim ini. Kosongkan untuk menggunakan default global.",
quotaSaved: "Pengaturan tim tersimpan",
},
roles: {
heading: "Peran",
description: "Kelola peran dan izinnya. Peran bawaan tidak dapat diubah.",
createButton: "Buat Peran Kustom",
newRoleHeading: "Peran Baru",
roleNamePlaceholder: "Nama peran",
descriptionPlaceholder: "Deskripsi (opsional)",
permissionsLabel: "Izin",
createSubmitButton: "Buat",
cancelButton: "Batal",
createSuccess: "Peran berhasil dibuat",
createFailed: "Gagal membuat peran",
duplicateRoleError: "Peran dengan nama tersebut sudah ada",
editHeading: "Edit Peran: {name}",
editSaveButton: "Simpan",
editCancelButton: "Batal",
updateSuccess: "Peran diperbarui",
updateFailed: "Gagal memperbarui peran",
deleteConfirm: 'Hapus peran "{name}"? {count} pengguna perlu ditetapkan ulang.',
deleteConfirmSimple: 'Hapus peran "{name}"?',
deleteSuccess: 'Peran "{name}" dihapus',
deleteFailed: "Gagal menghapus peran",
emptyState: "Tidak ada peran ditemukan.",
builtInBadge: "Bawaan",
userCountBadge: "{count} pengguna",
editRoleTitle: "Edit peran",
deleteRoleTitle: "Hapus peran",
permGroup: {
tools: "Alat",
files: "File",
apiKeys: "Kunci API",
pipelines: "Pipeline",
settings: "Pengaturan",
users: "Pengguna",
teams: "Tim",
system: "Sistem",
},
},
auditLog: {
heading: "Log Audit",
allActionsFilter: "Semua tindakan",
emptyState: "Tidak ada entri log audit.",
tableHeaderTime: "Waktu",
tableHeaderUser: "Pengguna",
tableHeaderAction: "Tindakan",
tableHeaderTarget: "Sasaran",
paginationInfo: "Halaman {page} dari {totalPages} ({total} entri)",
previousButton: "Sebelumnya",
nextButton: "Berikutnya",
justNow: "baru saja",
minutesAgo: "{mins}m lalu",
hoursAgo: "{hrs}j lalu",
daysAgo: "{days}h lalu",
},
usage: {
heading: "Penggunaan",
description: "Statistik penggunaan lokal dari pekerjaan dan penyimpanan file.",
periodLabel: "Periode",
days7: "7 hari",
days30: "30 hari",
days90: "90 hari",
jobsPerDayHeading: "Pekerjaan per hari",
topToolsHeading: "Alat teratas",
perUserHeading: "Volume per pengguna",
durationsHeading: "Persentil durasi",
noData: "Tidak ada data untuk periode ini.",
dayColumn: "Hari",
totalColumn: "Total",
completedColumn: "Selesai",
failedColumn: "Gagal",
toolColumn: "Alat",
runsColumn: "Eksekusi",
userColumn: "Pengguna",
bytesInColumn: "Bytes masuk",
poolColumn: "Pool",
p50Column: "p50",
p95Column: "p95",
storageHeading: "Penyimpanan pustaka",
storageFiles: "{count} file",
unknownUser: "(tidak diketahui)",
storageByTeam: "Penyimpanan per Tim",
teamColumn: "Tim",
storageColumn: "Penyimpanan",
usersColumn: "Pengguna",
},
apiKeys: {
heading: "Kunci API",
description: "Kelola kunci API untuk akses programatik ke SnapOtter.",
keyNamePlaceholder: "Nama kunci (opsional)",
generateButton: "Buat Kunci API",
removeScopingLabel: "Hapus pembatasan izin",
restrictPermissionsLabel: "Batasi izin (opsional)",
expiresLabel: "Kedaluwarsa:",
clearButton: "Hapus",
copyTitle: "Salin",
keyWarning: "Simpan kunci ini dengan aman. Kunci tidak akan ditampilkan lagi.",
existingKeysHeading: "Kunci yang Ada",
createdPrefix: "Dibuat {date}",
scopedPrefix: "Lingkup:",
expiresPrefix: "Kedaluwarsa {date}",
deleteKeyTitle: "Hapus kunci",
deleteConfirm:
"Hapus kunci API ini? Semua integrasi yang menggunakannya akan berhenti berfungsi.",
emptyState: "Belum ada kunci API. Buat satu untuk memulai.",
},
tools: {
heading: "Alat",
description:
"Aktifkan atau nonaktifkan alat individual. Alat yang dinonaktifkan disembunyikan dari semua pengguna.",
restartBanner: "Perlu restart agar perubahan berlaku.",
searchPlaceholder: "Cari alat...",
noSearchResults: "Tidak ada alat yang cocok dengan pencarian Anda.",
loadFailedError:
"Gagal memuat pengaturan alat. Penyimpanan dinonaktifkan untuk mencegah kehilangan data.",
saveButton: "Simpan Pengaturan Alat",
disabledCount: "{count} alat dinonaktifkan",
},
experimental: {
label: "Aktifkan Alat Eksperimental",
description: "Tampilkan alat yang masih dalam pengembangan. Alat ini mungkin tidak stabil.",
},
fileManagement: {
title: "Manajemen File",
maxAge: "Usia File Maks (jam)",
maxAgeDescription: "Berapa lama file yang diproses disimpan sebelum pembersihan otomatis",
startupCleanup: "Pembersihan Saat Startup",
startupCleanupDescription: "Bersihkan file sementara lama saat server dimulai",
},
dataRetention: {
title: "Retensi Data",
fileMaxAgeHours: "Retensi file pemrosesan (jam)",
fileMaxAgeHoursDesc:
"Berapa lama menyimpan file yang diunggah dan diproses. Default: 72 jam.",
jobsRetentionDays: "Retensi catatan pekerjaan (hari)",
jobsRetentionDaysDesc:
"Berapa lama menyimpan metadata pekerjaan. 0 = simpan selamanya. Default: 30 hari.",
auditRetentionDays: "Retensi log audit (hari)",
auditRetentionDaysDesc:
"Berapa lama menyimpan entri log audit. 0 = simpan selamanya. Default: selamanya.",
},
aiFeatures: {
title: "Fitur AI",
description: "Kelola bundel model AI untuk pemrosesan file tingkat lanjut.",
installAll: "Instal Semua",
diskUsage: "Penggunaan disk: {size}",
sizeOnDisk: "{size} di disk",
installed: "Terinstal",
notInstalled: "Belum terinstal",
queued: "Dalam antrean",
install: "Instal",
repair: "Perbaiki",
uninstall: "Hapus",
installing: "Menginstal...",
importBundle: "Impor Bundel",
importDescription:
"Impor runtime OCR bertanda tangan atau bundel AI lama untuk penggunaan luring.",
importButton: "Impor dari file",
importing: "Mengimpor...",
importSuccess: "Bundel berhasil diimpor.",
importError: "Impor bundel gagal: {error}",
importType: "Jenis bundel",
importOcr: "Paket OCR akurat",
importLegacy: "Bundel AI lama",
importOcrIndex: "Indeks OCR bertanda tangan (.json)",
importOcrArchive: "Arsip runtime OCR (.tar.gz)",
importLegacyArchive: "Arsip bundel lama (.tar.gz)",
resetTitle: "Reset Lingkungan AI",
resetDescription:
"Menghapus semua fitur AI yang terinstal dan model yang telah diunduh, lalu memulai dari awal. Gunakan ini jika alat AI berperilaku tidak semestinya setelah pembaruan dan menginstal ulang bundel tidak menyelesaikan masalah.",
resetButton: "Reset",
resetConfirmMessage:
"Ini akan menghapus semua fitur dan model AI yang terinstal. Anda perlu menginstalnya kembali dari Hugging Face. Tindakan ini tidak dapat dibatalkan.",
resetFailed: "Reset gagal: {error}",
},
about: {
heading: "Tentang",
appName: "SnapOtter",
appDescription:
"Suite pemrosesan file self-hosted yang mengutamakan privasi dengan 200+ alat. Konversi, kompres, edit, transkrip, OCR, dan otomasi alur kerja gambar, video, audio, PDF, dan file tanpa mengirim data ke cloud.",
versionLabel: "Versi:",
linksHeading: "Tautan",
githubLink: "Repositori GitHub",
docsLink: "Dokumentasi",
apiRefLink: "Referensi API (Swagger)",
licenseLabel: "Lisensi:",
licenseDescription:
"SnapOtter adalah perangkat lunak sumber terbuka berlisensi GNU Affero General Public License v3 (AGPLv3).",
},
},
auth: {
login: "Masuk",
logout: "Keluar",
username: "Nama pengguna",
password: "Kata sandi",
loginButton: "Masuk",
loggingIn: "Sedang masuk...",
invalidCredentials: "Nama pengguna atau kata sandi salah",
connectionError: "Kesalahan koneksi",
signInWith: "Masuk dengan {provider}",
signInWithSso: "Masuk dengan SSO",
or: "atau",
methodLocal: "Lokal",
methodOidc: "OIDC",
methodBoth: "Lokal + OIDC",
oidcAuthFailed: "Autentikasi gagal. Silakan coba lagi.",
oidcProviderUnreachable: "Tidak dapat menghubungi penyedia identitas. Silakan coba lagi nanti.",
oidcSessionExpired: "Sesi login kedaluwarsa. Silakan coba lagi.",
oidcUserNotAuthorized:
"Akun Anda tidak diizinkan mengakses aplikasi ini. Hubungi administrator Anda.",
oidcUserLimitReached: "Batas pengguna tercapai. Hubungi administrator Anda.",
oidcGenericError: "Kesalahan autentikasi. Silakan coba lagi.",
samlAuthFailed: "Autentikasi SAML gagal. Silakan coba lagi.",
samlUserNotAuthorized:
"Akun Anda tidak diizinkan untuk mengakses aplikasi ini. Hubungi administrator Anda.",
samlUserLimitReached: "Batas pengguna tercapai. Hubungi administrator Anda.",
ssoEnforcedLocalRestricted: "Login lokal dibatasi hanya untuk administrator yang berwenang.",
mfaRequired: "Masukkan kode autentikasi Anda",
mfaRecoveryHint: "Anda juga dapat menggunakan kode pemulihan",
verify: "Verifikasi",
verifying: "Memverifikasi...",
mfaInvalidCode: "Kode tidak valid. Silakan coba lagi.",
mfaEnrollmentRequired:
"Organisasi Anda mewajibkan autentikasi multi-faktor. Silakan atur MFA di pengaturan akun Anda.",
methodSaml: "SAML",
passwordManagedByProvider: "Perubahan kata sandi dikelola oleh penyedia identitas Anda.",
enterUsername: "Masukkan nama pengguna",
enterPassword: "Masukkan kata sandi Anda",
heroTitle: "File Anda. Milik Anda.",
heroSubtitle: "Semua alat yang Anda butuhkan.",
rotatingPhrases: [
"Tanpa pendaftaran. Tanpa akun.",
"Tidak pernah diunggah ke cloud.",
"100% diproses secara lokal.",
"Gratis. Selamanya.",
"Tanpa batas. Tanpa batasan tersembunyi.",
"Berfungsi sepenuhnya offline.",
"Pemrosesan batch tanpa batas.",
"200+ alat.",
"15 model AI. Di perangkat Anda.",
"Secepat kilat. Dibangun di atas Sharp.",
"Siap untuk jaringan terisolasi.",
"Satu container Docker.",
"Open source. Selalu.",
"Setiap piksel tetap di perangkat Anda.",
"Server Anda. Aturan Anda.",
"Deploy dengan satu perintah docker pull.",
"Alternatif self-hosted.",
"Ubah ukuran, kompres, konversi. Secara lokal.",
"Editor gambar gratis. Tanpa watermark.",
"Pemrosesan file massal. Tanpa batas.",
"Hapus latar belakang secara offline.",
"Alternatif Canva self-hosted.",
"Tidak perlu kunci API.",
"Patuh GDPR secara desain.",
"Berfungsi tanpa internet.",
],
},
changePassword: {
title: "Ubah kata sandi Anda",
description:
"Anda perlu mengatur kata sandi baru sebelum melanjutkan. Kata sandi harus minimal 8 karakter dengan huruf besar, huruf kecil, dan angka.",
usernameLabel: "Nama pengguna",
currentPasswordLabel: "Kata sandi saat ini",
currentPasswordPlaceholder: "Masukkan kata sandi saat ini",
newPasswordLabel: "Kata sandi baru",
generateButton: "Buat kata sandi kuat",
newPasswordPlaceholder: "Minimal 8 karakter",
confirmPasswordLabel: "Konfirmasi kata sandi baru",
confirmPasswordPlaceholder: "Ulangi kata sandi baru",
passwordsMismatch: "Kata sandi tidak cocok",
failedError: "Gagal mengubah kata sandi",
connectionError: "Kesalahan koneksi",
changingButton: "Mengubah...",
changeButton: "Ubah kata sandi",
sidebarTitle: "Hampir selesai",
sidebarDescription:
"Atur kata sandi yang kuat untuk mengamankan akun Anda, lalu Anda siap memulai.",
},
automate: {
title: "Otomasi",
invalidPipelineFile: "Bukan file Pipeline SnapOtter yang valid",
newerVersion: "Pipeline ini dibuat dengan versi SnapOtter yang lebih baru",
missingName: "File Pipeline tidak memiliki nama",
noSteps: "File Pipeline tidak memiliki langkah",
importFailed: "Impor gagal",
couldNotRead: "Tidak dapat membaca file Pipeline",
fileCount: "{count} file",
fileCountPlural: "{count} file",
importFromLibrary: "Impor dari Perpustakaan",
addButton: "+ Tambah",
libraryButton: "Perpustakaan",
clearButton: "Hapus",
processingFailed: "Pemrosesan gagal untuk file ini",
processingMultiple: "Memproses {count} file...",
processingPipeline: "Memproses Pipeline...",
processButton: "Proses",
processButtonMultiple: "Proses ({count})",
processAllButton: "Proses Semua ({count})",
addTool: "Tambah Alat",
toolPalette: "Palet Alat",
clickToAdd: "Klik untuk menambahkan ke Pipeline",
savedLabel: "Tersimpan",
templatesLabel: "Templat",
importButton: "Impor",
noSavedPipelines: "Tidak ada Pipeline tersimpan",
stepCount: "({count} langkah)",
stepCountPlural: "({count} langkah)",
exportPipeline: "Ekspor Pipeline",
deletePipeline: "Hapus Pipeline",
moreCount: "+{count} lainnya",
pipelineBuilder: "Pembuat Pipeline",
addToolsPrompt: "Tambahkan alat dari palet untuk memulai",
stepsConfigured: "{count} langkah dikonfigurasi",
stepsConfiguredPlural: "{count} langkah dikonfigurasi",
noFilesLoaded: "Tidak ada file dimuat",
downloadZip: "Unduh ZIP",
saveButton: "Simpan",
pipelineNamePlaceholder: "Nama Pipeline",
descriptionPlaceholder: "Deskripsi",
savingIndicator: "...",
cancelButton: "Batal",
preview: "Pratinjau",
previousImage: "Gambar sebelumnya",
nextImage: "Gambar berikutnya",
imageCounter: "{current} / {total}",
imageArea: "Area gambar",
templateSocialMedia: "Siap Media Sosial",
templatePrivacyClean: "Bersih Privasi",
templateWebOptimization: "Optimasi Web",
templateProfilePicture: "Foto Profil",
templateWatermarkBatch: "Batch Watermark",
createNew: "Buat Otomasi Baru",
savedAutomations: "Otomasi Tersimpan",
templates: "Template",
addStep: "Tambah Langkah",
removeStep: "Hapus",
moveUp: "Pindah ke atas",
moveDown: "Pindah ke bawah",
savePipeline: "Simpan Pipeline",
runPipeline: "Proses",
pipelineName: "Nama Pipeline",
pipelineDescription: "Deskripsi (opsional)",
noStepsPrompt: "Tambahkan langkah untuk membangun otomasi Anda",
noStepsHeading: "Belum ada langkah",
searchToolsPlaceholder: "Cari alat...",
step: "Langkah",
modalityWarning: "Ketidakcocokan modalitas",
modalityWarningTooltip:
"Langkah ini mengharapkan {expected} tetapi menerima {received}; mungkin gagal saat Anda menjalankan pipeline.",
},
nav: {
tools: "Alat",
reader: "Pembaca",
automate: "Otomasi",
editor: "Editor",
files: "File",
help: "Bantuan",
settings: "Pengaturan",
grid: "Kisi",
},
files: {
myFiles: "File Saya",
recentTab: "Terbaru",
uploadTab: "Unggah File",
fileDetailsAriaLabel: "Detail File",
fileDetailsHeading: "Detail File",
searchPlaceholder: "Cari file...",
selectedCount: "{count} dipilih",
fileCount: "{count} file",
fileCountSingular: "{count} file",
noFilesFound: "Tidak ada file ditemukan",
selectFilePrompt: "Pilih file untuk melihat detail",
openFile: "Buka File",
selectFile: "Pilih File",
openInPipeline: "Buka di Pipeline",
dropFilesHere: "Letakkan file di sini",
orClickToSelect: "atau klik untuk memilih file",
name: "Nama",
format: "Format",
size: "Ukuran",
dimensions: "Dimensi",
version: "Versi",
toolsUsed: "Alat yang Digunakan",
none: "Tidak ada",
delete: "Hapus",
pipeline: "Pipeline",
download: "Unduh",
},
dropzone: {
unsupportedFileType: "Jenis file ini tidak didukung oleh alat ini",
urlFetchFailed: "Tidak dapat mengambil gambar dari URL",
ariaLabel: "Area seret file",
dropPrompt: "Seret gambar Anda ke sini",
browseOrPaste: "gunakan tombol unggah, atau tempel dari clipboard",
uploadButton: "Unggah",
defaultFormats: "Gambar, Video, Audio, PDF, File, dan 150+ format",
orSeparator: "atau",
urlPlaceholder: "Tempel URL gambar...",
urlLoadingIndicator: "...",
addUrlButton: "Tambah",
importMultipleUrls: "Impor beberapa URL...",
filesSelected: "{count} file dipilih",
dropToAdd: "Lepas untuk menambahkan file",
dropToReplace: "Lepas untuk mengganti file",
},
reviewPanel: {
processedResultAlt: "Hasil yang diproses",
sizeLabel: "Ukuran: {size}",
typeLabel: "Jenis: {type}",
processedLabel: "Diproses: {time}",
undoButton: "Urungkan",
downloadButton: "Unduh",
openInEditor: "Buka di Editor",
reviewHeading: "Tinjau",
continueEditing: "Lanjutkan mengedit",
},
features: {
notEnabledTitle: "Fitur Tidak Diaktifkan",
notEnabledDescription:
"Fitur ini tidak diaktifkan. Minta administrator Anda untuk mengaktifkannya di Pengaturan.",
requiresDownload: "Fitur ini memerlukan unduhan tambahan (~{size})",
retryButton: "Coba Lagi",
queued: "Mengantre untuk instalasi...",
enableButton: "Aktifkan {name}",
repairRequired: "Perbaikan Diperlukan",
repairDescription:
"Beberapa file model hilang atau rusak. Perbaikan akan mengunduh ulang file tersebut.",
repairButton: "Perbaiki {name}",
lessThanMinute: "Kurang dari semenit lagi",
oneMinuteLeft: "Sekitar 1 menit lagi",
minutesLeft: "Sekitar {mins} menit lagi",
progressMessages: [
"Sebentar lagi... mungkin...",
"Hal baik butuh waktu...",
"Masih lebih cepat dari menunggu cat kering...",
"Kesabaran Anda sungguh menginspirasi...",
"Bekerja lebih keras dari yang terlihat...",
"Ini bagian serunya, percaya deh...",
"Sedang mengerjakan hal penting di balik layar...",
"Kalau Anda membaca ini, berarti sedang berjalan...",
"Menyiapkan sesuatu yang luar biasa...",
"Sepadan dengan setiap detik, janji...",
"Ketegangan ini bagian dari pengalaman...",
"Mengajari komputer Anda trik baru...",
"Menyiapkan kekuatan super Anda...",
"File Anda akan berterima kasih nanti...",
"Memuat... tapi yang versi keren...",
"Waktu yang tepat untuk menyeduh kopi...",
"Roma juga tidak dibangun dalam sehari...",
"Sssttt... jenius sedang bekerja...",
"Membuat proyek Anda iri dengan apa yang akan datang...",
"Merakit tim impian...",
"Membongkar kehebatan...",
"Hampir selesai berpikir untuk memulai... bercanda...",
"Plot twist: ini benar-benar sedang melakukan sesuatu...",
"Memanaskan mesin kreatif...",
"Imajinasi sedang dimuat...",
"Bukan screensaver, kami janji...",
"Seni hebat butuh waktu untuk diinstal...",
"Diri Anda di masa depan akan berterima kasih...",
"Mengunduh beberapa file yang sangat pintar...",
"Tunggu sebentar, yang terbaik belum datang...",
],
},
help: {
heading: "Bantuan",
gettingStarted: {
heading: "Memulai",
description:
"Pilih alat dari sidebar atau cari. Unggah file dengan menyeretnya ke halaman atau klik area unggah. Sesuaikan pengaturan dan unduh hasilnya.",
},
keyboardShortcuts: {
heading: "Pintasan Keyboard",
focusSearchBar: "Fokus ke bilah pencarian",
goToTools: "Ke halaman alat",
toggleTheme: "Ganti tema",
goToResize: "Ke Ubah Ukuran",
goToCrop: "Ke Potong",
goToCompress: "Ke Kompres",
goToConvert: "Ke Konversi",
goToRemoveBackground: "Ke Hapus Latar Belakang",
goToWatermarkText: "Ke Watermark Teks",
goToStripMetadata: "Ke Hapus Metadata",
goToImageInfo: "Ke Info Gambar",
processFile: "Proses file",
downloadResult: "Unduh hasil",
},
resources: {
heading: "Sumber Daya",
githubLink: "Repositori GitHub",
reportIssueLink: "Laporkan Masalah",
docsLink: "Dokumentasi",
apiRefLink: "Referensi API (Swagger)",
},
versionLabel: "SnapOtter v{version}",
},
errors: {
generic: "Terjadi kesalahan",
offline: "Anda sedang offline",
reconnecting: "Menghubungkan ulang ke server...",
connected: "Terhubung",
processingFailed: "Pemrosesan gagal untuk file ini",
timeout: "Permintaan habis waktu. Server mungkin kelebihan beban. Coba lagi.",
networkError: "Kesalahan jaringan. Periksa koneksi Anda.",
invalidCredentials: "Nama pengguna atau kata sandi salah",
connectionError: "Kesalahan koneksi",
},
sidebar: {
sponsor: "Dukung kami",
tools: "Alat",
grid: "Kisi",
automate: "Otomasi",
editor: "Editor",
files: "File",
help: "Bantuan",
settings: "Pengaturan",
},
toolCard: {
pin: "Sematkan",
unpin: "Lepas sematan",
},
appLayout: {
mobileNavTools: "Alat",
mobileNavAutomate: "Otomasi",
mobileNavEditor: "Editor",
mobileNavFiles: "File",
mobileNavSettings: "Pengaturan",
},
a11y: {
sponsorLink: "Dukung SnapOtter di GitHub Sponsors",
skipToContent: "Lewati ke konten utama",
openSidebar: "Buka bilah sisi",
closeSidebar: "Tutup bilah sisi",
closeSettings: "Tutup pengaturan",
closeHelp: "Tutup bantuan",
closeDialog: "Tutup dialog",
zoomIn: "Perbesar",
zoomOut: "Perkecil",
fitToView: "Sesuaikan tampilan",
actualSize: "Ukuran asli",
pan: "Geser",
previousImage: "Previous image",
nextImage: "Next image",
imageArea: "Image area",
imageViewer: "Image viewer",
fileDropZone: "Zona lepas file",
imageDropZone: "Image drop zone",
beforeAfterSlider: "Penggeser perbandingan sebelum/sesudah",
imageControls: "Image controls",
zoomControls: "Kontrol zoom",
dragToReorder: "Seret untuk mengurutkan ulang",
whiteBackground: "Latar belakang putih",
blackBackground: "Latar belakang hitam",
expandPanel: "Perluas panel",
collapsePanel: "Ciutkan panel",
swapDimensions: "Tukar dimensi",
applyCrop: "Terapkan crop",
cancelCrop: "Batalkan crop",
fontFamily: "Jenis font",
textColor: "Warna teks",
flipHorizontal: "Balik horizontal",
flipVertical: "Balik vertikal",
hexColorValue: "Nilai warna HEX",
backgroundColor: "Warna latar belakang",
foregroundColor: "Warna latar depan",
swapColors: "Tukar warna latar depan dan latar belakang",
resetColors: "Atur ulang ke hitam dan putih bawaan",
foregroundHex: "Nilai HEX warna latar depan",
undo: "Urungkan",
redo: "Ulangi",
layers: "Lapisan",
addLayer: "Tambah lapisan",
deleteLayer: "Hapus lapisan",
cancelOperation: "Batalkan operasi",
fill: "Isi",
fileDetails: "Detail file",
language: "Bahasa",
selected: "Dipilih",
deleteKey: "Hapus kunci",
editRole: "Edit peran",
deleteRole: "Hapus peran",
notInstalled: "Belum terpasang",
queued: "Mengantre untuk dipasang",
installing: "Memasang",
imageNOfTotal: "Gambar {n} dari {total}",
processingComplete: "Gambar berhasil diproses",
processingFailed: "Pemrosesan gagal",
settingsDialog: "Pengaturan",
helpDialog: "Bantuan",
navigationMenu: "Navigasi",
homeLink: "Beranda SnapOtter",
},
pipelineTemplates: {
"web-optimize": {
name: "Optimalkan untuk web",
description: "Ubah ukuran, konversi ke WebP, dan kompres gambar agar cepat dimuat di web.",
},
"email-friendly": {
name: "Ramah email",
description: "Perkecil gambar agar cukup kecil untuk dilampirkan ke email.",
},
"privacy-scrub": {
name: "Pembersihan privasi",
description: "Hapus EXIF, GPS, dan metadata lainnya, lalu kompres.",
},
"social-square": {
name: "Persegi media sosial",
description: "Pangkas menjadi persegi 1:1 dan kompres untuk unggahan media sosial.",
},
"watermark-batch": {
name: "Tanda air massal",
description: "Bubuhkan tanda air teks pada gambar, lalu kompres.",
},
"shrink-pdf-email": {
name: "Perkecil PDF untuk email",
description: "Ratakan dan kompres PDF secara agresif agar sesuai batas email.",
},
"podcast-polish": {
name: "Pemolesan podcast",
description:
"Hapus jeda hening, normalkan kenyaringan, dan tambahkan transisi pudar ke rekaman.",
},
"cut-out-subject": {
name: "Potong subjek",
description: "Hapus latar belakang dengan AI dan kompres potongan transparan.",
},
"restore-old-photo": {
name: "Pulihkan foto lama",
description: "Perbaiki, beri warna, dan perbesar foto lama atau rusak dengan AI.",
},
},
} as const;