Files
SnapOtter/packages/shared/src/i18n/id.ts
T

2607 lines
88 KiB
TypeScript

import type { TranslationKeys } from "./en.js";
export const id: TranslationKeys = {
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...",
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: "Edit",
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: "Page not found",
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
},
categories: {
essentials: "Dasar",
optimization: "Optimasi",
adjustments: "Penyesuaian",
watermark: "Watermark & Overlay",
utilities: "Utilitas",
layout: "Tata Letak & Komposisi",
format: "Format & Konversi",
video: "Video",
audio: "Audio",
documents: "PDF & Documents",
data: "Data Files",
ai: "Alat AI",
},
modalities: {
image: "Image",
video: "Video",
audio: "Audio",
documentsAndFiles: "Documents & Files",
},
tools: {
resize: {
name: "Ubah Ukuran",
description: "Ubah ukuran berdasarkan piksel, persentase, atau preset media sosial",
},
crop: {
name: "Potong",
description: "Potong bebas, preset rasio aspek, potong bentuk",
},
rotate: {
name: "Putar & Balik",
description: "Putar, balik, dan luruskan gambar",
},
convert: {
name: "Konversi",
description: "Konversi antar format gambar",
},
compress: {
name: "Kompres",
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",
description: "Hapus EXIF, GPS, dan info kamera",
},
"edit-metadata": {
name: "Edit Metadata",
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",
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: "OCR / Ekstraksi Teks",
description: "Ekstrak teks dari gambar dengan akurasi 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",
},
"transparency-fixer": {
name: "Perbaikan Transparansi PNG",
description: "Perbaiki PNG transparansi palsu dalam satu klik",
},
"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 to Image",
description: "Capture webpages as high-quality images",
},
"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: "Jahit / Gabungkan",
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",
},
"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",
},
"convert-video": {
name: "Convert Video",
description: "Convert videos between MP4, MOV, and WebM",
},
"compress-video": {
name: "Compress Video",
description: "Shrink video file size with quality control",
},
"trim-video": {
name: "Trim Video",
description: "Cut a clip out of a video",
},
"mute-video": {
name: "Mute Video",
description: "Remove the audio track from a video",
},
"video-to-gif": {
name: "Video to GIF",
description: "Turn a video clip into an animated GIF",
},
"convert-audio": {
name: "Convert Audio",
description: "Convert audio between MP3, WAV, OGG, and more",
},
"trim-audio": {
name: "Trim Audio",
description: "Cut a section out of an audio file",
},
"extract-audio": {
name: "Extract Audio",
description: "Pull the audio track out of a video",
},
"merge-pdf": {
name: "Merge PDFs",
description: "Combine multiple PDFs into one",
},
"split-pdf": {
name: "Split PDF",
description: "Extract pages or split into parts",
},
"compress-pdf": {
name: "Compress PDF",
description: "Shrink PDF file size",
},
"rotate-pdf": {
name: "Rotate PDF",
description: "Rotate pages in a PDF",
},
"word-to-pdf": {
name: "Word to PDF",
description: "Convert Word documents to PDF",
},
"extract-pages": {
name: "Extract Pages",
description: "Pull selected pages into a new PDF",
},
"remove-pages": {
name: "Remove Pages",
description: "Delete specific pages from a PDF",
},
"organize-pdf": {
name: "Organize PDF",
description: "Reorder pages with an explicit page order",
},
"protect-pdf": {
name: "Protect PDF",
description: "Add password protection (AES-256 encryption)",
},
"unlock-pdf": {
name: "Unlock PDF",
description: "Remove password protection from a PDF",
},
"repair-pdf": {
name: "Repair PDF",
description: "Attempt to repair a damaged or corrupted PDF",
},
"linearize-pdf": {
name: "Web-Optimize PDF",
description: "Linearize a PDF for fast web viewing",
},
"grayscale-pdf": {
name: "Grayscale PDF",
description: "Convert all colors to grayscale",
},
"pdfa-convert": {
name: "PDF/A Convert",
description: "Convert to archival PDF/A-2",
},
"crop-pdf": {
name: "Crop PDF",
description: "Crop all pages with a uniform margin",
},
"nup-pdf": {
name: "N-up PDF",
description: "Arrange multiple pages per sheet",
},
"booklet-pdf": {
name: "Booklet PDF",
description: "Arrange pages for folding into a booklet",
},
"watermark-pdf": {
name: "Watermark PDF",
description: "Add a text watermark to every page",
},
"pdf-page-numbers": {
name: "PDF Page Numbers",
description: "Add page numbers to every page",
},
"flatten-pdf": {
name: "Flatten PDF",
description: "Bake forms and annotations into page content",
},
"redact-pdf": {
name: "Redact PDF",
description: "Permanently remove text occurrences (verified true redaction)",
},
"pdf-to-text": {
name: "PDF to Text",
description: "Extract plain text from a PDF",
},
"pdf-to-word": {
name: "PDF to Word",
description: "Best for text-based PDFs; scanned pages need OCR",
},
"pdf-metadata": {
name: "PDF Metadata",
description: "Read and write PDF document metadata",
},
"html-to-pdf": {
name: "HTML to PDF",
description: "Convert an HTML file to PDF. Remote resources are disabled for privacy.",
},
"markdown-to-pdf": {
name: "Markdown to PDF",
description:
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy.",
},
"csv-excel": {
name: "CSV to Excel",
description: "Convert between CSV and Excel (XLSX), both directions",
},
"csv-json": {
name: "CSV to JSON",
description: "Convert between CSV and JSON, both directions",
},
"json-xml": {
name: "JSON to XML",
description: "Convert between JSON and XML, both directions",
},
"split-csv": {
name: "Split CSV",
description: "Split a CSV into smaller files by row count",
},
pipeline: {
name: "Pipeline Builder",
description: "Rangkai beberapa alat menjadi alur kerja",
},
processing: { canceled: "Processing canceled" },
mediaPlayer: {
unsupported: "Your browser does not support this media format.",
},
documentView: {
loadFailed: "Failed to load document.",
previousPage: "Previous page",
nextPage: "Next page",
},
},
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: "Content-Aware",
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",
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: "Headline",
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: "Tint",
tintHint: "hijau / magenta",
hue: "Hue",
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: "Output Format",
edgeSmoothing: "Edge Smoothing",
edgeSmoothingOff: "Off",
edgeSmoothingLight: "Light",
edgeSmoothingMedium: "Medium",
edgeSmoothingStrong: "Strong",
colorDecontamination: "Color Decontamination",
rendering: "Merender...",
submit: "Hapus Latar Belakang",
submitBatch: "Hapus Latar Belakang ({count} file)",
progressLabel: "Menghapus latar belakang",
},
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": {
brushSize: "Ukuran Kuas",
fine: "Halus",
wide: "Lebar",
undo: "Undo",
clear: "Hapus",
outputFormat: "Format Output",
quality: "Kualitas",
paintHint: "Cat di atas 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:
"Secara otomatis meluruskan, meningkatkan kontras, menghapus noise, dan memperbesar gambar sebelum pemindaian untuk akurasi yang lebih baik.",
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",
},
"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: "Attention",
entropy: "Entropy",
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: "Framing",
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: "Deep Enhance (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: "Overexposed",
issueLowContrast: "Kontras Datar",
issueColorCast: "Color Cast",
issueDesaturated: "Desaturated",
issueSoftFocus: "Fokus Lembut",
issueNoisy: "Noisy",
submit: "Tingkatkan",
submitDeep: "Deep Enhance",
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: "Natural",
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.",
},
"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",
},
"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: "Download",
defaultText: "Your Text Here",
},
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: "Read Info",
reading: "Reading...",
channelStats: "Channel Stats",
yes: "Yes",
no: "No",
na: "N/A",
failedToRead: "Failed to read 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: "HTML File",
htmlFile: "HTML File",
url: "URL",
urlPlaceholder: "https://snapotter.com",
format: "Output Format",
quality: "Quality",
devicePreset: "Device",
viewportWidth: "Width",
viewportHeight: "Height",
fullPage: "Full Page",
submit: "Capture",
download: "Download Screenshot",
capturing: "Capturing webpage...",
errorTimeout: "Page took too long to load",
errorBlocked: "This URL cannot be captured",
errorUnavailable: "Screenshot service is not available",
errorFailed: "Failed to capture the page",
placeholder: "Enter a URL and click Capture",
presets: {
desktop: "Desktop",
tablet: "Tablet",
mobile: "Mobile",
custom: "Custom",
},
},
"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: "Template",
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: "Grid",
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: "Border",
cornerRadius: "Radius Sudut",
backgroundColor: "Warna Latar",
outputFormat: "Format Output",
quality: "Kualitas",
submit: "Jahit Gambar",
},
split: {
modeGrid: "Grid",
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",
},
"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()",
},
"enhance-faces-standalone": {
model: "Model",
fast: "Cepat",
balanced: "Seimbang",
best: "Terbaik",
},
"convert-video": {
format: "Output format",
quality: "Quality",
high: "High",
balanced: "Balanced",
small: "Smallest",
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"compress-video": {
quality: "Compression",
light: "Light",
balanced: "Balanced",
strong: "Strong",
resolution: "Resolution",
original: "Original",
submit: "Compress",
submitBatch: "Compress ({count} files)",
progressLabel: "Compressing",
},
"trim-video": {
start: "Start (seconds)",
end: "End (seconds)",
precise: "Frame-accurate (re-encodes)",
submit: "Trim",
submitBatch: "Trim ({count} files)",
progressLabel: "Trimming",
},
"mute-video": {
submit: "Remove audio",
submitBatch: "Remove audio ({count} files)",
progressLabel: "Muting",
},
"video-to-gif": {
fps: "Frames per second",
width: "Width (px)",
start: "Start (seconds)",
duration: "Duration (seconds)",
submit: "Create GIF",
submitBatch: "Create GIFs ({count} files)",
progressLabel: "Creating GIF",
},
"convert-audio": {
format: "Output format",
bitrate: "Bitrate (kbps)",
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"trim-audio": {
start: "Start (seconds)",
end: "End (seconds)",
submit: "Trim",
submitBatch: "Trim ({count} files)",
progressLabel: "Trimming",
},
"extract-audio": {
format: "Output format",
submit: "Extract",
submitBatch: "Extract ({count} files)",
progressLabel: "Extracting",
},
"merge-pdf": {
addFiles: "Add PDFs to merge",
needTwo: "At least two PDFs are required",
orderHint: "{count} PDFs will merge in this order",
submit: "Merge",
submitBatch: "Merge ({count} files)",
progressLabel: "Merging",
},
"split-pdf": {
mode: "Split mode",
range: "Page range",
rangeHint: "e.g. 1-3, 5, 7-z",
everyN: "Pages per part",
submit: "Split",
submitBatch: "Split ({count} files)",
progressLabel: "Splitting",
},
"compress-pdf": {
preset: "Quality preset",
screen: "Screen (smallest)",
ebook: "Ebook (balanced)",
printer: "Printer (best quality)",
submit: "Compress",
submitBatch: "Compress ({count} files)",
progressLabel: "Compressing",
},
"rotate-pdf": {
angle: "Rotation angle",
range: "Page range",
rangeHint: "e.g. 1-3, 5, 1-z (all pages)",
submit: "Rotate",
submitBatch: "Rotate ({count} files)",
progressLabel: "Rotating",
},
"word-to-pdf": {
submit: "Convert to PDF",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"extract-pages": {
range: "Page range",
rangeHint: "e.g. 1-3, 5, 7-z",
submit: "Extract",
submitBatch: "Extract ({count} files)",
progressLabel: "Extracting",
},
"remove-pages": {
pages: "Pages to remove",
pagesHint: "e.g. 2, 4-6, z (last page)",
submit: "Remove",
submitBatch: "Remove ({count} files)",
progressLabel: "Removing",
},
"organize-pdf": {
order: "Page order",
orderHint: "e.g. 3,1,2 or 1-z (identity)",
submit: "Reorder",
submitBatch: "Reorder ({count} files)",
progressLabel: "Reordering",
},
"protect-pdf": {
userPassword: "User password",
ownerPassword: "Owner password (optional)",
ownerPasswordHint: "Defaults to user password if empty",
submit: "Protect",
submitBatch: "Protect ({count} files)",
progressLabel: "Encrypting",
},
"unlock-pdf": {
password: "Password",
submit: "Unlock",
submitBatch: "Unlock ({count} files)",
progressLabel: "Decrypting",
},
"repair-pdf": {
submit: "Repair",
submitBatch: "Repair ({count} files)",
progressLabel: "Repairing",
},
"linearize-pdf": {
submit: "Optimize",
submitBatch: "Optimize ({count} files)",
progressLabel: "Linearizing",
},
"grayscale-pdf": {
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"pdfa-convert": {
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"crop-pdf": {
margin: "Margin (points)",
submit: "Crop",
submitBatch: "Crop ({count} files)",
progressLabel: "Cropping",
},
"nup-pdf": {
perSheet: "Pages per sheet",
submit: "Arrange",
submitBatch: "Arrange ({count} files)",
progressLabel: "Arranging",
},
"booklet-pdf": {
perSheet: "Pages per sheet",
submit: "Create Booklet",
submitBatch: "Create Booklet ({count} files)",
progressLabel: "Creating booklet",
},
"watermark-pdf": {
text: "Watermark text",
position: "Position",
fontSize: "Font size",
opacity: "Opacity",
rotation: "Rotation",
submit: "Watermark",
submitBatch: "Watermark ({count} files)",
progressLabel: "Watermarking",
},
"pdf-page-numbers": {
position: "Position",
fontSize: "Font size",
submit: "Add Numbers",
submitBatch: "Add Numbers ({count} files)",
progressLabel: "Numbering",
},
"flatten-pdf": {
submit: "Flatten",
submitBatch: "Flatten ({count} files)",
progressLabel: "Flattening",
},
"redact-pdf": {
terms: "Terms to redact",
termsHint: "One term per line (max 50)",
caseSensitive: "Case sensitive",
submit: "Redact",
submitBatch: "Redact ({count} files)",
progressLabel: "Redacting",
},
"pdf-to-text": {
submit: "Extract Text",
submitBatch: "Extract Text ({count} files)",
progressLabel: "Extracting",
},
"pdf-to-word": {
hint: "Best for text-based PDFs; scanned pages need OCR",
submit: "Convert to Word",
submitBatch: "Convert to Word ({count} files)",
progressLabel: "Converting",
},
"pdf-metadata": {
title: "Title",
author: "Author",
subject: "Subject",
keywords: "Keywords",
submit: "Set Metadata",
submitBatch: "Set Metadata ({count} files)",
progressLabel: "Setting metadata",
},
"html-to-pdf": {
hint: "Remote resources are disabled for privacy.",
submit: "Convert to PDF",
submitBatch: "Convert to PDF ({count} files)",
progressLabel: "Converting",
},
"markdown-to-pdf": {
hint: "Remote resources are disabled for privacy.",
submit: "Convert to PDF",
submitBatch: "Convert to PDF ({count} files)",
progressLabel: "Converting",
},
"csv-excel": {
sheet: "Worksheet number",
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"csv-json": {
pretty: "Pretty print",
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"json-xml": {
pretty: "Pretty print",
submit: "Convert",
submitBatch: "Convert ({count} files)",
progressLabel: "Converting",
},
"split-csv": {
rowsPerFile: "Rows per file",
keepHeader: "Keep header in each file",
submit: "Split",
submitBatch: "Split ({count} files)",
progressLabel: "Splitting",
},
},
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",
},
homePage: {
generatingPreview: "Membuat pratinjau...",
loadingPreview: "Memuat pratinjau...",
changeFile: "Ganti file",
quickActions: "Aksi Cepat",
allTools: "Semua Alat",
},
fullscreenGrid: {
searchPlaceholder: "Cari alat...",
hideDetails: "Sembunyikan Detail",
showDetails: "Tampilkan Detail",
switchToSidebar: "Beralih ke tampilan sidebar",
sidebarButton: "Sidebar",
noToolsFound: "Tidak ada alat ditemukan",
tryDifferent: "Coba kata pencarian yang berbeda",
},
editor: {
menu: {
file: {
label: "File",
new: "Baru",
open: "Buka",
save: "Simpan",
exportAs: "Ekspor Sebagai...",
quickExportPng: "Ekspor Cepat PNG",
close: "Tutup",
},
edit: {
label: "Edit",
undo: "Undo",
redo: "Redo",
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: "Trim",
adjustments: {
label: "Penyesuaian",
brightnessContrast: "Kecerahan/Kontras",
hueSaturation: "Hue/Saturasi",
colorBalance: "Keseimbangan Warna",
levels: "Levels",
curves: "Curves",
},
},
layer: {
label: "Layer",
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: "Blur",
gaussian: "Gaussian Blur",
motion: "Motion Blur",
radial: "Radial Blur",
surface: "Surface Blur",
},
sharpen: {
label: "Pertajam",
sharpen: "Pertajam",
unsharpMask: "Unsharp Mask",
},
noise: {
label: "Noise",
addNoise: "Tambah Noise",
reduceNoise: "Kurangi Noise",
},
pixelate: {
label: "Pixelate",
pixelate: "Pixelate",
mosaic: "Mosaik",
},
stylize: {
label: "Stilisasi",
emboss: "Emboss",
solarize: "Solarize",
posterize: "Posterize",
},
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: "Grid",
guides: "Panduan",
snap: "Snap",
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: "Shape",
fill: "Fill",
stroke: "Stroke",
strokeWidth: "Width",
cornerRadius: "Radius",
sides: "Sides",
points: "Points",
dashStyle: "Dash",
solid: "Solid",
dashed: "Dashed",
dotted: "Dotted",
none: "None",
opacity: "Opacity",
rectangle: "Rectangle",
ellipse: "Ellipse",
line: "Line",
arrow: "Arrow",
polygon: "Polygon",
star: "Star",
},
},
settings: {
heading: "Pengaturan",
nav: {
general: "Umum",
systemSettings: "Pengaturan Sistem",
security: "Keamanan",
people: "Anggota",
teams: "Tim",
roles: "Peran",
auditLog: "Log Audit",
usage: "Usage",
apiKeys: "Kunci API",
aiFeatures: "Fitur AI",
tools: "Alat",
productAnalytics: "Analitik Produk",
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: "Sidebar",
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: "Download Support Bundle",
supportBundleDescription:
"Download a diagnostic zip with redacted config, logs, and job data for troubleshooting.",
supportBundleFailed: "Failed to download support bundle.",
},
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.",
},
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: "Editor",
roleAdminOption: "Admin",
roleUserDescription: "Akses alat dasar",
roleEditorDescription: "Semua file & pipeline",
roleAdminDescription: "Akses penuh",
noDescription: "Tidak ada deskripsi",
defaultTeamOption: "Default",
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: "Edit {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",
},
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: "Target",
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: "Usage",
description: "Local usage statistics from jobs and file storage.",
periodLabel: "Period",
days7: "7 days",
days30: "30 days",
days90: "90 days",
jobsPerDayHeading: "Jobs per day",
topToolsHeading: "Top tools",
perUserHeading: "Per-user volume",
durationsHeading: "Duration percentiles",
noData: "No data for this period.",
dayColumn: "Day",
totalColumn: "Total",
completedColumn: "Completed",
failedColumn: "Failed",
toolColumn: "Tool",
runsColumn: "Runs",
userColumn: "User",
bytesInColumn: "Bytes in",
poolColumn: "Pool",
p50Column: "p50",
p95Column: "p95",
storageHeading: "Library storage",
storageFiles: "{count} files",
unknownUser: "(unknown)",
},
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",
},
analytics: {
heading: "Analitik Produk",
description: "Bagikan data penggunaan anonim untuk membantu meningkatkan SnapOtter.",
privacyNote: "Gambar Anda tidak pernah meninggalkan mesin Anda.",
disabledByAdmin: "Analitik produk telah dinonaktifkan oleh administrator server.",
enabledLabel: "Analitik aktif",
disabledLabel: "Analitik nonaktif",
learnMore: "Pelajari lebih lanjut",
},
aiFeatures: {
title: "AI Features",
description: "Manage AI model bundles for advanced image processing.",
installAll: "Install All",
diskUsage: "Disk usage:",
installed: "Installed",
notInstalled: "Not installed",
queued: "Queued",
install: "Install",
repair: "Repair",
uninstall: "Uninstall",
installing: "Installing...",
importBundle: "Import Bundle",
importDescription: "Upload a .tar.gz bundle archive exported from another installation.",
importButton: "Import from file",
importing: "Importing...",
importSuccess: "Bundle imported successfully.",
importError: "Bundle import failed: {error}",
},
about: {
heading: "Tentang",
appName: "SnapOtter",
appDescription:
"Suite pemrosesan gambar self-hosted yang mengutamakan privasi dengan 70+ alat. Ubah ukuran, kompres, konversi, tambahkan watermark, dan otomasi alur kerja gambar Anda tanpa mengirim data ke cloud.",
versionLabel: "Versi:",
linksHeading: "Tautan",
githubLink: "Repositori GitHub",
docsLink: "Dokumentasi",
apiRefLink: "Referensi API (Swagger)",
licenseLabel: "License:",
licenseDescription:
"SnapOtter is open-source software licensed under the 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.",
passwordManagedByProvider: "Perubahan kata sandi dikelola oleh penyedia identitas Anda.",
enterUsername: "Masukkan nama pengguna",
enterPassword: "Masukkan kata sandi Anda",
heroTitle: "Gambar Anda. Milik Anda.",
heroSubtitle: "Semua alat gambar 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.",
"70+ alat pemrosesan gambar.",
"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 gambar 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",
importButton: "Impor",
noSavedPipelines: "Tidak ada Pipeline tersimpan",
stepCount: "({count} langkah)",
stepCountPlural: "({count} langkah)",
exportPipeline: "Ekspor Pipeline",
deletePipeline: "Hapus Pipeline",
moreCount: "+{count} lainnya",
pipelineBuilder: "Pipeline Builder",
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: "No steps yet",
searchToolsPlaceholder: "Search tools...",
step: "Langkah",
},
nav: {
tools: "Alat",
reader: "Pembaca",
automate: "Otomasi",
editor: "Editor",
files: "File",
help: "Bantuan",
settings: "Pengaturan",
grid: "Grid",
},
files: {
myFiles: "My Files",
recentTab: "Recent",
uploadTab: "Upload Files",
fileDetailsAriaLabel: "File Details",
fileDetailsHeading: "File Details",
searchPlaceholder: "Search files...",
selectedCount: "{count} selected",
fileCount: "{count} files",
fileCountSingular: "{count} file",
noFilesFound: "No files found",
selectFilePrompt: "Select a file to view details",
openFile: "Open File",
openInPipeline: "Open in Pipeline",
name: "Name",
format: "Format",
size: "Size",
dimensions: "Dimensions",
version: "Version",
toolsUsed: "Tools Used",
none: "None",
delete: "Delete",
pipeline: "Pipeline",
download: "Download",
},
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: "klik untuk menjelajah, atau tempel dari clipboard",
uploadButton: "Unggah",
defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD, dan 65+ format",
orSeparator: "atau",
urlPlaceholder: "Tempel URL gambar...",
urlLoadingIndicator: "...",
addUrlButton: "Tambah",
importMultipleUrls: "Impor beberapa URL...",
filesSelected: "{count} file dipilih",
},
reviewPanel: {
processedResultAlt: "Hasil yang diproses",
sizeLabel: "Ukuran: {size}",
typeLabel: "Jenis: {type}",
processedLabel: "Diproses: {time}",
undoButton: "Undo",
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: "Repair Required",
repairDescription: "Some model files are missing or corrupted. Repair will re-download them.",
repairButton: "Repair {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...",
"Gambar 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 foto 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 gambar 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",
},
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",
},
analytics: {
consentTitle: "Bantu tingkatkan SnapOtter",
consentDescription:
"Statistik penggunaan anonim membantu kami memperbaiki bug dan membangun alat yang benar-benar Anda butuhkan. Gambar dan file Anda tetap di mesin Anda.",
consentChangeable: "Anda dapat menonaktifkan ini kapan saja di Pengaturan.",
acceptButton: "Tentu, kedengarannya bagus",
declineButton: "Nanti saja",
settingsTitle: "Analitik Produk",
settingsDescription: "Bagikan data penggunaan anonim untuk membantu meningkatkan SnapOtter.",
settingsPrivacy: "Gambar Anda tidak pernah meninggalkan mesin Anda.",
settingsDisabledByAdmin: "Analitik produk telah dinonaktifkan oleh administrator server.",
learnMore: "Pelajari lebih lanjut",
},
sidebar: {
tools: "Alat",
grid: "Grid",
automate: "Otomasi",
editor: "Editor",
files: "File",
help: "Bantuan",
settings: "Pengaturan",
},
toolCard: {
addToFavourites: "Tambah ke favorit",
},
appLayout: {
mobileNavTools: "Alat",
mobileNavAutomate: "Otomasi",
mobileNavEditor: "Editor",
mobileNavFiles: "File",
mobileNavSettings: "Pengaturan",
},
a11y: {
skipToContent: "Skip to main content",
openSidebar: "Open sidebar",
closeSidebar: "Close sidebar",
closeSettings: "Close settings",
closeHelp: "Close help",
closeDialog: "Close dialog",
zoomIn: "Zoom in",
zoomOut: "Zoom out",
fitToView: "Fit to view",
actualSize: "Actual size",
previousImage: "Previous image",
nextImage: "Next image",
imageArea: "Image area",
imageViewer: "Image viewer",
fileDropZone: "File drop zone",
imageDropZone: "Image drop zone",
beforeAfterSlider: "Before/after comparison slider",
imageControls: "Image controls",
zoomControls: "Zoom controls",
dragToReorder: "Drag to reorder",
whiteBackground: "White background",
blackBackground: "Black background",
expandPanel: "Expand panel",
collapsePanel: "Collapse panel",
swapDimensions: "Swap dimensions",
applyCrop: "Apply crop",
cancelCrop: "Cancel crop",
fontFamily: "Font family",
textColor: "Text color",
flipHorizontal: "Flip horizontal",
flipVertical: "Flip vertical",
hexColorValue: "Hex color value",
backgroundColor: "Background color",
foregroundColor: "Foreground color",
swapColors: "Swap foreground and background colors",
resetColors: "Reset to default black and white",
foregroundHex: "Foreground color hex value",
undo: "Undo",
redo: "Redo",
layers: "Layers",
addLayer: "Add layer",
deleteLayer: "Delete layer",
cancelOperation: "Cancel operation",
fill: "Fill",
fileDetails: "File details",
language: "Language",
selected: "Selected",
deleteKey: "Delete key",
editRole: "Edit role",
deleteRole: "Delete role",
notInstalled: "Not installed",
queued: "Queued for install",
installing: "Installing",
imageNOfTotal: "Image {n} of {total}",
processingComplete: "Image processed successfully",
processingFailed: "Processing failed",
settingsDialog: "Settings",
helpDialog: "Help",
navigationMenu: "Navigation",
},
} as const;