mirror of
https://github.com/localsend/localsend.git
synced 2026-06-22 20:00:07 +00:00
i18n: regenerate, use slang v4
This commit is contained in:
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -3,126 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <ca>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=ca' to quickly apply the newly added translations."
|
||||
],
|
||||
"general": {
|
||||
"delete": "Delete",
|
||||
"quickSaveFromFavorites": "Quick Save for \"Favorites\"",
|
||||
"noItemInClipboard": "No items in Clipboard."
|
||||
},
|
||||
"sendTab": {
|
||||
"picker": {
|
||||
"clipboard": "Paste"
|
||||
},
|
||||
"manualSending": "Manual sending"
|
||||
},
|
||||
"settingsTab": {
|
||||
"general": {
|
||||
"colorOptions": {
|
||||
"oled": "OLED"
|
||||
},
|
||||
"saveWindowPlacementWindows": "Save window position after exit",
|
||||
"showInContextMenu": "Show LocalSend in context menu"
|
||||
},
|
||||
"receive": {
|
||||
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
|
||||
"requirePin": "@:webSharePage.requirePin",
|
||||
"autoFinish": "Auto Finish"
|
||||
},
|
||||
"send": {
|
||||
"title": "Send",
|
||||
"shareViaLinkAutoAccept": "Automatically accept requests in \"Share via link\" mode"
|
||||
},
|
||||
"network": {
|
||||
"discoveryTimeout": "Discovery Timeout",
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
},
|
||||
"other": {
|
||||
"title": "Other",
|
||||
"support": "Support LocalSend",
|
||||
"donate": "Donate",
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
"termsOfUse": "Terms of Use"
|
||||
}
|
||||
},
|
||||
"troubleshootPage": {
|
||||
"noDiscovery": {
|
||||
"symptom": "This device cannot discover other devices.",
|
||||
"solution": "Please make sure that all devices are on the same Wi-Fi network and share the same configuration (port, multicast address, encryption). You can try to type the IP address of the target device manually. If this works, consider adding this device to the favorites so it can be automatically discovered in the future."
|
||||
}
|
||||
},
|
||||
"receiveHistoryPage": {
|
||||
"entryActions": {
|
||||
"showInFolder": "Show in folder"
|
||||
}
|
||||
},
|
||||
"sendPage": {
|
||||
"tooManyAttempts": "@:web.tooManyAttempts"
|
||||
},
|
||||
"webSharePage": {
|
||||
"autoAccept": "Automatically accept requests",
|
||||
"requirePin": "Require PIN",
|
||||
"pinHint": "The PIN is \"{pin}\""
|
||||
},
|
||||
"aboutPage": {
|
||||
"description": [
|
||||
"LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.",
|
||||
"This app is available on Android, iOS, macOS, Windows and Linux. You can find all download options on the official homepage."
|
||||
],
|
||||
"author": "Author",
|
||||
"contributors": "Contributors",
|
||||
"packagers": "Packagers",
|
||||
"translators": "Translators"
|
||||
},
|
||||
"donationPage": {
|
||||
"title": "Donate",
|
||||
"info": "LocalSend is free, open-source and without any ads. If you like the app, you can support the development with a donation.",
|
||||
"donate": "Donate {amount}",
|
||||
"thanks": "Thank you very much!",
|
||||
"restore": "Restore purchase"
|
||||
},
|
||||
"dialogs": {
|
||||
"favoriteDialog": {
|
||||
"title": "Favorites",
|
||||
"noFavorites": "No favorite devices yet.",
|
||||
"addFavorite": "Add"
|
||||
},
|
||||
"favoriteDeleteDialog": {
|
||||
"title": "Delete from favorites",
|
||||
"content": "Do you really want to delete from favorites \"{name}\"?"
|
||||
},
|
||||
"favoriteEditDialog": {
|
||||
"titleAdd": "Add to favorites",
|
||||
"titleEdit": "Settings",
|
||||
"name": "Device name",
|
||||
"auto": "(auto)",
|
||||
"ip": "IP Address",
|
||||
"port": "Port"
|
||||
},
|
||||
"historyClearDialog": {
|
||||
"title": "Clear history",
|
||||
"content": "Do you really want to delete the entire history?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
},
|
||||
"pin": {
|
||||
"title": "Enter PIN"
|
||||
},
|
||||
"zoom": {
|
||||
"title": "URL"
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
},
|
||||
"sanitization": {
|
||||
"empty": "Filename cannot be empty",
|
||||
"invalid": "Filename contains invalid characters"
|
||||
},
|
||||
"tray": {
|
||||
"closeWindows": "Exit"
|
||||
},
|
||||
"web": {
|
||||
"enterPin": "Enter PIN",
|
||||
"invalidPin": "Invalid PIN",
|
||||
"tooManyAttempts": "Too many attempts"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,31 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <cs>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=cs' to quickly apply the newly added translations."
|
||||
],
|
||||
"general": {
|
||||
"quickSaveFromFavorites": "Rychlé uložení pro \"Oblíbené\""
|
||||
},
|
||||
"sendTab": {
|
||||
"manualSending": "Manuální odeslání"
|
||||
},
|
||||
"settingsTab": {
|
||||
"general": {
|
||||
"saveWindowPlacementWindows": "Uložit polohu okna po ukončení"
|
||||
},
|
||||
"receive": {
|
||||
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites"
|
||||
},
|
||||
"network": {
|
||||
"useSystemName": "Použít název systému",
|
||||
"generateRandomAlias": "Generovat náhodný alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "Požadavky na soubory jsou nyní automaticky přijímány ze zařízení ve vašem seznamu oblíbených."
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"closeWindows": "Konec"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -46,6 +46,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <es-ES>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=es-ES' to quickly apply the newly added translations."
|
||||
],
|
||||
"settingsTab": {
|
||||
"network": {
|
||||
"useSystemName": "Usar el nombre del sistema",
|
||||
"generateRandomAlias": "Generar alias aleatorio"
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,10 @@
|
||||
"restore": "Restore purchase"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"historyClearDialog": {
|
||||
"title": "Clear history",
|
||||
"content": "Do you really want to delete the entire history?"
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,11 @@
|
||||
"@@info": [
|
||||
"Here are translations that exist in <en> but not in <fr>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=fr' to quickly apply the newly added translations."
|
||||
]
|
||||
],
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -2,5 +2,11 @@
|
||||
"@@info": [
|
||||
"Here are translations that exist in <en> but not in <he>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=he' to quickly apply the newly added translations."
|
||||
]
|
||||
],
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -3,62 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <id>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=id' to quickly apply the newly added translations."
|
||||
],
|
||||
"general": {
|
||||
"quickSaveFromFavorites": "Simpan Cepat untuk \"Favorites\""
|
||||
},
|
||||
"sendTab": {
|
||||
"manualSending": "Kirim Manual"
|
||||
},
|
||||
"settingsTab": {
|
||||
"general": {
|
||||
"saveWindowPlacementWindows": "Simpan posisi jendela setelah keluar",
|
||||
"showInContextMenu": "Tampilkan LocalSend di menu konteks"
|
||||
},
|
||||
"receive": {
|
||||
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
|
||||
"requirePin": "@:webSharePage.requirePin"
|
||||
},
|
||||
"network": {
|
||||
"useSystemName": "Gunakan nama sistem",
|
||||
"generateRandomAlias": "Hasilkan alias acak"
|
||||
}
|
||||
},
|
||||
"troubleshootPage": {
|
||||
"noDiscovery": {
|
||||
"symptom": "Perangkat ini tidak dapat menemukan perangkat lain.",
|
||||
"solution": "Pastikan semua perangkat berada di jaringan Wi-Fi yang sama dan menggunakan konfigurasi yang sama (port, alamat multicast, enkripsi). Anda dapat mencoba mengetik alamat IP perangkat target secara manual. Jika ini berhasil, pertimbangkan untuk menambahkan perangkat ini ke daftar favorit sehingga bisa ditemukan secara otomatis di masa depan."
|
||||
}
|
||||
},
|
||||
"receiveHistoryPage": {
|
||||
"entryActions": {
|
||||
"showInFolder": "Tampilkan di folder"
|
||||
}
|
||||
},
|
||||
"sendPage": {
|
||||
"tooManyAttempts": "@:web.tooManyAttempts"
|
||||
},
|
||||
"webSharePage": {
|
||||
"requirePin": "Memerlukan PIN",
|
||||
"pinHint": "PIN-nya adalah \"{pin}\""
|
||||
},
|
||||
"aboutPage": {
|
||||
"packagers": "Pengemas"
|
||||
},
|
||||
"dialogs": {
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "Permintaan file sekarang diterima secara otomatis dari perangkat di daftar favorit Anda."
|
||||
},
|
||||
"pin": {
|
||||
"title": "Masukkan PIN"
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"closeWindows": "Keluar"
|
||||
},
|
||||
"web": {
|
||||
"enterPin": "Masukkan PIN",
|
||||
"invalidPin": "PIN Salah",
|
||||
"tooManyAttempts": "Terlalu banyak percobaan"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -17,6 +17,12 @@
|
||||
"aboutPage": {
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
},
|
||||
"web": {
|
||||
"enterPin": "Enter PIN",
|
||||
"invalidPin": "Invalid PIN",
|
||||
|
||||
@@ -81,6 +81,10 @@
|
||||
"restore": "Restore purchase"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"favoriteDialog": {
|
||||
"title": "Favorites",
|
||||
"noFavorites": "No favorite devices yet.",
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <nl>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=nl' to quickly apply the newly added translations."
|
||||
],
|
||||
"settingsTab": {
|
||||
"network": {
|
||||
"useSystemName": "Systeemnaam gebruiken",
|
||||
"generateRandomAlias": "Willekeurige naam genereren"
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -2,5 +2,11 @@
|
||||
"@@info": [
|
||||
"Here are translations that exist in <en> but not in <ru>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=ru' to quickly apply the newly added translations."
|
||||
]
|
||||
],
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,5 +8,11 @@
|
||||
"useSystemName": "Use system name",
|
||||
"generateRandomAlias": "Generate random alias"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"@@info": [
|
||||
"Here are translations that exist in <en> but not in <sl>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=sl' to quickly apply the newly added translations."
|
||||
],
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <sr>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=sr' to quickly apply the newly added translations."
|
||||
],
|
||||
"settingsTab": {
|
||||
"network": {
|
||||
"useSystemName": "Koristi ime sistema",
|
||||
"generateRandomAlias": "Generiši slučajni pseudonim"
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
"Here are translations that exist in <en> but not in <sr-Cyrl>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=sr-Cyrl' to quickly apply the newly added translations."
|
||||
],
|
||||
"settingsTab": {
|
||||
"network": {
|
||||
"useSystemName": "Користи име система",
|
||||
"generateRandomAlias": "Генериши случајни псеудоним"
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,10 @@
|
||||
"restore": "Restore purchase"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"favoriteDialog": {
|
||||
"title": "Favorites",
|
||||
"noFavorites": "No favorite devices yet.",
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -2,5 +2,11 @@
|
||||
"@@info": [
|
||||
"Here are translations that exist in <en> but not in <uk>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=uk' to quickly apply the newly added translations."
|
||||
]
|
||||
],
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -2,5 +2,11 @@
|
||||
"@@info": [
|
||||
"Here are translations that exist in <en> but not in <zh-CN>.",
|
||||
"After editing this file, you can run 'dart run slang apply --locale=zh-CN' to quickly apply the newly added translations."
|
||||
]
|
||||
],
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
"packagers": "Packagers"
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"openFile": {
|
||||
"title": "Open file",
|
||||
"content": "Do you want to open received file?"
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "File requests are now accepted automatically from devices in your favorites list."
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
"ro": {},
|
||||
"ru": {},
|
||||
"sk": {},
|
||||
"sl": {},
|
||||
"sr": {},
|
||||
"sr-Cyrl": {},
|
||||
"sv": {},
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
},
|
||||
"saveWindowPlacement": "Surt: desa la ubicació de la finestra",
|
||||
"saveWindowPlacementWindows": "Desa la posició de la finestra després de sortir",
|
||||
"showInContextMenu": "Mostrar LocalSend al menu contextual"
|
||||
"showInContextMenu": "Mostrar LocalSend al menu contextual",
|
||||
"minimizeToTray": "Surt: Minimitzar a la safata",
|
||||
"launchAtStartup": "Inici automàtic després d'iniciar sessió",
|
||||
"launchMinimized": "Inici automàtic: Inici minimitzat",
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
"open": "Otevřít",
|
||||
"queue": "Fronta",
|
||||
"quickSave": "Rychlé uložení",
|
||||
"quickSaveFromFavorites": "Rychlé uložení pro \"Oblíbené\"",
|
||||
"renamed": "Přejmenováno",
|
||||
"reset": "Resetovat",
|
||||
"restart": "Restartovat",
|
||||
@@ -67,6 +68,7 @@
|
||||
"nearbyDevices": "Zařízení v okolí",
|
||||
"thisDevice": "Toto zařízení",
|
||||
"scan": "Hledat zařízení",
|
||||
"manualSending": "Manuální odeslání",
|
||||
"sendMode": "Režim odesílání",
|
||||
"sendModes": {
|
||||
"single": "Jediný příjemce",
|
||||
@@ -97,6 +99,7 @@
|
||||
"system": "Systém"
|
||||
},
|
||||
"saveWindowPlacement": "Při ukončení uložit umístění okna",
|
||||
"saveWindowPlacementWindows": "Uložit polohu okna po ukončení",
|
||||
"minimizeToTray": "Při ukončení minimalizovat do lišty",
|
||||
"launchAtStartup": "Automatické spuštění po přihlášení",
|
||||
"launchMinimized": "Automatické spuštění: skrytý start",
|
||||
@@ -106,6 +109,7 @@
|
||||
"receive": {
|
||||
"title": "Soubory",
|
||||
"quickSave": "@:general.quickSave",
|
||||
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
|
||||
"requirePin": "@:webSharePage.requirePin",
|
||||
"autoFinish": "Automatické dokončování",
|
||||
"destination": "Uložit do",
|
||||
@@ -126,6 +130,8 @@
|
||||
"deviceModel": "Model zařízení",
|
||||
"port": "Port",
|
||||
"discoveryTimeout": "Časový limit zjišťování",
|
||||
"useSystemName": "Použít název systému",
|
||||
"generateRandomAlias": "Generovat náhodný alias",
|
||||
"portWarning": "Je možné, že vás ostatní zařízení nezjistí, protože používáte vlastní port. (výchozí: {defaultPort})",
|
||||
"encryption": "Šifrování",
|
||||
"multicastGroup": "Multicast",
|
||||
@@ -355,6 +361,10 @@
|
||||
"title": "@:general.quickSave",
|
||||
"content": "Požadavky na soubor jsou automaticky přijímány. Uvědomte si, že každý v místní síti vám může posílat soubory."
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "Požadavky na soubory jsou nyní automaticky přijímány ze zařízení ve vašem seznamu oblíbených."
|
||||
},
|
||||
"pin": {
|
||||
"title": "Vložit PIN"
|
||||
},
|
||||
@@ -375,7 +385,8 @@
|
||||
"tray": {
|
||||
"@info": "Apple Guidelines are very strict about the 'close' wording.",
|
||||
"open": "@:general.open",
|
||||
"close": "Ukončit LocalSend"
|
||||
"close": "Ukončit LocalSend",
|
||||
"closeWindows": "Konec"
|
||||
},
|
||||
"web": {
|
||||
"waiting": "@:sendPage.waiting",
|
||||
|
||||
@@ -130,6 +130,8 @@
|
||||
"deviceModel": "Modelo de dispositivo",
|
||||
"port": "Puerto",
|
||||
"discoveryTimeout": "Tiempo de espera para Detección",
|
||||
"useSystemName": "Usar el nombre del sistema",
|
||||
"generateRandomAlias": "Generar alias aleatorio",
|
||||
"portWarning": "Es posible que no seas visible para otros dispositivos porque estás utilizando un puerto personalizado. (Puerto por defecto: {defaultPort})",
|
||||
"encryption": "Encriptación",
|
||||
"multicastGroup": "Multicast",
|
||||
|
||||
+102
-74
@@ -28,6 +28,7 @@
|
||||
"open": "Buka",
|
||||
"queue": "Antrean",
|
||||
"quickSave": "Penyimpanan Cepat",
|
||||
"quickSaveFromFavorites": "Simpan Cepat untuk \"Favorites\"",
|
||||
"renamed": "Berganti nama",
|
||||
"reset": "Atur Ulang",
|
||||
"restart": "Mengulang Kembali",
|
||||
@@ -67,6 +68,7 @@
|
||||
"nearbyDevices": "Perangkat Terdekat",
|
||||
"thisDevice": "Perangkat ini",
|
||||
"scan": "Cari perangkat",
|
||||
"manualSending": "Kirim Manual",
|
||||
"sendMode": "Mode Pengiriman",
|
||||
"sendModes": {
|
||||
"single": "Penerima tunggal",
|
||||
@@ -97,14 +99,18 @@
|
||||
"system": "Sistem"
|
||||
},
|
||||
"saveWindowPlacement": "Keluar: Simpan posisi jendela",
|
||||
"saveWindowPlacementWindows": "Simpan posisi jendela setelah keluar",
|
||||
"minimizeToTray": "Keluar: Perkecil ke pojok bawah",
|
||||
"launchAtStartup": "Mulai otomatis setelah masuk",
|
||||
"launchMinimized": "Mulai otomatis: Berjalan di latar belakang",
|
||||
"showInContextMenu": "Tampilkan LocalSend di menu konteks",
|
||||
"animations": "Animasi"
|
||||
},
|
||||
"receive": {
|
||||
"title": "Menerima",
|
||||
"quickSave": "@:general.quickSave",
|
||||
"quickSaveFromFavorites": "@:general.quickSaveFromFavorites",
|
||||
"requirePin": "@:webSharePage.requirePin",
|
||||
"autoFinish": "Selesai Otomatis",
|
||||
"destination": "Tujuan",
|
||||
"downloads": "(Unduhan)",
|
||||
@@ -124,6 +130,8 @@
|
||||
"deviceModel": "Model Perangkat",
|
||||
"port": "Porta",
|
||||
"discoveryTimeout": "Waktu penemuan habis",
|
||||
"useSystemName": "Gunakan nama sistem",
|
||||
"generateRandomAlias": "Hasilkan alias acak",
|
||||
"portWarning": "Anda mungkin tidak terdeteksi oleh perangkat lain karena menggunakan port kustom. (bawaan: {defaultPort})",
|
||||
"encryption": "Enkripsi",
|
||||
"multicastGroup": "Multicast",
|
||||
@@ -148,6 +156,10 @@
|
||||
"solution": "Ini kemungkinan masalah firewall. Anda dapat memperbaikinya dengan memperbolehkan koneksi masuk (UDP dan TCP) pada port {port}.",
|
||||
"openFirewall": "Buka Tembok Api"
|
||||
},
|
||||
"noDiscovery": {
|
||||
"symptom": "Perangkat ini tidak dapat menemukan perangkat lain.",
|
||||
"solution": "Pastikan semua perangkat berada di jaringan Wi-Fi yang sama dan menggunakan konfigurasi yang sama (port, alamat multicast, enkripsi). Anda dapat mencoba mengetik alamat IP perangkat target secara manual. Jika ini berhasil, pertimbangkan untuk menambahkan perangkat ini ke daftar favorit sehingga bisa ditemukan secara otomatis di masa depan."
|
||||
},
|
||||
"noConnection": {
|
||||
"symptom": "Kedua perangkat tidak dapat saling menemukan atau berbagi berkas.",
|
||||
"solution": "Pastikan kedua perangkat berada dalam jaringan wifi yang sama dan berbagi konfigurasi yang sama (port, alamat multicast, enkripsi). Jika wifi tidak memperbolehkan komunikasi, aktifkan opsi ini pada ruter."
|
||||
@@ -160,6 +172,7 @@
|
||||
"empty": "Riwayat kosong.",
|
||||
"entryActions": {
|
||||
"open": "Buka berkas",
|
||||
"showInFolder": "Tampilkan di folder",
|
||||
"info": "Informasi",
|
||||
"deleteFromHistory": "Hapus dari riwayat"
|
||||
}
|
||||
@@ -192,6 +205,7 @@
|
||||
"sendPage": {
|
||||
"waiting": "Menunggu respons...",
|
||||
"rejected": "Penerima menolak permintaan.",
|
||||
"tooManyAttempts": "@:web.tooManyAttempts",
|
||||
"busy": "Penerima sedang sibuk dengan permintaan lain."
|
||||
},
|
||||
"progressPage": {
|
||||
@@ -223,6 +237,8 @@
|
||||
"noRequests": "Belum ada permintaan.",
|
||||
"encryption": "@:settingsTab.network.encryption",
|
||||
"autoAccept": "Terima permintaan secara otomatis",
|
||||
"requirePin": "Memerlukan PIN",
|
||||
"pinHint": "PIN-nya adalah \"{pin}\"",
|
||||
"encryptionHint": "LocalSend menggunakan sertifikat self-signed. Anda perlu menerimanya di peramban.",
|
||||
"pendingRequests": "Permintaan tertunda: {n}"
|
||||
},
|
||||
@@ -234,6 +250,7 @@
|
||||
],
|
||||
"author": "Pembuat",
|
||||
"contributors": "Daftar Kontributor",
|
||||
"packagers": "Pengemas",
|
||||
"translators": "Daftar Penerjemah"
|
||||
},
|
||||
"donationPage": {
|
||||
@@ -246,79 +263,6 @@
|
||||
"changelogPage": {
|
||||
"title": "Catatan Perubahan"
|
||||
},
|
||||
"aliasGenerator": {
|
||||
"@info": "Lokasi yang berbeda mungkin memiliki kata yang berbeda, memungkinkan ketidakcocokan 1:1",
|
||||
"adjectives": [
|
||||
"Menarik",
|
||||
"Cantik",
|
||||
"Besar",
|
||||
"Cerah",
|
||||
"Bersih",
|
||||
"Cerdik",
|
||||
"Keren",
|
||||
"Imut",
|
||||
"Licik",
|
||||
"Tekun",
|
||||
"Giat",
|
||||
"Efisien",
|
||||
"Luar biasa",
|
||||
"Cepat",
|
||||
"Baik",
|
||||
"Segar",
|
||||
"Bagus",
|
||||
"Menawan",
|
||||
"Sangat Bagus",
|
||||
"Tampan",
|
||||
"Panas",
|
||||
"Baik",
|
||||
"Menyenangkan",
|
||||
"Mistik",
|
||||
"Rapi",
|
||||
"Bagus",
|
||||
"Sabar",
|
||||
"Cantik",
|
||||
"Kuat",
|
||||
"Kaya",
|
||||
"Rahasia",
|
||||
"Cerdas",
|
||||
"Kukuh",
|
||||
"Khusus",
|
||||
"Strategis",
|
||||
"Tangguh",
|
||||
"Rapi",
|
||||
"Bijak"
|
||||
],
|
||||
"fruits": [
|
||||
"Apel",
|
||||
"Alpukat",
|
||||
"Pisang",
|
||||
"Blackberry",
|
||||
"Bluberi",
|
||||
"Brokoli",
|
||||
"Wortel",
|
||||
"Ceri",
|
||||
"Kelapa",
|
||||
"Anggur",
|
||||
"Lemon",
|
||||
"Selada",
|
||||
"Mangga",
|
||||
"Melon",
|
||||
"Jamur",
|
||||
"Bawang",
|
||||
"Jeruk",
|
||||
"Pepaya",
|
||||
"Persik",
|
||||
"Pir",
|
||||
"Nanas",
|
||||
"Kentang",
|
||||
"Labu",
|
||||
"Rasberi",
|
||||
"Stroberi",
|
||||
"Tomat"
|
||||
],
|
||||
"combination": "{fruit} {adjective}",
|
||||
"@combination": "Pada beberapa bahasa, kata sifat harus diletakkan terakhir."
|
||||
},
|
||||
"dialogs": {
|
||||
"addFile": {
|
||||
"title": "Tambahkan dalam pilihan",
|
||||
@@ -414,6 +358,13 @@
|
||||
"title": "@:general.quickSave",
|
||||
"content": "Semua permintaan akan langsung diterima. Harap berhati-hati bahwa semua orang di jaringan lokal dapat mengirim berkas."
|
||||
},
|
||||
"quickSaveFromFavoritesNotice": {
|
||||
"title": "@:general.quickSaveFromFavorites",
|
||||
"content": "Permintaan file sekarang diterima secara otomatis dari perangkat di daftar favorit Anda."
|
||||
},
|
||||
"pin": {
|
||||
"title": "Masukkan PIN"
|
||||
},
|
||||
"sendModeHelp": {
|
||||
"title": "Mode Pengiriman",
|
||||
"single": "Mengirim berkas ke satu penerima. Pilihan akan dihapus setelah selesai membagikan berkas.",
|
||||
@@ -431,10 +382,14 @@
|
||||
"tray": {
|
||||
"@info": "Pedoman Apple sangat ketat tentang kata-kata 'tutup'.",
|
||||
"open": "@:general.open",
|
||||
"close": "Tutup LocalSend"
|
||||
"close": "Tutup LocalSend",
|
||||
"closeWindows": "Keluar"
|
||||
},
|
||||
"web": {
|
||||
"waiting": "@:sendPage.waiting",
|
||||
"enterPin": "Masukkan PIN",
|
||||
"invalidPin": "PIN Salah",
|
||||
"tooManyAttempts": "Terlalu banyak percobaan",
|
||||
"rejected": "Ditolak",
|
||||
"files": "Berkas",
|
||||
"fileName": "Nama Berkas",
|
||||
@@ -470,5 +425,78 @@
|
||||
"sActionUseCameraHint": "Gunakan kamera",
|
||||
"sNameDurationLabel": "Durasi",
|
||||
"sUnitAssetCountLabel": "jumlah"
|
||||
},
|
||||
"aliasGenerator": {
|
||||
"@info": "Lokasi yang berbeda mungkin memiliki kata yang berbeda, memungkinkan ketidakcocokan 1:1",
|
||||
"adjectives": [
|
||||
"Menarik",
|
||||
"Cantik",
|
||||
"Besar",
|
||||
"Cerah",
|
||||
"Bersih",
|
||||
"Cerdik",
|
||||
"Keren",
|
||||
"Imut",
|
||||
"Licik",
|
||||
"Tekun",
|
||||
"Giat",
|
||||
"Efisien",
|
||||
"Luar biasa",
|
||||
"Cepat",
|
||||
"Baik",
|
||||
"Segar",
|
||||
"Bagus",
|
||||
"Menawan",
|
||||
"Sangat Bagus",
|
||||
"Tampan",
|
||||
"Panas",
|
||||
"Baik",
|
||||
"Menyenangkan",
|
||||
"Mistik",
|
||||
"Rapi",
|
||||
"Bagus",
|
||||
"Sabar",
|
||||
"Cantik",
|
||||
"Kuat",
|
||||
"Kaya",
|
||||
"Rahasia",
|
||||
"Cerdas",
|
||||
"Kukuh",
|
||||
"Khusus",
|
||||
"Strategis",
|
||||
"Tangguh",
|
||||
"Rapi",
|
||||
"Bijak"
|
||||
],
|
||||
"fruits": [
|
||||
"Apel",
|
||||
"Alpukat",
|
||||
"Pisang",
|
||||
"Blackberry",
|
||||
"Bluberi",
|
||||
"Brokoli",
|
||||
"Wortel",
|
||||
"Ceri",
|
||||
"Kelapa",
|
||||
"Anggur",
|
||||
"Lemon",
|
||||
"Selada",
|
||||
"Mangga",
|
||||
"Melon",
|
||||
"Jamur",
|
||||
"Bawang",
|
||||
"Jeruk",
|
||||
"Pepaya",
|
||||
"Persik",
|
||||
"Pir",
|
||||
"Nanas",
|
||||
"Kentang",
|
||||
"Labu",
|
||||
"Rasberi",
|
||||
"Stroberi",
|
||||
"Tomat"
|
||||
],
|
||||
"combination": "{fruit} {adjective}",
|
||||
"@combination": "Pada beberapa bahasa, kata sifat harus diletakkan terakhir."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,6 +130,8 @@
|
||||
"deviceModel": "Apparaatmodel",
|
||||
"port": "Poort",
|
||||
"discoveryTimeout": "Time-out voor scannen",
|
||||
"useSystemName": "Systeemnaam gebruiken",
|
||||
"generateRandomAlias": "Willekeurige naam genereren",
|
||||
"portWarning": "Je apparaat kan mogelijk niet worden gevonden omdat je een aangepaste poort gebruikt. (Standaard: {defaultPort})",
|
||||
"encryption": "Versleuteling",
|
||||
"multicastGroup": "Multicast-adres",
|
||||
|
||||
@@ -130,6 +130,8 @@
|
||||
"deviceModel": "Модел уређаја",
|
||||
"port": "Порт",
|
||||
"discoveryTimeout": "Откривање отказано",
|
||||
"useSystemName": "Користи име система",
|
||||
"generateRandomAlias": "Генериши случајни псеудоним",
|
||||
"portWarning": "Можда нећете бити пронађени од стране других уређаја јер користите неки други Порт. (default: {defaultPort})",
|
||||
"encryption": "Енкрипција",
|
||||
"multicastGroup": "Мултикаст",
|
||||
|
||||
@@ -130,6 +130,8 @@
|
||||
"deviceModel": "Model uredjaja",
|
||||
"port": "Port",
|
||||
"discoveryTimeout": "Otkrivanje otkazano",
|
||||
"useSystemName": "Koristi ime sistema",
|
||||
"generateRandomAlias": "Generiši slučajni pseudonim",
|
||||
"portWarning": "Možda nećete biti pronadjeni od strane drugih uredjaja jer koristite custom Port.(default: {defaultPort})",
|
||||
"encryption": "Enkripcija",
|
||||
"multicastGroup": "Multicast",
|
||||
|
||||
+3
-7
@@ -7,16 +7,12 @@ targets:
|
||||
fallback_strategy: base_locale
|
||||
input_directory: assets/i18n
|
||||
input_file_pattern: .json
|
||||
output_format: multiple_files
|
||||
string_interpolation: braces
|
||||
timestamp: false # for F-Droid Reproducible Builds
|
||||
flat_map: false
|
||||
gpt:
|
||||
model: gpt-4
|
||||
excludes:
|
||||
- 'bn'
|
||||
description: |
|
||||
"LocalSend" is a file sharing app that allows you to send files to other devices on the same network.
|
||||
format:
|
||||
enabled: true
|
||||
width: 150
|
||||
dart_mappable_builder:
|
||||
options:
|
||||
renameMethods:
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
<string>ro</string>
|
||||
<string>ru</string>
|
||||
<string>sk</string>
|
||||
<string>sl</string>
|
||||
<string>sr</string>
|
||||
<string>sr-Cyrl</string>
|
||||
<string>sv</string>
|
||||
|
||||
@@ -65,7 +65,7 @@ Future<RefenaContainer> preInit(List<String> args) async {
|
||||
await enableContextMenu();
|
||||
}
|
||||
|
||||
initI18n();
|
||||
await initI18n();
|
||||
|
||||
bool startHidden = false;
|
||||
if (checkPlatformIsDesktop()) {
|
||||
|
||||
+763
-130
@@ -1,129 +1,738 @@
|
||||
/// Generated file. Do not edit.
|
||||
///
|
||||
/// Original: assets/i18n
|
||||
/// Source: assets/i18n
|
||||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 45
|
||||
/// Strings: 14254 (316 per locale)
|
||||
/// Strings: 14357 (319 per locale)
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:slang/builder/model/node.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:slang/generated.dart';
|
||||
import 'package:slang_flutter/slang_flutter.dart';
|
||||
export 'package:slang_flutter/slang_flutter.dart';
|
||||
|
||||
import 'strings_ar.g.dart' deferred as l_ar;
|
||||
import 'strings_bn.g.dart' deferred as l_bn;
|
||||
import 'strings_ca.g.dart' deferred as l_ca;
|
||||
import 'strings_cs.g.dart' deferred as l_cs;
|
||||
import 'strings_da.g.dart' deferred as l_da;
|
||||
import 'strings_de.g.dart' deferred as l_de;
|
||||
import 'strings_el.g.dart' deferred as l_el;
|
||||
import 'strings_en_IN.g.dart' deferred as l_en_IN;
|
||||
import 'strings_es_ES.g.dart' deferred as l_es_ES;
|
||||
import 'strings_eu.g.dart' deferred as l_eu;
|
||||
import 'strings_fa.g.dart' deferred as l_fa;
|
||||
import 'strings_fi.g.dart' deferred as l_fi;
|
||||
import 'strings_fil_PH.g.dart' deferred as l_fil_PH;
|
||||
import 'strings_fr.g.dart' deferred as l_fr;
|
||||
import 'strings_gu.g.dart' deferred as l_gu;
|
||||
import 'strings_he.g.dart' deferred as l_he;
|
||||
import 'strings_hi.g.dart' deferred as l_hi;
|
||||
import 'strings_hu.g.dart' deferred as l_hu;
|
||||
import 'strings_id.g.dart' deferred as l_id;
|
||||
import 'strings_it.g.dart' deferred as l_it;
|
||||
import 'strings_ja.g.dart' deferred as l_ja;
|
||||
import 'strings_km.g.dart' deferred as l_km;
|
||||
import 'strings_ko.g.dart' deferred as l_ko;
|
||||
import 'strings_ms.g.dart' deferred as l_ms;
|
||||
import 'strings_ne.g.dart' deferred as l_ne;
|
||||
import 'strings_nl.g.dart' deferred as l_nl;
|
||||
import 'strings_pl.g.dart' deferred as l_pl;
|
||||
import 'strings_pt_BR.g.dart' deferred as l_pt_BR;
|
||||
import 'strings_pt_PT.g.dart' deferred as l_pt_PT;
|
||||
import 'strings_ro.g.dart' deferred as l_ro;
|
||||
import 'strings_ru.g.dart' deferred as l_ru;
|
||||
import 'strings_sk.g.dart' deferred as l_sk;
|
||||
import 'strings_sl.g.dart' deferred as l_sl;
|
||||
import 'strings_sr.g.dart' deferred as l_sr;
|
||||
import 'strings_sr_Cyrl.g.dart' deferred as l_sr_Cyrl;
|
||||
import 'strings_sv.g.dart' deferred as l_sv;
|
||||
import 'strings_th.g.dart' deferred as l_th;
|
||||
import 'strings_tr.g.dart' deferred as l_tr;
|
||||
import 'strings_uk.g.dart' deferred as l_uk;
|
||||
import 'strings_ur.g.dart' deferred as l_ur;
|
||||
import 'strings_vi.g.dart' deferred as l_vi;
|
||||
import 'strings_zh_CN.g.dart' deferred as l_zh_CN;
|
||||
import 'strings_zh_HK.g.dart' deferred as l_zh_HK;
|
||||
import 'strings_zh_TW.g.dart' deferred as l_zh_TW;
|
||||
part 'strings_en.g.dart';
|
||||
part 'strings_ar.g.dart';
|
||||
part 'strings_bn.g.dart';
|
||||
part 'strings_ca.g.dart';
|
||||
part 'strings_cs.g.dart';
|
||||
part 'strings_da.g.dart';
|
||||
part 'strings_de.g.dart';
|
||||
part 'strings_el.g.dart';
|
||||
part 'strings_en_IN.g.dart';
|
||||
part 'strings_es_ES.g.dart';
|
||||
part 'strings_eu.g.dart';
|
||||
part 'strings_fa.g.dart';
|
||||
part 'strings_fi.g.dart';
|
||||
part 'strings_fil_PH.g.dart';
|
||||
part 'strings_fr.g.dart';
|
||||
part 'strings_gu.g.dart';
|
||||
part 'strings_he.g.dart';
|
||||
part 'strings_hi.g.dart';
|
||||
part 'strings_hu.g.dart';
|
||||
part 'strings_id.g.dart';
|
||||
part 'strings_it.g.dart';
|
||||
part 'strings_ja.g.dart';
|
||||
part 'strings_km.g.dart';
|
||||
part 'strings_ko.g.dart';
|
||||
part 'strings_ms.g.dart';
|
||||
part 'strings_ne.g.dart';
|
||||
part 'strings_nl.g.dart';
|
||||
part 'strings_pl.g.dart';
|
||||
part 'strings_pt_BR.g.dart';
|
||||
part 'strings_pt_PT.g.dart';
|
||||
part 'strings_ro.g.dart';
|
||||
part 'strings_ru.g.dart';
|
||||
part 'strings_sk.g.dart';
|
||||
part 'strings_sl_SI.g.dart';
|
||||
part 'strings_sr.g.dart';
|
||||
part 'strings_sr_Cyrl.g.dart';
|
||||
part 'strings_sv.g.dart';
|
||||
part 'strings_th.g.dart';
|
||||
part 'strings_tr.g.dart';
|
||||
part 'strings_uk.g.dart';
|
||||
part 'strings_ur.g.dart';
|
||||
part 'strings_vi.g.dart';
|
||||
part 'strings_zh_CN.g.dart';
|
||||
part 'strings_zh_HK.g.dart';
|
||||
part 'strings_zh_TW.g.dart';
|
||||
|
||||
const AppLocale _baseLocale = AppLocale.en;
|
||||
|
||||
/// Supported locales, see extension methods below.
|
||||
/// Supported locales.
|
||||
///
|
||||
/// Usage:
|
||||
/// - LocaleSettings.setLocale(AppLocale.en) // set locale
|
||||
/// - Locale locale = AppLocale.en.flutterLocale // get flutter locale from enum
|
||||
/// - if (LocaleSettings.currentLocale == AppLocale.en) // locale check
|
||||
enum AppLocale with BaseAppLocale<AppLocale, Translations> {
|
||||
en(languageCode: 'en', build: Translations.build),
|
||||
ar(languageCode: 'ar', build: _StringsAr.build),
|
||||
bn(languageCode: 'bn', build: _StringsBn.build),
|
||||
ca(languageCode: 'ca', build: _StringsCa.build),
|
||||
cs(languageCode: 'cs', build: _StringsCs.build),
|
||||
da(languageCode: 'da', build: _StringsDa.build),
|
||||
de(languageCode: 'de', build: _StringsDe.build),
|
||||
el(languageCode: 'el', build: _StringsEl.build),
|
||||
enIn(languageCode: 'en', countryCode: 'IN', build: _StringsEnIn.build),
|
||||
esEs(languageCode: 'es', countryCode: 'ES', build: _StringsEsEs.build),
|
||||
eu(languageCode: 'eu', build: _StringsEu.build),
|
||||
fa(languageCode: 'fa', build: _StringsFa.build),
|
||||
fi(languageCode: 'fi', build: _StringsFi.build),
|
||||
filPh(languageCode: 'fil', countryCode: 'PH', build: _StringsFilPh.build),
|
||||
fr(languageCode: 'fr', build: _StringsFr.build),
|
||||
gu(languageCode: 'gu', build: _StringsGu.build),
|
||||
he(languageCode: 'he', build: _StringsHe.build),
|
||||
hi(languageCode: 'hi', build: _StringsHi.build),
|
||||
hu(languageCode: 'hu', build: _StringsHu.build),
|
||||
id(languageCode: 'id', build: _StringsId.build),
|
||||
it(languageCode: 'it', build: _StringsIt.build),
|
||||
ja(languageCode: 'ja', build: _StringsJa.build),
|
||||
km(languageCode: 'km', build: _StringsKm.build),
|
||||
ko(languageCode: 'ko', build: _StringsKo.build),
|
||||
ms(languageCode: 'ms', build: _StringsMs.build),
|
||||
ne(languageCode: 'ne', build: _StringsNe.build),
|
||||
nl(languageCode: 'nl', build: _StringsNl.build),
|
||||
pl(languageCode: 'pl', build: _StringsPl.build),
|
||||
ptBr(languageCode: 'pt', countryCode: 'BR', build: _StringsPtBr.build),
|
||||
ptPt(languageCode: 'pt', countryCode: 'PT', build: _StringsPtPt.build),
|
||||
ro(languageCode: 'ro', build: _StringsRo.build),
|
||||
ru(languageCode: 'ru', build: _StringsRu.build),
|
||||
sk(languageCode: 'sk', build: _StringsSk.build),
|
||||
slSi(languageCode: 'sl', countryCode: 'SI', build: _StringsSlSi.build),
|
||||
sr(languageCode: 'sr', build: _StringsSr.build),
|
||||
srCyrl(languageCode: 'sr', scriptCode: 'Cyrl', build: _StringsSrCyrl.build),
|
||||
sv(languageCode: 'sv', build: _StringsSv.build),
|
||||
th(languageCode: 'th', build: _StringsTh.build),
|
||||
tr(languageCode: 'tr', build: _StringsTr.build),
|
||||
uk(languageCode: 'uk', build: _StringsUk.build),
|
||||
ur(languageCode: 'ur', build: _StringsUr.build),
|
||||
vi(languageCode: 'vi', build: _StringsVi.build),
|
||||
zhCn(languageCode: 'zh', countryCode: 'CN', build: _StringsZhCn.build),
|
||||
zhHk(languageCode: 'zh', countryCode: 'HK', build: _StringsZhHk.build),
|
||||
zhTw(languageCode: 'zh', countryCode: 'TW', build: _StringsZhTw.build);
|
||||
en(languageCode: 'en'),
|
||||
ar(languageCode: 'ar'),
|
||||
bn(languageCode: 'bn'),
|
||||
ca(languageCode: 'ca'),
|
||||
cs(languageCode: 'cs'),
|
||||
da(languageCode: 'da'),
|
||||
de(languageCode: 'de'),
|
||||
el(languageCode: 'el'),
|
||||
enIn(languageCode: 'en', countryCode: 'IN'),
|
||||
esEs(languageCode: 'es', countryCode: 'ES'),
|
||||
eu(languageCode: 'eu'),
|
||||
fa(languageCode: 'fa'),
|
||||
fi(languageCode: 'fi'),
|
||||
filPh(languageCode: 'fil', countryCode: 'PH'),
|
||||
fr(languageCode: 'fr'),
|
||||
gu(languageCode: 'gu'),
|
||||
he(languageCode: 'he'),
|
||||
hi(languageCode: 'hi'),
|
||||
hu(languageCode: 'hu'),
|
||||
id(languageCode: 'id'),
|
||||
it(languageCode: 'it'),
|
||||
ja(languageCode: 'ja'),
|
||||
km(languageCode: 'km'),
|
||||
ko(languageCode: 'ko'),
|
||||
ms(languageCode: 'ms'),
|
||||
ne(languageCode: 'ne'),
|
||||
nl(languageCode: 'nl'),
|
||||
pl(languageCode: 'pl'),
|
||||
ptBr(languageCode: 'pt', countryCode: 'BR'),
|
||||
ptPt(languageCode: 'pt', countryCode: 'PT'),
|
||||
ro(languageCode: 'ro'),
|
||||
ru(languageCode: 'ru'),
|
||||
sk(languageCode: 'sk'),
|
||||
sl(languageCode: 'sl'),
|
||||
sr(languageCode: 'sr'),
|
||||
srCyrl(languageCode: 'sr', scriptCode: 'Cyrl'),
|
||||
sv(languageCode: 'sv'),
|
||||
th(languageCode: 'th'),
|
||||
tr(languageCode: 'tr'),
|
||||
uk(languageCode: 'uk'),
|
||||
ur(languageCode: 'ur'),
|
||||
vi(languageCode: 'vi'),
|
||||
zhCn(languageCode: 'zh', countryCode: 'CN'),
|
||||
zhHk(languageCode: 'zh', countryCode: 'HK'),
|
||||
zhTw(languageCode: 'zh', countryCode: 'TW');
|
||||
|
||||
const AppLocale({required this.languageCode, this.scriptCode, this.countryCode, required this.build}); // ignore: unused_element
|
||||
const AppLocale({
|
||||
required this.languageCode,
|
||||
this.scriptCode, // ignore: unused_element
|
||||
this.countryCode, // ignore: unused_element
|
||||
});
|
||||
|
||||
@override final String languageCode;
|
||||
@override final String? scriptCode;
|
||||
@override final String? countryCode;
|
||||
@override final TranslationBuilder<AppLocale, Translations> build;
|
||||
@override
|
||||
final String languageCode;
|
||||
@override
|
||||
final String? scriptCode;
|
||||
@override
|
||||
final String? countryCode;
|
||||
|
||||
/// Gets current instance managed by [LocaleSettings].
|
||||
Translations get translations => LocaleSettings.instance.translationMap[this]!;
|
||||
@override
|
||||
Future<Translations> build({
|
||||
Map<String, Node>? overrides,
|
||||
PluralResolver? cardinalResolver,
|
||||
PluralResolver? ordinalResolver,
|
||||
}) async {
|
||||
switch (this) {
|
||||
case AppLocale.en:
|
||||
return TranslationsEn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ar:
|
||||
await l_ar.loadLibrary();
|
||||
return l_ar.TranslationsAr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.bn:
|
||||
await l_bn.loadLibrary();
|
||||
return l_bn.TranslationsBn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ca:
|
||||
await l_ca.loadLibrary();
|
||||
return l_ca.TranslationsCa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.cs:
|
||||
await l_cs.loadLibrary();
|
||||
return l_cs.TranslationsCs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.da:
|
||||
await l_da.loadLibrary();
|
||||
return l_da.TranslationsDa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.de:
|
||||
await l_de.loadLibrary();
|
||||
return l_de.TranslationsDe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.el:
|
||||
await l_el.loadLibrary();
|
||||
return l_el.TranslationsEl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.enIn:
|
||||
await l_en_IN.loadLibrary();
|
||||
return l_en_IN.TranslationsEnIn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.esEs:
|
||||
await l_es_ES.loadLibrary();
|
||||
return l_es_ES.TranslationsEsEs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.eu:
|
||||
await l_eu.loadLibrary();
|
||||
return l_eu.TranslationsEu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fa:
|
||||
await l_fa.loadLibrary();
|
||||
return l_fa.TranslationsFa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fi:
|
||||
await l_fi.loadLibrary();
|
||||
return l_fi.TranslationsFi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.filPh:
|
||||
await l_fil_PH.loadLibrary();
|
||||
return l_fil_PH.TranslationsFilPh(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fr:
|
||||
await l_fr.loadLibrary();
|
||||
return l_fr.TranslationsFr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.gu:
|
||||
await l_gu.loadLibrary();
|
||||
return l_gu.TranslationsGu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.he:
|
||||
await l_he.loadLibrary();
|
||||
return l_he.TranslationsHe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.hi:
|
||||
await l_hi.loadLibrary();
|
||||
return l_hi.TranslationsHi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.hu:
|
||||
await l_hu.loadLibrary();
|
||||
return l_hu.TranslationsHu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.id:
|
||||
await l_id.loadLibrary();
|
||||
return l_id.TranslationsId(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.it:
|
||||
await l_it.loadLibrary();
|
||||
return l_it.TranslationsIt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ja:
|
||||
await l_ja.loadLibrary();
|
||||
return l_ja.TranslationsJa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.km:
|
||||
await l_km.loadLibrary();
|
||||
return l_km.TranslationsKm(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ko:
|
||||
await l_ko.loadLibrary();
|
||||
return l_ko.TranslationsKo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ms:
|
||||
await l_ms.loadLibrary();
|
||||
return l_ms.TranslationsMs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ne:
|
||||
await l_ne.loadLibrary();
|
||||
return l_ne.TranslationsNe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.nl:
|
||||
await l_nl.loadLibrary();
|
||||
return l_nl.TranslationsNl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.pl:
|
||||
await l_pl.loadLibrary();
|
||||
return l_pl.TranslationsPl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ptBr:
|
||||
await l_pt_BR.loadLibrary();
|
||||
return l_pt_BR.TranslationsPtBr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ptPt:
|
||||
await l_pt_PT.loadLibrary();
|
||||
return l_pt_PT.TranslationsPtPt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ro:
|
||||
await l_ro.loadLibrary();
|
||||
return l_ro.TranslationsRo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ru:
|
||||
await l_ru.loadLibrary();
|
||||
return l_ru.TranslationsRu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sk:
|
||||
await l_sk.loadLibrary();
|
||||
return l_sk.TranslationsSk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sl:
|
||||
await l_sl.loadLibrary();
|
||||
return l_sl.TranslationsSl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sr:
|
||||
await l_sr.loadLibrary();
|
||||
return l_sr.TranslationsSr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.srCyrl:
|
||||
await l_sr_Cyrl.loadLibrary();
|
||||
return l_sr_Cyrl.TranslationsSrCyrl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sv:
|
||||
await l_sv.loadLibrary();
|
||||
return l_sv.TranslationsSv(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.th:
|
||||
await l_th.loadLibrary();
|
||||
return l_th.TranslationsTh(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.tr:
|
||||
await l_tr.loadLibrary();
|
||||
return l_tr.TranslationsTr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.uk:
|
||||
await l_uk.loadLibrary();
|
||||
return l_uk.TranslationsUk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ur:
|
||||
await l_ur.loadLibrary();
|
||||
return l_ur.TranslationsUr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.vi:
|
||||
await l_vi.loadLibrary();
|
||||
return l_vi.TranslationsVi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zhCn:
|
||||
await l_zh_CN.loadLibrary();
|
||||
return l_zh_CN.TranslationsZhCn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zhHk:
|
||||
await l_zh_HK.loadLibrary();
|
||||
return l_zh_HK.TranslationsZhHk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zhTw:
|
||||
await l_zh_TW.loadLibrary();
|
||||
return l_zh_TW.TranslationsZhTw(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Translations buildSync({
|
||||
Map<String, Node>? overrides,
|
||||
PluralResolver? cardinalResolver,
|
||||
PluralResolver? ordinalResolver,
|
||||
}) {
|
||||
switch (this) {
|
||||
case AppLocale.en:
|
||||
return TranslationsEn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ar:
|
||||
return l_ar.TranslationsAr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.bn:
|
||||
return l_bn.TranslationsBn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ca:
|
||||
return l_ca.TranslationsCa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.cs:
|
||||
return l_cs.TranslationsCs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.da:
|
||||
return l_da.TranslationsDa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.de:
|
||||
return l_de.TranslationsDe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.el:
|
||||
return l_el.TranslationsEl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.enIn:
|
||||
return l_en_IN.TranslationsEnIn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.esEs:
|
||||
return l_es_ES.TranslationsEsEs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.eu:
|
||||
return l_eu.TranslationsEu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fa:
|
||||
return l_fa.TranslationsFa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fi:
|
||||
return l_fi.TranslationsFi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.filPh:
|
||||
return l_fil_PH.TranslationsFilPh(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.fr:
|
||||
return l_fr.TranslationsFr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.gu:
|
||||
return l_gu.TranslationsGu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.he:
|
||||
return l_he.TranslationsHe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.hi:
|
||||
return l_hi.TranslationsHi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.hu:
|
||||
return l_hu.TranslationsHu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.id:
|
||||
return l_id.TranslationsId(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.it:
|
||||
return l_it.TranslationsIt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ja:
|
||||
return l_ja.TranslationsJa(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.km:
|
||||
return l_km.TranslationsKm(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ko:
|
||||
return l_ko.TranslationsKo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ms:
|
||||
return l_ms.TranslationsMs(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ne:
|
||||
return l_ne.TranslationsNe(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.nl:
|
||||
return l_nl.TranslationsNl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.pl:
|
||||
return l_pl.TranslationsPl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ptBr:
|
||||
return l_pt_BR.TranslationsPtBr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ptPt:
|
||||
return l_pt_PT.TranslationsPtPt(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ro:
|
||||
return l_ro.TranslationsRo(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ru:
|
||||
return l_ru.TranslationsRu(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sk:
|
||||
return l_sk.TranslationsSk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sl:
|
||||
return l_sl.TranslationsSl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sr:
|
||||
return l_sr.TranslationsSr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.srCyrl:
|
||||
return l_sr_Cyrl.TranslationsSrCyrl(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.sv:
|
||||
return l_sv.TranslationsSv(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.th:
|
||||
return l_th.TranslationsTh(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.tr:
|
||||
return l_tr.TranslationsTr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.uk:
|
||||
return l_uk.TranslationsUk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.ur:
|
||||
return l_ur.TranslationsUr(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.vi:
|
||||
return l_vi.TranslationsVi(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zhCn:
|
||||
return l_zh_CN.TranslationsZhCn(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zhHk:
|
||||
return l_zh_HK.TranslationsZhHk(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
case AppLocale.zhTw:
|
||||
return l_zh_TW.TranslationsZhTw(
|
||||
overrides: overrides,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// Gets current instance managed by [LocaleSettings].
|
||||
Translations get translations => LocaleSettings.instance.getTranslations(this);
|
||||
}
|
||||
|
||||
/// Method A: Simple
|
||||
@@ -151,9 +760,9 @@ Translations get t => LocaleSettings.instance.currentTranslations;
|
||||
/// final t = Translations.of(context); // Get t variable.
|
||||
/// String a = t.someKey.anotherKey; // Use t variable.
|
||||
class TranslationProvider extends BaseTranslationProvider<AppLocale, Translations> {
|
||||
TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
|
||||
TranslationProvider({required super.child}) : super(settings: LocaleSettings.instance);
|
||||
|
||||
static InheritedLocaleData<AppLocale, Translations> of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context);
|
||||
static InheritedLocaleData<AppLocale, Translations> of(BuildContext context) => InheritedLocaleData.of<AppLocale, Translations>(context);
|
||||
}
|
||||
|
||||
/// Method B shorthand via [BuildContext] extension method.
|
||||
@@ -162,41 +771,65 @@ class TranslationProvider extends BaseTranslationProvider<AppLocale, Translation
|
||||
/// Usage (e.g. in a widget's build method):
|
||||
/// context.t.someKey.anotherKey
|
||||
extension BuildContextTranslationsExtension on BuildContext {
|
||||
Translations get t => TranslationProvider.of(this).translations;
|
||||
Translations get t => TranslationProvider.of(this).translations;
|
||||
}
|
||||
|
||||
/// Manages all translation instances and the current locale
|
||||
class LocaleSettings extends BaseFlutterLocaleSettings<AppLocale, Translations> {
|
||||
LocaleSettings._() : super(utils: AppLocaleUtils.instance);
|
||||
LocaleSettings._()
|
||||
: super(
|
||||
utils: AppLocaleUtils.instance,
|
||||
lazy: true,
|
||||
);
|
||||
|
||||
static final instance = LocaleSettings._();
|
||||
static final instance = LocaleSettings._();
|
||||
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale get currentLocale => instance.currentLocale;
|
||||
static Stream<AppLocale> getLocaleStream() => instance.getLocaleStream();
|
||||
static AppLocale setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) => instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) => instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale useDeviceLocale() => instance.useDeviceLocale();
|
||||
@Deprecated('Use [AppLocaleUtils.supportedLocales]') static List<Locale> get supportedLocales => instance.supportedLocales;
|
||||
@Deprecated('Use [AppLocaleUtils.supportedLocalesRaw]') static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
|
||||
static void setPluralResolver({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) => instance.setPluralResolver(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale get currentLocale => instance.currentLocale;
|
||||
static Stream<AppLocale> getLocaleStream() => instance.getLocaleStream();
|
||||
static Future<AppLocale> setLocale(AppLocale locale, {bool? listenToDeviceLocale = false}) =>
|
||||
instance.setLocale(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static Future<AppLocale> setLocaleRaw(String rawLocale, {bool? listenToDeviceLocale = false}) =>
|
||||
instance.setLocaleRaw(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static Future<AppLocale> useDeviceLocale() => instance.useDeviceLocale();
|
||||
static Future<void> setPluralResolver({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) =>
|
||||
instance.setPluralResolver(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
|
||||
// synchronous versions
|
||||
static AppLocale setLocaleSync(AppLocale locale, {bool? listenToDeviceLocale = false}) =>
|
||||
instance.setLocaleSync(locale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale setLocaleRawSync(String rawLocale, {bool? listenToDeviceLocale = false}) =>
|
||||
instance.setLocaleRawSync(rawLocale, listenToDeviceLocale: listenToDeviceLocale);
|
||||
static AppLocale useDeviceLocaleSync() => instance.useDeviceLocaleSync();
|
||||
static void setPluralResolverSync({String? language, AppLocale? locale, PluralResolver? cardinalResolver, PluralResolver? ordinalResolver}) =>
|
||||
instance.setPluralResolverSync(
|
||||
language: language,
|
||||
locale: locale,
|
||||
cardinalResolver: cardinalResolver,
|
||||
ordinalResolver: ordinalResolver,
|
||||
);
|
||||
}
|
||||
|
||||
/// Provides utility functions without any side effects.
|
||||
class AppLocaleUtils extends BaseAppLocaleUtils<AppLocale, Translations> {
|
||||
AppLocaleUtils._() : super(baseLocale: _baseLocale, locales: AppLocale.values);
|
||||
AppLocaleUtils._()
|
||||
: super(
|
||||
baseLocale: AppLocale.en,
|
||||
locales: AppLocale.values,
|
||||
);
|
||||
|
||||
static final instance = AppLocaleUtils._();
|
||||
static final instance = AppLocaleUtils._();
|
||||
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
|
||||
static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) => instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
|
||||
static AppLocale findDeviceLocale() => instance.findDeviceLocale();
|
||||
static List<Locale> get supportedLocales => instance.supportedLocales;
|
||||
static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
|
||||
// static aliases (checkout base methods for documentation)
|
||||
static AppLocale parse(String rawLocale) => instance.parse(rawLocale);
|
||||
static AppLocale parseLocaleParts({required String languageCode, String? scriptCode, String? countryCode}) =>
|
||||
instance.parseLocaleParts(languageCode: languageCode, scriptCode: scriptCode, countryCode: countryCode);
|
||||
static AppLocale findDeviceLocale() => instance.findDeviceLocale();
|
||||
static List<Locale> get supportedLocales => instance.supportedLocales;
|
||||
static List<String> get supportedLocalesRaw => instance.supportedLocalesRaw;
|
||||
}
|
||||
|
||||
+1201
-705
File diff suppressed because it is too large
Load Diff
+1098
-648
File diff suppressed because it is too large
Load Diff
+1274
-588
File diff suppressed because it is too large
Load Diff
+1138
-623
File diff suppressed because it is too large
Load Diff
+1129
-635
File diff suppressed because it is too large
Load Diff
+1116
-626
File diff suppressed because it is too large
Load Diff
+1117
-656
File diff suppressed because it is too large
Load Diff
+729
-716
File diff suppressed because it is too large
Load Diff
+1164
-685
File diff suppressed because it is too large
Load Diff
+1137
-635
File diff suppressed because it is too large
Load Diff
+966
-543
File diff suppressed because it is too large
Load Diff
+1204
-705
File diff suppressed because it is too large
Load Diff
+1144
-677
File diff suppressed because it is too large
Load Diff
+1207
-705
File diff suppressed because it is too large
Load Diff
+1138
-637
File diff suppressed because it is too large
Load Diff
+1134
-670
File diff suppressed because it is too large
Load Diff
+1131
-637
File diff suppressed because it is too large
Load Diff
+1165
-685
File diff suppressed because it is too large
Load Diff
+1115
-626
File diff suppressed because it is too large
Load Diff
+1229
-676
File diff suppressed because it is too large
Load Diff
+1132
-635
File diff suppressed because it is too large
Load Diff
+1124
-635
File diff suppressed because it is too large
Load Diff
+1101
-648
File diff suppressed because it is too large
Load Diff
+1102
-623
File diff suppressed because it is too large
Load Diff
+1193
-697
File diff suppressed because it is too large
Load Diff
+985
-583
File diff suppressed because it is too large
Load Diff
+1137
-635
File diff suppressed because it is too large
Load Diff
+1151
-637
File diff suppressed because it is too large
Load Diff
+1197
-695
File diff suppressed because it is too large
Load Diff
+1143
-673
File diff suppressed because it is too large
Load Diff
+1163
-683
File diff suppressed because it is too large
Load Diff
+1136
-637
File diff suppressed because it is too large
Load Diff
+1202
-705
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1207
-705
File diff suppressed because it is too large
Load Diff
+1208
-705
File diff suppressed because it is too large
Load Diff
+983
-583
File diff suppressed because it is too large
Load Diff
+1183
-693
File diff suppressed because it is too large
Load Diff
+1114
-626
File diff suppressed because it is too large
Load Diff
+1136
-637
File diff suppressed because it is too large
Load Diff
+1113
-626
File diff suppressed because it is too large
Load Diff
+1093
-615
File diff suppressed because it is too large
Load Diff
+1198
-706
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user