From 177b3ab66aea7d045855085391dd792ef4fc4960 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 28 Jul 2023 15:04:19 +0700 Subject: [PATCH 1/3] Fix editor on open --- lib/view/page/editor.dart | 49 +++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/lib/view/page/editor.dart b/lib/view/page/editor.dart index 36bb7620..7df525b5 100644 --- a/lib/view/page/editor.dart +++ b/lib/view/page/editor.dart @@ -29,7 +29,7 @@ class _EditorPageState extends State with AfterLayoutMixin { late CodeController _controller; late final _focusNode = FocusNode(); final _setting = locator(); - late Map _codeTheme; + Map? _codeTheme; late S _s; late String? _langCode; @@ -41,13 +41,15 @@ class _EditorPageState extends State with AfterLayoutMixin { language: suffix2HighlightMap[_langCode], ); - if (isDarkMode(context)) { - _codeTheme = themeMap[_setting.editorDarkTheme.fetch()] ?? monokaiTheme; - } else { - _codeTheme = themeMap[_setting.editorTheme.fetch()] ?? a11yLightTheme; - } - - _focusNode.requestFocus(); + WidgetsBinding.instance.addPostFrameCallback((Duration duration) async { + if (isDarkMode(context)) { + _codeTheme = themeMap[_setting.editorDarkTheme.fetch()] ?? monokaiTheme; + } else { + _codeTheme = themeMap[_setting.editorTheme.fetch()] ?? a11yLightTheme; + } + _focusNode.requestFocus(); + setState(() {}); + }); } @override @@ -66,7 +68,12 @@ class _EditorPageState extends State with AfterLayoutMixin { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: _codeTheme['root']!.backgroundColor, + backgroundColor: () { + if (_codeTheme != null) { + return _codeTheme!['root']!.backgroundColor; + } + return null; + }(), appBar: AppBar( centerTitle: true, title: TwoLineText(up: getFileName(widget.path) ?? '', down: _s.editor), @@ -89,15 +96,21 @@ class _EditorPageState extends State with AfterLayoutMixin { ) ], ), - body: SingleChildScrollView( - child: CodeTheme( - data: CodeThemeData(styles: _codeTheme), - child: CodeField( - focusNode: _focusNode, - controller: _controller, - lineNumberStyle: const LineNumberStyle( - width: 47, - margin: 7, + body: Visibility( + visible: (_codeTheme != null), + replacement: const Center( + child: CircularProgressIndicator(), + ), + child: SingleChildScrollView( + child: CodeTheme( + data: CodeThemeData(styles: _codeTheme ?? (isDarkMode(context) ? monokaiTheme : a11yLightTheme)), + child: CodeField( + focusNode: _focusNode, + controller: _controller, + lineNumberStyle: const LineNumberStyle( + width: 47, + margin: 7, + ), ), ), ), From 287df4a1cc8143a36e7650b0aca8d62906c63253 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 28 Jul 2023 15:21:25 +0700 Subject: [PATCH 2/3] Add Indonesian Language --- lib/l10n/app_id.arb | 212 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+) create mode 100644 lib/l10n/app_id.arb diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb new file mode 100644 index 00000000..3f7e6f49 --- /dev/null +++ b/lib/l10n/app_id.arb @@ -0,0 +1,212 @@ +{ + "@@locale": "id", + "about": "Tentang", + "aboutThanks": "Terima kasih kepada orang -orang berikut yang berpartisipasi.", + "add": "Menambahkan", + "addAServer": "tambahkan server", + "addPrivateKey": "Tambahkan kunci pribadi", + "added2List": "Ditambahkan ke Daftar Tugas", + "all": "Semua", + "alreadyLastDir": "Sudah di direktori terakhir.", + "alterHost": "Alter host", + "attention": "Perhatian", + "auto": "Auto", + "autoUpdateHomeWidget": "Widget Rumah Pembaruan Otomatis", + "backup": "Cadangan", + "backupAndRestore": "Cadangan dan Pulihkan", + "backupTip": "Data yang diekspor hanya dienkripsi.\nTolong jaga keamanannya.", + "backupVersionNotMatch": "Versi cadangan tidak cocok.", + "bgRun": "Jalankan di Backgroud", + "canPullRefresh": "Anda dapat menarik untuk menyegarkan.", + "cancel": "Membatalkan", + "choose": "Memilih", + "chooseFontFile": "Pilih file font", + "choosePrivateKey": "Pilih Kunci Pribadi", + "clear": "Jernih", + "close": "Menutup", + "cmd": "Memerintah", + "conn": "Koneksi", + "containerName": "Nama kontainer", + "containerStatus": "Status wadah", + "convert": "Mengubah", + "copy": "Menyalin", + "copyPath": "Path Copy", + "createFile": "Buat file", + "createFolder": "Membuat folder", + "dark": "Gelap", + "debug": "Debug", + "decode": "Membaca sandi", + "delete": "Menghapus", + "deleteAllServers": "Hapus semua server", + "disabled": "Dengan disabilitas", + "disconnected": "Terputus", + "diskIgnorePath": "Abaikan jalan untuk disk", + "dl2Local": "Unduh {fileName} ke lokal?", + "dockerEditHost": "Edit Docker_host", + "dockerEmptyRunningItems": "Tidak ada wadah yang berjalan.\nMungkin saja env DOCKER_HOST tidak dibaca dengan benar. Anda dapat menemukannya dengan menjalankan `echo $DOCKER_HOST` di terminal.", + "dockerImagesFmt": "{count} gambar", + "dockerNotInstalled": "Docker tidak terpasang", + "dockerStatusRunningAndStoppedFmt": "{runningCount} running, {stoppedCount} container stopped.", + "dockerStatusRunningFmt": "{count} wadah berjalan.", + "download": "Unduh", + "downloadStatus": "{percent}% dari {size}", + "edit": "Edit", + "editVirtKeys": "Edit kunci virtual", + "editor": "Editor", + "encode": "Menyandi", + "error": "Kesalahan", + "exampleName": "Nama contoh", + "experimentalFeature": "Fitur eksperimental", + "export": "Ekspor", + "extraArgs": "Args ekstra", + "failed": "Gagal", + "feedback": "Masukan", + "feedbackOnGithub": "Jika Anda memiliki pertanyaan, silakan umpan balik tentang GitHub.", + "fieldMustNotEmpty": "Bidang -bidang ini tidak boleh kosong.", + "fileNotExist": "{file} tidak ada", + "fileTooLarge": "File '{file}' terlalu besar {size}, max {sizeMax}", + "files": "File", + "finished": "Selesai", + "font": "Font", + "fontSize": "Ukuran huruf", + "foundNUpdate": "Menemukan {count} pembaruan", + "fullScreen": "Mode Layar Penuh", + "fullScreenJitter": "Jitter layar penuh", + "fullScreenJitterHelp": "Untuk menghindari pembakaran layar", + "getPushTokenFailed": "Tidak bisa mengambil token dorong", + "gettingToken": "Mendapatkan token ...", + "goto": "Pergi ke", + "homeWidgetUrlConfig": "Konfigurasi URL Widget Rumah", + "host": "Host", + "httpFailedWithCode": "Permintaan gagal, kode status: {kode}", + "image": "Gambar", + "imagesList": "Daftar gambar", + "import": "Impor", + "inner": "Batin", + "inputDomainHere": "Input domain di sini", + "install": "Install", + "installDockerWithUrl": "Silakan https://docs.docker.com/engine/install Docker pertama.", + "invalidJson": "JSON tidak valid", + "invalidVersion": "Versi tidak valid", + "invalidVersionHelp": "Pastikan Docker diinstal dengan benar, atau Anda menggunakan versi yang tidak dikompilasi. Jika Anda tidak memiliki masalah di atas, silakan kirimkan masalah pada {url}.", + "isBusy": "Sibuk sekarang", + "keepForeground": "Simpan Aplikasi Foreground!", + "keyAuth": "Auth kunci", + "keyboardCompatibility": "Mungkin untuk meningkatkan kompatibilitas metode input", + "keyboardType": "Tipe Keyborad", + "language": "Bahasa", + "languageName": "Indonesia", + "lastTry": "Percobaan terakhir", + "launchPage": "Halaman peluncuran", + "license": "Lisensi", + "light": "Terang", + "loadingFiles": "Memuat file ...", + "log": "Catatan", + "loss": "kehilangan", + "madeWithLove": "Dibuat dengan ❤️ oleh {myGithub}", + "max": "Max", + "maxRetryCount": "Jumlah penyambungan kembali server", + "maxRetryCountEqual0": "Akan mencoba lagi lagi dan lagi.", + "min": "Min", + "mission": "Misi", + "ms": "MS", + "name": "Nama", + "needRestart": "Perlu memulai ulang aplikasi", + "netViewType": "Jenis tampilan bersih", + "newContainer": "Wadah baru", + "noClient": "Tidak ada klien", + "noInterface": "Tidak ada antarmuka", + "noOptions": "Tidak ada opsi", + "noResult": "Tidak ada hasil", + "noSavedPrivateKey": "Tidak ada kunci pribadi yang disimpan.", + "noSavedSnippet": "Tidak ada cuplikan yang disimpan.", + "noServerAvailable": "Tidak ada server yang tersedia.", + "noUpdateAvailable": "Tidak ada pembaruan yang tersedia", + "notSelected": "Tidak terpilih", + "nullToken": "Token NULL", + "ok": "OKE", + "onServerDetailPage": "Di halaman detail server", + "open": "Membuka", + "paste": "Tempel", + "path": "Jalur", + "pickFile": "Pilih file", + "pingAvg": "Rata -rata:", + "pingInputIP": "Harap masukkan IP / domain target.", + "pingNoServer": "Tidak ada server untuk melakukan ping.\nHarap tambahkan server di tab Server.", + "pkg": "Pkg", + "platformNotSupportUpdate": "Platform saat ini tidak mendukung pembaruan aplikasi.\nSilakan bangun dari sumber dan instal.", + "plzEnterHost": "Harap masukkan host.", + "plzSelectKey": "Pilih kunci.", + "port": "Port", + "preview": "Pratinjau", + "primaryColor": "Warna utama", + "privateKey": "Kunci Pribadi", + "process": "Proses", + "pushToken": "Dorong token", + "pwd": "Kata sandi", + "remotePath": "Jalur jarak jauh", + "rename": "Ganti nama", + "reportBugsOnGithubIssue": "Harap laporkan bug di {url}", + "restart": "Mengulang kembali", + "restore": "Memulihkan", + "restoreSuccess": "Kembalikan kesuksesan. Mulai ulang aplikasi untuk diterapkan.", + "restoreSureWithDate": "Apakah Anda pasti akan memulihkan dari {date}?", + "result": "Hasil", + "rotateAngel": "Sudut rotasi", + "run": "Berlari", + "save": "Menyimpan", + "saved": "Diselamatkan", + "second": "S", + "server": "Server", + "serverTabConnecting": "Menghubungkan ...", + "serverTabEmpty": "Tidak ada server.\nKlik fab untuk menambahkan satu.", + "serverTabFailed": "Gagal", + "serverTabLoading": "Memuat...", + "serverTabPlzSave": "Harap 'simpan' kunci pribadi ini lagi.", + "serverTabUnkown": "Negara yang tidak diketahui", + "setting": "Pengaturan", + "sftpDlPrepare": "Bersiap untuk terhubung ...", + "sftpNoDownloadTask": "Tidak ada tugas unduhan.", + "sftpSSHConnected": "Sftp terhubung", + "showDistLogo": "Tampilkan logo distribusi", + "snippet": "Snippet", + "speed": "Kecepatan", + "spentTime": "Menghabiskan waktu: {time}", + "sshTip": "Fungsi ini sekarang dalam tahap eksperimen.\n\nHarap laporkan bug di {url} atau bergabunglah dengan pengembangan kami.", + "sshVirtualKeyAutoOff": "Switching Otomatis Kunci Virtual", + "start": "Awal", + "stop": "Berhenti", + "success": "Kesuksesan", + "sureDelete": "Apakah Anda pasti akan menghapus [{name}]?", + "sureDirEmpty": "Pastikan dir kosong.", + "sureNoPwd": "Apakah Anda pasti tidak menggunakan kata sandi?", + "sureToDeleteServer": "Apakah Anda pasti akan menghapus server [{server}]?", + "system": "Sistem", + "tag": "Tag", + "terminal": "Terminal", + "theme": " Tema", + "themeMode": "Mode tema", + "times": "Waktu", + "traffic": "Lalu lintas", + "ttl": "ttl", + "unknown": "Tidak dikenal", + "unknownError": "Kesalahan yang tidak diketahui", + "unkownConvertMode": "Mode Konversi Tidak Diketahui", + "update": "Memperbarui", + "updateAll": "Perbarui semua", + "updateIntervalEqual0": "Anda mengatur ke 0, tidak akan memperbarui secara otomatis.\nTidak dapat menghitung status CPU.", + "updateServerStatusInterval": "Interval Pembaruan Status Server", + "updateTip": "UPDATE: v1.0.{newest}", + "updateTipTooLow": "Versi saat ini terlalu rendah, harap perbarui ke v1.0.{newest}", + "upload": "Mengunggah", + "upsideDown": "Terbalik", + "urlOrJson": "URL atau JSON", + "user": "Username", + "versionHaveUpdate": "Ditemukan: v1.0.{build}, klik untuk memperbarui", + "versionUnknownUpdate": "Saat ini: v1.0.{build}", + "versionUpdated": "Saat ini: v1.0.{build}, mutakhir", + "viewErr": "Lihat kesalahan", + "waitConnection": "Harap tunggu koneksi akan dibuat.", + "whenOpenApp": "Saat membuka aplikasi", + "willTakEeffectImmediately": "Akan segera berlaku" +} \ No newline at end of file From f1852aa83a2e181c2c7c15d6a30fabc70b4e4921 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 28 Jul 2023 15:21:51 +0700 Subject: [PATCH 3/3] update --- .dart_tool/flutter_gen/gen_l10n/l10n.dart | 7 +- .dart_tool/flutter_gen/gen_l10n/l10n_de.dart | 2 +- .dart_tool/flutter_gen/gen_l10n/l10n_en.dart | 2 +- .dart_tool/flutter_gen/gen_l10n/l10n_id.dart | 677 +++++++++++++++++++ .dart_tool/flutter_gen/gen_l10n/l10n_zh.dart | 4 +- lib/core/persistant_store.dart | 1 + 6 files changed, 687 insertions(+), 6 deletions(-) create mode 100644 .dart_tool/flutter_gen/gen_l10n/l10n_id.dart diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n.dart b/.dart_tool/flutter_gen/gen_l10n/l10n.dart index 95abe9ee..23df171b 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n.dart @@ -7,6 +7,7 @@ import 'package:intl/intl.dart' as intl; import 'l10n_de.dart'; import 'l10n_en.dart'; +import 'l10n_id.dart'; import 'l10n_zh.dart'; /// Callers can lookup localized strings with an instance of S @@ -92,6 +93,7 @@ abstract class S { static const List supportedLocales = [ Locale('de'), Locale('en'), + Locale('id'), Locale('zh'), Locale('zh', 'TW') ]; @@ -568,7 +570,7 @@ abstract class S { /// /// In en, this message translates to: /// **'request failed, status code: {code}'** - String httpFailedWithCode(Object code); + String httpFailedWithCode(Object code, Object kode); /// No description provided for @image. /// @@ -1360,7 +1362,7 @@ class _SDelegate extends LocalizationsDelegate { } @override - bool isSupported(Locale locale) => ['de', 'en', 'zh'].contains(locale.languageCode); + bool isSupported(Locale locale) => ['de', 'en', 'id', 'zh'].contains(locale.languageCode); @override bool shouldReload(_SDelegate old) => false; @@ -1382,6 +1384,7 @@ S lookupS(Locale locale) { switch (locale.languageCode) { case 'de': return SDe(); case 'en': return SEn(); + case 'id': return SId(); case 'zh': return SZh(); } diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart index 10cbc63b..fba820f8 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart @@ -255,7 +255,7 @@ class SDe extends S { String get host => 'Host'; @override - String httpFailedWithCode(Object code) { + String httpFailedWithCode(Object code, Object kode) { return 'Anfrage fehlgeschlagen, Statuscode: $code'; } diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart index db400d6f..b611ba0b 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart @@ -255,7 +255,7 @@ class SEn extends S { String get host => 'Host'; @override - String httpFailedWithCode(Object code) { + String httpFailedWithCode(Object code, Object kode) { return 'request failed, status code: $code'; } diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart new file mode 100644 index 00000000..1938e284 --- /dev/null +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart @@ -0,0 +1,677 @@ +import 'l10n.dart'; + +/// The translations for Indonesian (`id`). +class SId extends S { + SId([String locale = 'id']) : super(locale); + + @override + String get about => 'Tentang'; + + @override + String get aboutThanks => 'Terima kasih kepada orang -orang berikut yang berpartisipasi.'; + + @override + String get add => 'Menambahkan'; + + @override + String get addAServer => 'tambahkan server'; + + @override + String get addPrivateKey => 'Tambahkan kunci pribadi'; + + @override + String get added2List => 'Ditambahkan ke Daftar Tugas'; + + @override + String get all => 'Semua'; + + @override + String get alreadyLastDir => 'Sudah di direktori terakhir.'; + + @override + String get alterHost => 'Alter host'; + + @override + String get attention => 'Perhatian'; + + @override + String get auto => 'Auto'; + + @override + String get autoUpdateHomeWidget => 'Widget Rumah Pembaruan Otomatis'; + + @override + String get backup => 'Cadangan'; + + @override + String get backupAndRestore => 'Cadangan dan Pulihkan'; + + @override + String get backupTip => 'Data yang diekspor hanya dienkripsi.\nTolong jaga keamanannya.'; + + @override + String get backupVersionNotMatch => 'Versi cadangan tidak cocok.'; + + @override + String get bgRun => 'Jalankan di Backgroud'; + + @override + String get canPullRefresh => 'Anda dapat menarik untuk menyegarkan.'; + + @override + String get cancel => 'Membatalkan'; + + @override + String get choose => 'Memilih'; + + @override + String get chooseFontFile => 'Pilih file font'; + + @override + String get choosePrivateKey => 'Pilih Kunci Pribadi'; + + @override + String get clear => 'Jernih'; + + @override + String get close => 'Menutup'; + + @override + String get cmd => 'Memerintah'; + + @override + String get conn => 'Koneksi'; + + @override + String get containerName => 'Nama kontainer'; + + @override + String get containerStatus => 'Status wadah'; + + @override + String get convert => 'Mengubah'; + + @override + String get copy => 'Menyalin'; + + @override + String get copyPath => 'Path Copy'; + + @override + String get createFile => 'Buat file'; + + @override + String get createFolder => 'Membuat folder'; + + @override + String get dark => 'Gelap'; + + @override + String get debug => 'Debug'; + + @override + String get decode => 'Membaca sandi'; + + @override + String get delete => 'Menghapus'; + + @override + String get deleteAllServers => 'Hapus semua server'; + + @override + String get disabled => 'Dengan disabilitas'; + + @override + String get disconnected => 'Terputus'; + + @override + String get diskIgnorePath => 'Abaikan jalan untuk disk'; + + @override + String dl2Local(Object fileName) { + return 'Unduh $fileName ke lokal?'; + } + + @override + String get dockerEditHost => 'Edit Docker_host'; + + @override + String get dockerEmptyRunningItems => 'Tidak ada wadah yang berjalan.\nMungkin saja env DOCKER_HOST tidak dibaca dengan benar. Anda dapat menemukannya dengan menjalankan `echo \$DOCKER_HOST` di terminal.'; + + @override + String dockerImagesFmt(Object count) { + return '$count gambar'; + } + + @override + String get dockerNotInstalled => 'Docker tidak terpasang'; + + @override + String dockerStatusRunningAndStoppedFmt(Object runningCount, Object stoppedCount) { + return '$runningCount running, $stoppedCount container stopped.'; + } + + @override + String dockerStatusRunningFmt(Object count) { + return '$count wadah berjalan.'; + } + + @override + String get download => 'Unduh'; + + @override + String downloadStatus(Object percent, Object size) { + return '$percent% dari $size'; + } + + @override + String get edit => 'Edit'; + + @override + String get editVirtKeys => 'Edit kunci virtual'; + + @override + String get editor => 'Editor'; + + @override + String get encode => 'Menyandi'; + + @override + String get error => 'Kesalahan'; + + @override + String get exampleName => 'Nama contoh'; + + @override + String get experimentalFeature => 'Fitur eksperimental'; + + @override + String get export => 'Ekspor'; + + @override + String get extraArgs => 'Args ekstra'; + + @override + String get failed => 'Gagal'; + + @override + String get feedback => 'Masukan'; + + @override + String get feedbackOnGithub => 'Jika Anda memiliki pertanyaan, silakan umpan balik tentang GitHub.'; + + @override + String get fieldMustNotEmpty => 'Bidang -bidang ini tidak boleh kosong.'; + + @override + String fileNotExist(Object file) { + return '$file tidak ada'; + } + + @override + String fileTooLarge(Object file, Object size, Object sizeMax) { + return 'File \'$file\' terlalu besar $size, max $sizeMax'; + } + + @override + String get files => 'File'; + + @override + String get finished => 'Selesai'; + + @override + String get font => 'Font'; + + @override + String get fontSize => 'Ukuran huruf'; + + @override + String foundNUpdate(Object count) { + return 'Menemukan $count pembaruan'; + } + + @override + String get fullScreen => 'Mode Layar Penuh'; + + @override + String get fullScreenJitter => 'Jitter layar penuh'; + + @override + String get fullScreenJitterHelp => 'Untuk menghindari pembakaran layar'; + + @override + String get getPushTokenFailed => 'Tidak bisa mengambil token dorong'; + + @override + String get gettingToken => 'Mendapatkan token ...'; + + @override + String get goto => 'Pergi ke'; + + @override + String get homeWidgetUrlConfig => 'Konfigurasi URL Widget Rumah'; + + @override + String get host => 'Host'; + + @override + String httpFailedWithCode(Object code, Object kode) { + return 'Permintaan gagal, kode status: $kode'; + } + + @override + String get image => 'Gambar'; + + @override + String get imagesList => 'Daftar gambar'; + + @override + String get import => 'Impor'; + + @override + String get inner => 'Batin'; + + @override + String get inputDomainHere => 'Input domain di sini'; + + @override + String get install => 'Install'; + + @override + String get installDockerWithUrl => 'Silakan https://docs.docker.com/engine/install Docker pertama.'; + + @override + String get invalidJson => 'JSON tidak valid'; + + @override + String get invalidVersion => 'Versi tidak valid'; + + @override + String invalidVersionHelp(Object url) { + return 'Pastikan Docker diinstal dengan benar, atau Anda menggunakan versi yang tidak dikompilasi. Jika Anda tidak memiliki masalah di atas, silakan kirimkan masalah pada $url.'; + } + + @override + String get isBusy => 'Sibuk sekarang'; + + @override + String get keepForeground => 'Simpan Aplikasi Foreground!'; + + @override + String get keyAuth => 'Auth kunci'; + + @override + String get keyboardCompatibility => 'Mungkin untuk meningkatkan kompatibilitas metode input'; + + @override + String get keyboardType => 'Tipe Keyborad'; + + @override + String get language => 'Bahasa'; + + @override + String get languageName => 'Indonesia'; + + @override + String get lastTry => 'Percobaan terakhir'; + + @override + String get launchPage => 'Halaman peluncuran'; + + @override + String get license => 'Lisensi'; + + @override + String get light => 'Terang'; + + @override + String get loadingFiles => 'Memuat file ...'; + + @override + String get log => 'Catatan'; + + @override + String get loss => 'kehilangan'; + + @override + String madeWithLove(Object myGithub) { + return 'Dibuat dengan ❤️ oleh $myGithub'; + } + + @override + String get max => 'Max'; + + @override + String get maxRetryCount => 'Jumlah penyambungan kembali server'; + + @override + String get maxRetryCountEqual0 => 'Akan mencoba lagi lagi dan lagi.'; + + @override + String get min => 'Min'; + + @override + String get mission => 'Misi'; + + @override + String get ms => 'MS'; + + @override + String get name => 'Nama'; + + @override + String get needRestart => 'Perlu memulai ulang aplikasi'; + + @override + String get netViewType => 'Jenis tampilan bersih'; + + @override + String get newContainer => 'Wadah baru'; + + @override + String get noClient => 'Tidak ada klien'; + + @override + String get noInterface => 'Tidak ada antarmuka'; + + @override + String get noOptions => 'Tidak ada opsi'; + + @override + String get noResult => 'Tidak ada hasil'; + + @override + String get noSavedPrivateKey => 'Tidak ada kunci pribadi yang disimpan.'; + + @override + String get noSavedSnippet => 'Tidak ada cuplikan yang disimpan.'; + + @override + String get noServerAvailable => 'Tidak ada server yang tersedia.'; + + @override + String get noUpdateAvailable => 'Tidak ada pembaruan yang tersedia'; + + @override + String get notSelected => 'Tidak terpilih'; + + @override + String get nullToken => 'Token NULL'; + + @override + String get ok => 'OKE'; + + @override + String get onServerDetailPage => 'Di halaman detail server'; + + @override + String get open => 'Membuka'; + + @override + String get paste => 'Tempel'; + + @override + String get path => 'Jalur'; + + @override + String get pickFile => 'Pilih file'; + + @override + String get pingAvg => 'Rata -rata:'; + + @override + String get pingInputIP => 'Harap masukkan IP / domain target.'; + + @override + String get pingNoServer => 'Tidak ada server untuk melakukan ping.\nHarap tambahkan server di tab Server.'; + + @override + String get pkg => 'Pkg'; + + @override + String get platformNotSupportUpdate => 'Platform saat ini tidak mendukung pembaruan aplikasi.\nSilakan bangun dari sumber dan instal.'; + + @override + String get plzEnterHost => 'Harap masukkan host.'; + + @override + String get plzSelectKey => 'Pilih kunci.'; + + @override + String get port => 'Port'; + + @override + String get preview => 'Pratinjau'; + + @override + String get primaryColor => 'Warna utama'; + + @override + String get privateKey => 'Kunci Pribadi'; + + @override + String get process => 'Proses'; + + @override + String get pushToken => 'Dorong token'; + + @override + String get pwd => 'Kata sandi'; + + @override + String get remotePath => 'Jalur jarak jauh'; + + @override + String get rename => 'Ganti nama'; + + @override + String reportBugsOnGithubIssue(Object url) { + return 'Harap laporkan bug di $url'; + } + + @override + String get restart => 'Mengulang kembali'; + + @override + String get restore => 'Memulihkan'; + + @override + String get restoreSuccess => 'Kembalikan kesuksesan. Mulai ulang aplikasi untuk diterapkan.'; + + @override + String restoreSureWithDate(Object date) { + return 'Apakah Anda pasti akan memulihkan dari $date?'; + } + + @override + String get result => 'Hasil'; + + @override + String get rotateAngel => 'Sudut rotasi'; + + @override + String get run => 'Berlari'; + + @override + String get save => 'Menyimpan'; + + @override + String get saved => 'Diselamatkan'; + + @override + String get second => 'S'; + + @override + String get server => 'Server'; + + @override + String get serverTabConnecting => 'Menghubungkan ...'; + + @override + String get serverTabEmpty => 'Tidak ada server.\nKlik fab untuk menambahkan satu.'; + + @override + String get serverTabFailed => 'Gagal'; + + @override + String get serverTabLoading => 'Memuat...'; + + @override + String get serverTabPlzSave => 'Harap \'simpan\' kunci pribadi ini lagi.'; + + @override + String get serverTabUnkown => 'Negara yang tidak diketahui'; + + @override + String get setting => 'Pengaturan'; + + @override + String get sftpDlPrepare => 'Bersiap untuk terhubung ...'; + + @override + String get sftpNoDownloadTask => 'Tidak ada tugas unduhan.'; + + @override + String get sftpSSHConnected => 'Sftp terhubung'; + + @override + String get showDistLogo => 'Tampilkan logo distribusi'; + + @override + String get snippet => 'Snippet'; + + @override + String get speed => 'Kecepatan'; + + @override + String spentTime(Object time) { + return 'Menghabiskan waktu: $time'; + } + + @override + String sshTip(Object url) { + return 'Fungsi ini sekarang dalam tahap eksperimen.\n\nHarap laporkan bug di $url atau bergabunglah dengan pengembangan kami.'; + } + + @override + String get sshVirtualKeyAutoOff => 'Switching Otomatis Kunci Virtual'; + + @override + String get start => 'Awal'; + + @override + String get stop => 'Berhenti'; + + @override + String get success => 'Kesuksesan'; + + @override + String sureDelete(Object name) { + return 'Apakah Anda pasti akan menghapus [$name]?'; + } + + @override + String get sureDirEmpty => 'Pastikan dir kosong.'; + + @override + String get sureNoPwd => 'Apakah Anda pasti tidak menggunakan kata sandi?'; + + @override + String sureToDeleteServer(Object server) { + return 'Apakah Anda pasti akan menghapus server [$server]?'; + } + + @override + String get system => 'Sistem'; + + @override + String get tag => 'Tag'; + + @override + String get terminal => 'Terminal'; + + @override + String get theme => ' Tema'; + + @override + String get themeMode => 'Mode tema'; + + @override + String get times => 'Waktu'; + + @override + String get traffic => 'Lalu lintas'; + + @override + String get ttl => 'ttl'; + + @override + String get unknown => 'Tidak dikenal'; + + @override + String get unknownError => 'Kesalahan yang tidak diketahui'; + + @override + String get unkownConvertMode => 'Mode Konversi Tidak Diketahui'; + + @override + String get update => 'Memperbarui'; + + @override + String get updateAll => 'Perbarui semua'; + + @override + String get updateIntervalEqual0 => 'Anda mengatur ke 0, tidak akan memperbarui secara otomatis.\nTidak dapat menghitung status CPU.'; + + @override + String get updateServerStatusInterval => 'Interval Pembaruan Status Server'; + + @override + String updateTip(Object newest) { + return 'UPDATE: v1.0.$newest'; + } + + @override + String updateTipTooLow(Object newest) { + return 'Versi saat ini terlalu rendah, harap perbarui ke v1.0.$newest'; + } + + @override + String get upload => 'Mengunggah'; + + @override + String get upsideDown => 'Terbalik'; + + @override + String get urlOrJson => 'URL atau JSON'; + + @override + String get user => 'Username'; + + @override + String versionHaveUpdate(Object build) { + return 'Ditemukan: v1.0.$build, klik untuk memperbarui'; + } + + @override + String versionUnknownUpdate(Object build) { + return 'Saat ini: v1.0.$build'; + } + + @override + String versionUpdated(Object build) { + return 'Saat ini: v1.0.$build, mutakhir'; + } + + @override + String get viewErr => 'Lihat kesalahan'; + + @override + String get waitConnection => 'Harap tunggu koneksi akan dibuat.'; + + @override + String get whenOpenApp => 'Saat membuka aplikasi'; + + @override + String get willTakEeffectImmediately => 'Akan segera berlaku'; +} diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart index 3bff4e9a..c28bffd6 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart @@ -255,7 +255,7 @@ class SZh extends S { String get host => '主机'; @override - String httpFailedWithCode(Object code) { + String httpFailedWithCode(Object code, Object kode) { return '请求失败, 状态码: $code'; } @@ -931,7 +931,7 @@ class SZhTw extends SZh { String get host => '主機'; @override - String httpFailedWithCode(Object code) { + String httpFailedWithCode(Object code, Object kode) { return '請求失敗, 狀態碼: $code'; } diff --git a/lib/core/persistant_store.dart b/lib/core/persistant_store.dart index 80efc489..ff579425 100644 --- a/lib/core/persistant_store.dart +++ b/lib/core/persistant_store.dart @@ -12,6 +12,7 @@ class PersistentStore { } StoreProperty property(String key, {T? defaultValue}) { + return StoreProperty(box, key, defaultValue); } }