diff --git a/README.md b/README.md index 05b05381..10e37143 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,7 @@ This repository, including all its contents, sub-projects, modules, and componen - [Italian / Italiano](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.it.md) - [Japanese / 日本語](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.jp.md) - [Korean / 한국어](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ko.md) +- [Malay / Bahasa Malaysia](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.my.md) - [Malayalam / മലയാളം](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ml.md) - [Polish / Polski](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pl.md) - [Portuguese / Português](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pt.md) diff --git a/doc/i18n/README.my.md b/doc/i18n/README.my.md new file mode 100644 index 00000000..769ab090 --- /dev/null +++ b/doc/i18n/README.my.md @@ -0,0 +1,127 @@ +

Puter.com, The Personal Cloud Computer: Semua fail, apl, dan permainan anda di satu tempat yang boleh diakses dari mana sahaja pada bila-bila masa.

+ +

Sistem Operasi Internet! Percuma, Sumber Terbuka, dan Boleh Dihoskan Sendiri.

+ +

+ Saiz repo GitHub Terbitan GitHub Lesen GitHub +

+

+ « DEMO SECARA LANGSUNG » +
+
+ Puter.com + · + SDK + · + Discord + · + Reddit + · + X (Twitter) +

+ +

screenshot

+ +
+ +## Puter + +Puter ialah sistem operasi internet sumber terbuka yang maju dan direka untuk kaya dengan ciri kefungsian, kepantasan luar biasa dan kebolehluasan yang tinggi. Puter boleh digunakan sebagai: + +- Storan awan peribadi yang mendahulukan privasi untuk menyimpan semua fail, aplikasi dan permainan anda di satu tempat yang selamat dan boleh diakses dari mana sahaja pada bila-bila masa. +- Platform untuk membina dan menerbitkan laman web, aplikasi web dan permainan. +- Alternatif kepada Dropbox, Google Drive, OneDrive, dan lain-lain dengan antara muka yang baharu dan ciri kefungsian berkuasa tinggi. +- Persekitaran desktop awan untuk server dan stesen kerja. +- Projek dan komuniti sumber terbuka yang mesra untuk mempelajari pembangunan laman web, pengkomputeran awan, sistem teragih, dan banyak lagi! + +
+ +## Mulakan + + +### 💻 Pembangunan Lokal + +```bash +git clone https://github.com/HeyPuter/puter +cd puter +npm install +npm start +``` + +Ini akan melancarkan Puter di http://puter.localhost:4100 (atau port seterusnya yang tersedia). + +
+ +### 🐳 Docker + + +```bash +mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter +``` + +
+ + +### 🐙 Docker Compose + + +#### Linux/macOS +```bash +mkdir -p puter/config puter/data +sudo chown -R 1000:1000 puter +wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml +docker compose up +``` +
+ +### Windows + + +```powershell +mkdir -p puter +cd puter +New-Item -Path "puter\config" -ItemType Directory -Force +New-Item -Path "puter\data" -ItemType Directory -Force +Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml" +docker compose up +``` +
+ +### ☁️ Puter.com + +Puter tersedia sebagai perkhidmatan terhos di [**puter.com**](https://puter.com). + +
+ +## Keperluan Sistem + +- **Sistem Operasi:** Linux, macOS, Windows +- **RAM:** Minimum 2GB (sebaiknya 4GB) +- **Ruang Storan:** 1GB ruang kosong +- **Node.js:** Versi 16+ (sebaiknya Versi 22+) +- **npm:** Versi stabil yang terkini + +
+ +## Sokongan + +Berhubung dengan penyelenggara dan komuniti melalui saluran berikut: + +- Laporan pepijat atau permintaan ciri? Sila [buka isu baharu](https://github.com/HeyPuter/puter/issues/new/choose). +- Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u) +- X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter) +- Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/) +- Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter) +- Isu keselamatan? [security@puter.com](mailto:security@puter.com) +- Emel penyelenggara melalui [hi@puter.com](mailto:hi@puter.com) + +Kami sentiasa gembira untuk membantu anda dengan apa-apa soalan. Jangan takut untuk bertanya! + +
+ + +## Lesen + +Repositori ini, termasuklah kandungannya, subprojek, modul dan komponen, dilesenkan di bawah [AGPL-3.0](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) melainkan dinyatakan sebaliknya. *Library* pihak ketiga yang terkandung dalam repositori ini tertakluk kepada lesen mereka sendiri. + +
diff --git a/src/gui/src/i18n/translations/my.js b/src/gui/src/i18n/translations/my.js new file mode 100644 index 00000000..11712833 --- /dev/null +++ b/src/gui/src/i18n/translations/my.js @@ -0,0 +1,521 @@ +/** + * Copyright (C) 2024-present Puter Technologies Inc. + * + * This file is part of Puter. + * + * Puter is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +/** + * Translation notes: + * - "default", "authenticator" and "worker" are kept unchanged as it is more commonly used in Tech context compared to its Malay translations. + * - plural_suffix: 's' has no direct translation to Malay. In Malay, we may pronounce plural form by reduplication. For instance, "files" (English) may be translated to as "fail-fail" (Malay). + * - In certain cases, reduplication is not used based on the context. + */ + +const my = { + name: 'Bahasa Malaysia', + english_name: 'Malay', + code: 'my', + dictionary: { + about: 'Tentang', + account: 'Akaun', + account_password: 'Sahkan Kata Laluan Akaun', + access_granted_to: 'Akses Diberikan Kepada', + add_existing_account: 'Tambah Akaun Sedia Ada', + all_fields_required: 'Semua medan diperlukan.', + allow: 'Benarkan', + apply: 'Tetapkan', + ascending: 'Menaik', + associated_websites: 'Laman Web Berkaitan', + auto_arrange: 'Susunan Automatik', + background: 'Latar Belakang', + browse: 'Carian', + cancel: 'Batal', + center: 'Tengah', + change: 'Ubah', + change_desktop_background: 'Tukar latar belakang desktop…', + change_email: 'Tukar Emel', + change_language: 'Tukar Bahasa', + change_password: 'Tukar Kata Laluan', + change_ui_colors: 'Tukar Warna UI', + change_username: 'Tukar Nama Pengguna', + clock_visibility: 'Keterlihatan Jam', + close: 'Tutup', + close_all_windows: 'Tutup Semua Tetingkap', + close_all_windows_confirm: 'Adakah anda yakin mahu menutup semua tetingkap?', + close_all_windows_and_log_out: 'Tutup Tetingkap dan Keluar', + change_always_open_with: 'Adakah anda mahu sentiasa membuka jenis fail ini dengan', + color: 'Warna', + confirm: 'Sahkan', + // Note: `authenticator` is taken directly from the English language as it is more commonly used than its direct Malay translation `pengesahan` + confirm_2fa_setup: 'Saya telah menambah kod ke aplikasi authenticator saya', + confirm_2fa_recovery: 'Saya telah menyimpan kod pemulihan saya di lokasi yang selamat', + confirm_account_for_free_referral_storage_c2a: + 'Cipta akaun dan sahkan alamat emel anda untuk menerima 1 GB storan percuma. Rakan anda juga akan menerima 1 GB storan percuma.', + confirm_code_generic_incorrect: 'Kod Salah.', + confirm_code_generic_too_many_requests: + 'Terlalu banyak permintaan. Sila tunggu beberapa minit.', + confirm_code_generic_submit: 'Hantar Kod', + confirm_code_generic_try_again: 'Cuba Lagi', + confirm_code_generic_title: 'Masukkan Kod Pengesahan', + confirm_code_2fa_instruction: + 'Masukkan kod 6 digit daripada aplikasi authenticator anda.', + confirm_code_2fa_submit_btn: 'Hantar', + confirm_code_2fa_title: 'Masukkan Kod 2FA', + confirm_delete_multiple_items: + 'Adakah anda yakin mahu menghapuskan item-item ini buat selamanya?', + confirm_delete_single_item: 'Adakah anda mahu menghapuskan item ini buat selamanya?', + confirm_open_apps_log_out: + 'Anda memiliki aplikasi yang terbuka. Adakah anda yakin mahu keluar?', + confirm_new_password: 'Sahkan Kata Laluan Baharu', + confirm_delete_user: + 'Adakah anda yakin mahu menghapuskan akaun anda? Semua fail dan data anda akan dihapuskan buat selamanya. Tindakan ini tidak dapat dibatalkan.', + confirm_delete_user_title: 'Hapus Akaun?', + confirm_session_revoke: 'Adakah anda yakin mahu menamatkan sesi ini?', + confirm_your_email_address: 'Sahkan Alamat Emel Anda', + choose_publishing_option: 'Pilih cara untuk menerbitkan laman web anda:', + contact_us: 'Hubungi Kami', + contact_us_verification_required: + 'Anda perlu memiliki alamat emel yang sah untuk menggunakan ini.', + contain: 'Mengandungi', + continue: 'Teruskan', + copy: 'Salin', + copy_link: 'Salin Pautan', + copying: 'Menyalin', + copying_file: 'Menyalin %%', + cover: 'Pemuka', + create_account: 'Cipta Akaun', + create_free_account: 'Cipta Akaun Percuma', + create_desktop_shortcut: 'Buat Pintasan (Desktop)', + create_desktop_shortcut_s: 'Buat Pintasan (Desktop)', + create_shortcut: 'Buat Pintasan', + create_shortcut_s: 'Buat Pintasan', + credits: 'Kredit', + current_password: 'Kata Laluan Terkini', + cut: 'Potong', + clock: 'Jam', + clock_visible_hide: 'Sorok - Sentiasa tersembunyi', + clock_visible_show: 'Tunjuk - Sentiasa dilihat', + clock_visible_auto: 'Auto - Default, dilihat dalam mod skrin penuh sahaja.', + close_all: 'Tutup Semua', + created: 'Dibuat', + date_modified: 'Tarikh diubah suai', + default: 'Default', + delete: 'Hapus', + delete_account: 'Hapus Akaun', + delete_permanently: 'Hapus Buat Selamanya', + deleting_file: 'Menghapuskan %%', + deploy_as_app: 'Jalankan sebagai aplikasi', + descending: 'Menurun', + desktop: 'Desktop', + desktop_background_fit: 'Suaikan', + developers: 'Pembangun', + dir_published_as_website: '%strong% telah diterbitkan di:', + disable_2fa: 'Menyahaktifkan 2FA', + disable_2fa_confirm: 'Adakah anda yakin mahu menyahaktifkan 2FA?', + disable_2fa_instructions: 'Masukkan kata laluan anda untuk menyahaktifkan 2FA.', + disassociate_dir: 'Pisahkan Direktori', + documents: 'Dokumen', + dont_allow: 'Tidak Izinkan', + download: 'Muat Naik', + download_file: 'Muat Naik Fail', + downloading: 'Memuat Naik', + email: 'Emel', + email_change_confirmation_sent: + 'Emel pengesahan telah dihantar ke alamat emel baharu anda. Sila semak peti emel anda dan ikut arahan terbabit bagi menyelesaikan proses ini.', + email_invalid: 'Emel tidak sah.', + email_or_username: 'Emel atau Nama Pengguna', + email_required: 'Emel diperlukan.', + empty_trash: 'Kosongkan Bakul Sampah', + empty_trash_confirmation: 'Adakah anda yakin mahu menghapuskan item-item di dalam Bakul Sampah buat selamanya?', + emptying_trash: 'Mengosongkan Bakul Sampah…', + enable_2fa: 'Aktifkan 2FA', + end_hard: 'Hentikan Secara Paksa', + end_process_force_confirm: 'Adakah anda yakin mahu menghentikan proses ini secara paksaan?', + end_soft: 'Hentikan Secara Lembut', + enlarged_qr_code: 'Kod QR Dibesarkan', + enter_password_to_confirm_delete_user: 'Masukkan kata laluan anda untuk mengesahkan penghapusan akaun', + error_message_is_missing: 'Mesej ralat tiada.', + error_unknown_cause: 'Ralat tidak diketahui telah berlaku.', + error_uploading_files: 'Gagal memuat naik fail', + favorites: 'Kegemaran', + feedback: 'Maklum Balas', + feedback_c2a: 'Sila gunakan borang di bawah untuk menghantar maklum balas, komen dan laporan ralat kepada kami.', + feedback_sent_confirmation: 'Terima kasih kerana menghubungi kami. Jika anda mempunyai emel yang dikaitkan dengan akaun anda, anda akan mendengar daripada kami secepat mungkin.', + fit: 'Suaikan', + folder: 'Folder', + force_quit: 'Keluar Paksa', + forgot_pass_c2a: 'Lupa kata laluan?', + from: 'Dari', + general: 'Umum', + get_a_copy_of_on_puter: 'Dapatkan salinan \'%%\' di Puter.com!', + get_copy_link: 'Dapatkan Salinan Pautan', + hide_all_windows: 'Sorok Semua Tetingkap', + home: 'Laman Utama', + html_document: 'Dokumen HTML', + hue: 'Hue', + image: 'Imej', + incorrect_password: 'Kata laluan salah', + invite_link: 'Pautan Jemputan', + item: 'item', + items_in_trash_cannot_be_renamed: 'Item ini tidak boleh dinamakan semula kerana berada dalam tong sampah. Untuk menamakan semula item ini, tariknya keluar dari Tong Sampah terlebih dahulu.', + jpeg_image: 'Imej JPEG', + keep_in_taskbar: 'Kekal dalam Bar Tugas', + language: 'Bahasa', + license: 'Lesen', + lightness: 'Kecerahan', + link_copied: 'Pautan disalin', + loading: 'Memuatkan', + log_in: 'Log Masuk', + log_into_another_account_anyway: 'Log masuk ke akaun lain juga', + log_out: 'Log Keluar', + looks_good: 'Nampak baik!', + manage_sessions: 'Urus Sesi', + modified: 'Diubah suai', + move: 'Pindah', + moving_file: 'Memindahkan %%', + my_websites: 'Laman Web Saya', + minimize: 'Minimumkan', + reload_app: 'Muat Semula Aplikasi', + name: 'Nama', + name_cannot_be_empty: 'Nama tidak boleh kosong.', + name_cannot_contain_double_period: 'Nama tidak boleh mengandungi huruf \'..\'.', + name_cannot_contain_period: 'Nama tidak boleh mengandungi huruf \'.\'.', + name_cannot_contain_slash: 'Nama tidak boleh mengandungi huruf \'/\'.', + name_must_be_string: 'Nama hanya boleh menjadi rentetan huruf.', + name_too_long: 'Nama tidak boleh lebih panjang daripada %% huruf.', + new: 'Baru', + new_email: 'Emel Baru', + new_folder: 'Folder baru', + new_password: 'Kata Laluan Baru', + new_username: 'Nama Pengguna Baru', + no: 'Tidak', + no_dir_associated_with_site: 'Tiada direktori yang dikaitkan dengan alamat ini.', + no_websites_published: 'Anda belum menerbitkan sebarang laman web lagi. Klik kanan pada folder untuk bermula.', + ok: 'OK', + open: 'Buka', + new_window: 'Tetingkap Baru', + open_in_new_tab: 'Buka dalam Tab Baru', + open_in_new_window: 'Buka dalam Tetingkap Baru', + open_trash: 'Buka Tong Sampah', + open_with: 'Buka Dengan', + original_name: 'Nama Asal', + original_path: 'Laluan Asal', + oss_code_and_content: 'Perisian dan Kandungan Sumber Terbuka', + password: 'Kata Laluan', + password_changed: 'Kata laluan ditukar.', + password_recovery_rate_limit: 'Anda telah mencapai had kadar kami; sila tunggu beberapa minit. Untuk mengelakkan hal ini pada masa hadapan, elakkan memuat semula halaman terlalu banyak kali.', + password_recovery_token_invalid: 'Token pemulihan kata laluan ini tidak lagi sah.', + password_recovery_unknown_error: 'Ralat tidak diketahui telah berlaku. Sila cuba sebentar lagi.', + password_required: 'Kata laluan diperlukan.', + password_strength_error: 'Kata laluan mesti mengandungi sekurang-kurangnya 8 huruf dan mengandungi sekurang-kurangnya satu huruf besar, satu huruf kecil, satu nombor dan satu aksara khas.', + passwords_do_not_match: '`Kata Laluan Baru` dan `Sahkan Kata Laluan Baru` tidak sepadan.', + paste: 'Tampal', + paste_into_folder: 'Tampal Ke Dalam Folder', + path: 'Laluan', + personalization: 'Pemperibadian', + pick_name_for_website: 'Pilih nama laman web anda:', + pick_name_for_worker: 'Pilih nama worker anda:', + picture: 'Gambar', + pictures: 'Gambar', + plural_suffix: 's', + powered_by_puter_js: 'Dikuasakan oleh {{link=docs}}Puter.js{{/link}}', + preparing: 'Menyediakan...', + preparing_for_upload: 'Menyediakan untuk muat naik...', + print: 'Cetak', + privacy: 'Privasi', + proceed_to_login: 'Teruskan untuk log masuk', + proceed_with_account_deletion: 'Teruskan dengan Penghapusan Akaun', + process_status_initializing: 'Memulakan', + process_status_running: 'Berjalan', + process_type_app: 'Aplikasi', + process_type_init: 'Permulaan', + process_type_ui: 'UI', + properties: 'Ciri-ciri', + public: 'Publik', + publish: 'Terbitkan', + publish_as_website: 'Terbitkan sebagai laman web', + publish_as_serverless_worker: 'Terbitkan sebagai Worker', + puter_description: 'Puter ialah storan awan peribadi yang mendahulukan privasi untuk menyimpan semua fail, aplikasi dan permainan anda di satu tempat yang selamat, boleh diakses dari mana sahaja dan pada bila-bila masa.', + reading: 'Membaca %strong%', + writing: 'Menulis %strong%', + recent: 'Terkini', + recommended: 'Disyorkan', + recover_password: 'Pulihkan Kata Laluan', + refer_friends_c2a: 'Dapatkan 1 GB untuk setiap rakan yang membuat dan mengesahkan akaun di Puter. Rakan anda juga akan mendapat 1 GB!', + refer_friends_social_media_c2a: 'Dapatkan 1 GB storan percuma di Puter.com!', + refresh: 'Muat Semula', + release_address_confirmation: 'Adakah anda pasti mahu melepaskan alamat ini?', + remove_from_taskbar: 'Keluarkan dari Bar Tugas', + rename: 'Namakan Semula', + repeat: 'Ulang', + replace: 'Ganti', + replace_all: 'Ganti Semua', + resend_confirmation_code: 'Hantar Semula Kod Pengesahan', + reset_colors: 'Set Semula Warna', + restart_puter_confirm: 'Adakah anda pasti mahu memulakan semula Puter?', + restore: 'Pulihkan', + save: 'Simpan', + saturation: 'Ketepuan', + save_account: 'Simpan akaun', + save_account_to_get_copy_link: 'Sila buat akaun untuk meneruskan.', + save_account_to_publish: 'Sila buat akaun untuk meneruskan.', + save_session: 'Simpan sesi', + save_session_c2a: 'Buat akaun untuk menyimpan sesi ini dan mengelakkan kehilangan kerja anda.', + scan_qr_c2a: 'Imbas kod di bawah\nuntuk log masuk ke sesi ini dari peranti lain', + scan_qr_2fa: 'Imbas kod QR dengan aplikasi authenticator anda', + scan_qr_generic: 'Imbas kod QR ini menggunakan telefon atau peranti lain anda', + search: 'Cari', + seconds: 'saat', + security: 'Keselamatan', + select: 'Pilih', + selected: 'dipilih', + select_color: 'Pilih warna…', + sessions: 'Sesi', + send: 'Hantar', + send_password_recovery_email: 'Hantar Emel Pemulihan Kata Laluan', + session_saved: 'Terima kasih kerana membuat akaun. Sesi ini telah disimpan.', + settings: 'Tetapan', + set_new_password: 'Tetapkan Kata Laluan Baru', + share: 'Kongsi', + share_to: 'Kongsi kepada', + share_with: 'Kongsi dengan:', + shortcut_to: 'Pintasan ke', + show_all_windows: 'Tunjukkan Semua Tetingkap', + show_hidden: 'Tunjukkan yang tersembunyi', + sign_in_with_puter: 'Daftar masuk dengan Puter', + sign_up: 'Daftar', + signing_in: 'Mendaftar masuk…', + size: 'Saiz', + skip: 'Langkau', + something_went_wrong: 'Sesuatu telah berlaku.', + sort_by: 'Susun mengikut', + start: 'Mula', + status: 'Status', + storage_usage: 'Penggunaan Storan', + storage_puter_used: 'digunakan oleh Puter', + taking_longer_than_usual: 'Mengambil masa lebih lama daripada biasa. Sila tunggu...', + task_manager: 'Pengurus Tugas', + taskmgr_header_name: 'Nama', + taskmgr_header_status: 'Status', + taskmgr_header_type: 'Jenis', + terms: 'Terma', + text_document: 'Dokumen teks', + 'toolbar.enter_fullscreen': 'Masuk Skrin Penuh', + 'toolbar.github': 'GitHub', + 'toolbar.refer': 'Rujuk', + 'toolbar.save_account': 'Simpan Akaun', + 'toolbar.search': 'Cari', + 'toolbar.qrcode': 'Kod QR', + tos_fineprint: 'Dengan mengklik \'Buat Akaun Percuma\' anda bersetuju dengan {{link=terms}}Terma Perkhidmatan{{/link}} dan {{link=privacy}}Dasar Privasi{{/link}} Puter.', + transparency: 'Ketelusan', + trash: 'Tong Sampah', + two_factor: 'Pengesahan Dua Faktor', + two_factor_disabled: '2FA Dinyahaktifkan', + two_factor_enabled: '2FA Diaktifkan', + type: 'Jenis', + type_confirm_to_delete_account: 'Taip \'sahkan\' untuk memadam akaun anda.', + ui_colors: 'Warna UI', + ui_manage_sessions: 'Pengurus Sesi', + ui_revoke: 'Tarik balik', + undo: 'Buat asal', + unlimited: 'Tidak terhad', + unzip: 'Nyahzip', + unzipping: 'Menyahzip %strong%', + upload: 'Muat naik', + upload_here: 'Muat naik di sini', + used_of: '{{used}} digunakan daripada {{available}}', + usage: 'Penggunaan', + username: 'Nama Pengguna', + username_changed: 'Nama pengguna dikemas kini dengan jayanya.', + username_required: 'Nama pengguna diperlukan.', + versions: 'Versi', + videos: 'Video', + visibility: 'Keterlihatan', + yes: 'Ya', + yes_release_it: 'Ya, Lepaskannya', + you_have_been_referred_to_puter_by_a_friend: 'Anda telah dirujuk ke Puter oleh rakan!', + zip: 'Zip', + sequencing: 'Penyusunan %strong%', + worker: 'Worker', + zipping: 'Menzip %strong%', + + // === 2FA Setup === + setup2fa_1_step_heading: 'Buka aplikasi authenticator anda', + setup2fa_1_instructions: ` + Anda boleh menggunakan sebarang aplikasi authenticator yang menyokong protokol Kata Laluan Sekali Guna Berasaskan Masa (TOTP). + Terdapat banyak untuk dipilih, tetapi jika anda tidak pasti + Authy + adalah pilihan yang kukuh untuk Android dan iOS. + `, + setup2fa_2_step_heading: 'Imbas kod QR', + setup2fa_3_step_heading: 'Masukkan kod 6 digit', + setup2fa_4_step_heading: 'Salin kod pemulihan anda', + setup2fa_4_instructions: ` + Kod pemulihan ini adalah satu-satunya cara untuk mengakses akaun anda jika anda kehilangan telefon atau tidak boleh menggunakan aplikasi authenticator anda. + Pastikan anda menyimpannya di tempat yang selamat. + `, + setup2fa_5_step_heading: 'Sahkan persediaan 2FA', + setup2fa_5_confirmation_1: 'Saya telah menyimpan kod pemulihan saya di lokasi yang selamat', + setup2fa_5_confirmation_2: 'Saya bersedia untuk mengaktifkan 2FA', + setup2fa_5_button: 'Aktifkan 2FA', + + // === 2FA Login === + login2fa_otp_title: 'Masukkan Kod 2FA', + login2fa_otp_instructions: 'Masukkan kod 6 digit daripada aplikasi authenticator anda.', + login2fa_recovery_title: 'Masukkan kod pemulihan', + login2fa_recovery_instructions: 'Masukkan salah satu kod pemulihan anda untuk mengakses akaun anda.', + login2fa_use_recovery_code: 'Gunakan kod pemulihan', + login2fa_recovery_back: 'Kembali', + login2fa_recovery_placeholder: 'XXXXXXXX', + + // Sharing + 'Editor': 'Editor', + 'Viewer': 'Pemerhati', + 'People with access': 'Orang dengan akses', + 'Share With…': 'Kongsi Dengan…', + 'Owner': 'Pemilik', + 'You can\'t share with yourself.': 'Anda tidak boleh berkongsi dengan diri sendiri.', + 'This user already has access to this item': 'Pengguna ini sudah mempunyai akses kepada item ini', + + // Billing + 'billing.change_payment_method': 'Tukar', + 'billing.cancel': 'Batal', + 'billing.download_invoice': 'Muat turun', + 'billing.payment_method': 'Kaedah Pembayaran', + 'billing.payment_method_updated': 'Kaedah pembayaran dikemas kini!', + 'billing.confirm_payment_method': 'Sahkan Kaedah Pembayaran', + 'billing.payment_history': 'Sejarah Pembayaran', + 'billing.refunded': 'Bayaran Balik', + 'billing.paid': 'Dibayar', + 'billing.ok': 'OK', + 'billing.resume_subscription': 'Sambung Semula Langganan', + 'billing.subscription_cancelled': 'Langganan anda telah dibatalkan.', + 'billing.subscription_cancelled_description': 'Anda masih akan mempunyai akses kepada langganan anda sehingga akhir tempoh pengebilan ini.', + 'billing.offering.free': 'Percuma', + 'billing.offering.basic': 'Asas', + 'billing.offering.pro': 'Profesional', + 'billing.offering.professional': 'Profesional', + 'billing.offering.business': 'Perniagaan', + 'billing.cloud_storage': 'Storan Awan', + 'billing.ai_access': 'Akses AI', + 'billing.bandwidth': 'Lebar jalur', + 'billing.apps_and_games': 'Aplikasi & Permainan', + 'billing.upgrade_to_pro': 'Naik taraf kepada %strong%', + 'billing.switch_to': 'Tukar kepada %strong%', + 'billing.payment_setup': 'Persediaan Pembayaran', + 'billing.back': 'Kembali', + 'billing.you_are_now_subscribed_to': 'Anda kini dilanggan kepada peringkat %strong%.', + 'billing.you_are_now_subscribed_to_without_tier': 'Anda kini dilanggan', + 'billing.subscription_cancellation_confirmation': 'Adakah anda pasti mahu membatalkan langganan anda?', + 'billing.subscription_setup': 'Persediaan Langganan', + 'billing.cancel_it': 'Batalkannya', + 'billing.keep_it': 'Kekalkannya', + 'billing.subscription_resumed': 'Langganan %strong% anda telah disambung semula!', + 'billing.upgrade_now': 'Naik Taraf Sekarang', + 'billing.upgrade': 'Naik Taraf', + 'billing.currently_on_free_plan': 'Anda kini dalam pelan percuma.', + 'billing.download_receipt': 'Muat Turun Resit', + 'billing.subscription_check_error': 'Masalah berlaku semasa menyemak status langganan anda.', + 'billing.email_confirmation_needed': 'Emel anda belum disahkan. Kami akan menghantar kod kepada anda untuk mengesahkannya sekarang.', + 'billing.sub_cancelled_but_valid_until': 'Anda telah membatalkan langganan anda dan ia akan secara automatik bertukar kepada peringkat percuma pada akhir tempoh pengebilan. Anda tidak akan dikenakan caj lagi melainkan anda melanggan semula.', + 'billing.current_plan_until_end_of_period': 'Pelan semasa anda sehingga akhir tempoh pengebilan ini.', + 'billing.current_plan': 'Pelan semasa', + 'billing.cancelled_subscription_tier': 'Langganan Dibatalkan (%%)', + 'billing.manage': 'Urus', + 'billing.limited': 'Terhad', + 'billing.expanded': 'Diperluas', + 'billing.accelerated': 'Dipercepatkan', + 'billing.enjoy_msg': 'Nikmati %% Storan Awan ditambah faedah lain.', + 'too_many_attempts': 'Terlalu banyak percubaan. Sila cuba lagi kemudian.', + 'server_timeout': 'Server mengambil masa terlalu lama untuk bertindak balas. Sila cuba lagi.', + 'signup_error': 'Ralat berlaku semasa pendaftaran. Sila cuba lagi.', + + // Welcome Window + 'welcome_title': 'Selamat datang ke Komputer Internet Peribadi Anda', + 'welcome_description': 'Simpan fail, main permainan, cari aplikasi hebat, dan banyak lagi! Semua dalam satu tempat, boleh diakses dari mana sahaja pada bila-bila masa.', + 'welcome_get_started': 'Mula', + 'welcome_terms': 'Terma', + 'welcome_privacy': 'Privasi', + 'welcome_developers': 'Pembangun', + 'welcome_open_source': 'Sumber Terbuka', + 'welcome_instant_login_title': 'Log Masuk Segera!', + + // Alert Window + 'alert_error_title': 'Ralat!', + 'alert_warning_title': 'Amaran!', + 'alert_info_title': 'Maklumat', + 'alert_success_title': 'Berjaya!', + 'alert_confirm_title': 'Adakah anda pasti?', + 'alert_yes': 'Ya', + 'alert_no': 'Tidak', + 'alert_retry': 'Cuba Semula', + 'alert_cancel': 'Batal', + + // Signup Window + 'signup_confirm_password': 'Sahkan Kata Laluan', + + // Login Window + 'login_email_username_required': 'Emel atau nama pengguna diperlukan', + 'login_password_required': 'Kata laluan diperlukan', + + // Various Window Titles + 'window_title_open': 'Buka', + 'window_title_change_password': 'Tukar Kata Laluan', + 'window_title_select_font': 'Pilih fon huruf…', + 'window_title_session_list': 'Senarai Sesi!', + 'window_title_set_new_password': 'Tetapkan Kata Laluan Baru', + 'window_title_instant_login': 'Log Masuk Segera!', + 'window_title_publish_website': 'Terbitkan Laman Web', + 'window_title_publish_worker': 'Terbitkan Worker', + 'window_title_authenticating': 'Mengesahkan...', + 'window_title_refer_friend': 'Rujuk rakan!', + + // Desktop UI + 'desktop_show_desktop': 'Tunjukkan Desktop', + 'desktop_show_open_windows': 'Tunjukkan Tetingkap Terbuka', + 'desktop_exit_full_screen': 'Keluar Skrin Penuh', + 'desktop_enter_full_screen': 'Masuk Skrin Penuh', + 'desktop_position': 'Kedudukan', + 'desktop_position_left': 'Kiri', + 'desktop_position_bottom': 'Bawah', + 'desktop_position_right': 'Kanan', + + // Item UI + 'item_shared_with_you': 'Pengguna telah berkongsi item ini dengan anda.', + 'item_shared_by_you': 'Anda telah berkongsi item ini dengan sekurang-kurangnya satu pengguna lain.', + 'item_shortcut': 'Pintasan', + 'item_associated_websites': 'Laman web berkaitan', + 'item_associated_websites_plural': 'Laman web berkaitan', + 'no_suitable_apps_found': 'Tiada aplikasi sesuai ditemui', + + // Window UI + 'window_click_to_go_back': 'Klik untuk kembali.', + 'window_click_to_go_forward': 'Klik untuk maju.', + 'window_click_to_go_up': 'Klik untuk naik satu direktori.', + 'window_title_public': 'Publik', + 'window_title_videos': 'Video', + 'window_title_pictures': 'Gambar', + 'window_title_puter': 'Puter', + 'window_folder_empty': 'Folder ini kosong', + + // Website Management + 'manage_your_subdomains': 'Urus Subdomain Anda', + + 'open_containing_folder': 'Buka Folder Yang Mengandungi', + }, +}; + +export default my; \ No newline at end of file diff --git a/src/gui/src/i18n/translations/translations.js b/src/gui/src/i18n/translations/translations.js index cfc0b11f..eeb12a0c 100644 --- a/src/gui/src/i18n/translations/translations.js +++ b/src/gui/src/i18n/translations/translations.js @@ -38,6 +38,7 @@ import ig from './ig.js'; import ja from './ja.js'; import ko from './ko.js'; import ku from './ku.js'; +import my from './my.js'; import nb from './nb.js'; import nl from './nl.js'; import nn from './nn.js'; @@ -78,6 +79,7 @@ export default { ja, ko, ku, + my, nb, nl, nn,