From c5faff37970d864bf8cce6ee0ef014b855adcebd Mon Sep 17 00:00:00 2001 From: Luqman Fadlli Date: Tue, 12 May 2026 15:12:49 +0700 Subject: [PATCH] add Indonesian language support Added Indonesian (Bahasa Indonesia) translation to the project. Files updated: - Translated strings added to the `values-id` directory. - Hooked up the new language option in `AppLanguage.kt`. - Registered the `id` locale in Android's `locale_config.xml`. --- .../src/androidMain/res/xml/locale_config.xml | 15 +- .../composeResources/values-id/strings.xml | 1246 +++++++++++++++++ .../app/features/settings/AppLanguage.kt | 22 +- 3 files changed, 1266 insertions(+), 17 deletions(-) create mode 100644 composeApp/src/commonMain/composeResources/values-id/strings.xml diff --git a/composeApp/src/androidMain/res/xml/locale_config.xml b/composeApp/src/androidMain/res/xml/locale_config.xml index 2badd023..180d60c4 100644 --- a/composeApp/src/androidMain/res/xml/locale_config.xml +++ b/composeApp/src/androidMain/res/xml/locale_config.xml @@ -1,13 +1,14 @@ + - - - - - - - + + + + + + + diff --git a/composeApp/src/commonMain/composeResources/values-id/strings.xml b/composeApp/src/commonMain/composeResources/values-id/strings.xml new file mode 100644 index 00000000..d4e53889 --- /dev/null +++ b/composeApp/src/commonMain/composeResources/values-id/strings.xml @@ -0,0 +1,1246 @@ + + + Open recognition and project credits + Kembali + Batal + Tutup + Hapus + Selesai + Edit + Impor + Berikutnya + OK + Putar + Sebelumnya + Hapus + Ubah Urutan + Reset ke Default + Lanjutkan + Coba Lagi + Simpan + Menginstal + Addon + Aktif + %1$d catalogs + Dapat Dikonfigurasi + Menyegarkan + %1$d resources + Tidak Tersedia + Konfigurasi addon + Hapus addon + Add a manifest URL to start loading catalogs, metadata, streams or subtitles into Nuvio. + Belum ada addon yang terpasang. + Enter an addon URL. + URL Addon + Pasang Addon + Loading manifest details... + Validating the manifest URL and loading addon details before install. + Memeriksa Addon + Instalasi Gagal + %1$s was validated and added successfully. + Addon Terpasang + Pindahkan addon ke bawah + Pindahkan addon ke atas + Aktif + Addon + Catalogs + Refresh addon + Add Addon + Installed Addons + Ikhtisar + %1$d id rules + Versi %1$s + Dipilih + Salin JSON + %1$d collection(s), %2$d folder(s) + Delete "%1$s"? This cannot be undone. + Hapus Koleksi + Add Catalog + Tambah Folder + Semua genre + Add catalogs from your installed addons to define what this folder shows. + No catalog sources yet + Pilih + Emoji + URL Gambar + Tidak Ada + Sampul + Buat Koleksi + Selesai + Edit Collection + Edit Folder + Set the folder identity, presentation, and catalog sources with the same structure as the main collections editor. + Add one to get started. + No folders yet + Folder + Filter Genre + Only show the cover image + Sembunyikan Judul + Folder Baru + Show this collection above all regular home catalogs. Multiple pinned collections follow collection creation order. + Pin Above Catalogs + Backdrop image URL (optional) + Folder name + Animated GIF URL (plays only while focused) + Collection name + Simpan Perubahan + Simpan + Tampilan + Dasar + Catalog Sources + Choose the addon catalogs this folder should aggregate. + Pilih Katalog + Select genre + %1$d selected + %1$d catalogs + %1$d selected + Poster + Kotak + Lebar + Combine all catalogs into one tab + Show \"All\" Tab + Play the configured GIF instead of the static cover when available. + Show GIF When Configured + %1$d source(s) · %2$s + Tile Shape + Baris + Tab + Mode Tampilan + TMDB Sources + Public List + Production + Network + Collection + Person + Director + Custom + Pick a ready-made source. You can edit or remove it after adding. + Paste a public TMDB list URL or only the number from the URL. + Search by studio name, or paste a TMDB company ID/URL and add it directly. + Enter a network ID. Common networks are available in Presets and quick filters. + Search a movie collection name or paste the collection ID from TMDB. + Enter a TMDB person ID or URL to build a row from cast credits. + Enter a TMDB person ID or URL to build a row from director credits. + Build a live TMDB row using optional filters. Leave fields empty when you do not need that filter. + Public TMDB list + Network ID + Collection ID + Person ID + Production company name, ID, or URL + TMDB ID or URL + https://www.themoviedb.org/list/8504994 or 8504994 + 213 for Netflix, 49 for HBO, 2739 for Disney+ + 10 for Star Wars Collection + Marvel Studios, 420, or company URL + 31 for Tom Hanks, or person URL + Examples: Marvel Studios, 420, or https://www.themoviedb.org/company/420. + Example: Star Wars Collection, Harry Potter Collection, or a collection URL. + Example IDs: Netflix 213, HBO 49, Disney+ 2739. + Example: https://www.themoviedb.org/list/8504994 or 8504994. + Example: https://www.themoviedb.org/person/31-tom-hanks or 31. + Display title + Shown as the row/tab name. If blank, Nuvio creates one from the source. + Marvel Movies, Netflix Originals, Pixar + Tom Hanks Movies, Favorite Actors + Christopher Nolan Movies, Favorite Directors + Best Action Movies, Korean Dramas, 2024 Animation + Search Results + TMDB Collection + TMDB Company %1$d + TMDB Collection %1$d + Type + Film + Serial + Keduanya + Urutkan + Filter + Leave fields empty when you do not need that filter. + Quick genres + Quick languages + Quick countries + Quick keywords + Quick studios + Quick networks + Genre IDs + Use TMDB genre numbers. Separate multiple with commas for AND, or pipes for OR. + Release or air date from + Release or air date to + Use YYYY-MM-DD, for example 2024-01-01. + Minimum rating + Maximum rating + TMDB rating from 0 to 10. Example: 7.0. + Minimum votes + Use this to avoid obscure low-vote titles. Example: 100. + Original language + Use two-letter language codes, for example en, ko, ja, hi. + Origin country + Use two-letter country codes, for example US, KR, JP, IN. + Keyword IDs + Use TMDB keyword numbers. Quick chips fill common examples. + 9715 for superhero + Company IDs + Use studio/company IDs. Quick chips fill common examples. + 420 for Marvel Studios + Network IDs + For series only. Use network IDs like Netflix 213 or HBO 49. + 213 for Netflix + Year + Use a four-digit year, for example 2024. + Presets + Cari + Add Source + Add Trakt List + Edit Trakt List + Trakt Lists + Trakt list + Search title, Trakt URL, or list ID + Use a public Trakt list URL or numeric list ID, or search by name. + Weekend Watch, Award Winners + Search Results + Trending Lists + Popular Lists + Direction + Ascending + Descending + List Order + Recently Added + Title + Released + Runtime + Populer + Percentage + Votes + Aksi + Petualangan + Animasi + Komedi + Horor + Fiksi Ilmiah + Drama + Kriminal + Reality + Inggris + Korea + Jepang + Hindi + Spanyol + Amerika Serikat + Korea + Jepang + India + Inggris + Superhero + Based on Novel + Time Travel + Space + Marvel + Disney + Pixar + Lucasfilm + Warner Bros. + Netflix + HBO + Disney+ + Prime Video + Hulu + Original + Populer + Top Rated + Terbaru + TMDB List + TMDB Movie Collection + Production + Network + Person + Director + TMDB Discover + Create one to organize your catalogs. + Belum ada koleksi + %1$d folder(s) + No items found + Folder not found + Koleksi + Impor Koleksi + JSON + Paste your collections JSON below. + Impor + Koleksi Baru + Disematkan + Semua + Koleksi Anda + Dibuat dengan ❤️ oleh Tapframe dan teman-teman + Version %1$s (%2$s) + Mati + Nyala + Jeda + Muat Ulang + Already have an account? + Continue Without Account + Buat Akun + Don't have an account? + Email + or + Kata Sandi + Sign in to access your library and progress + Masuk + Sign up to sync your data across devices + Daftar + Your data will only be stored locally + Stream everything, everywhere + Selamat Datang Kembali + Perpustakaan + Trakt Library + Beranda + Perpustakaan + Profil + Cari + Audio Tracks + Audio + Built-in + Bottom Offset + Tutup pemutar + Color + Sedang diputar + E%1$d + S%1$dE%2$d + S%1$dE%2$d • %3$s + Episode + Ukuran Font + %1$dsp + Kunci kontrol pemutar + No audio tracks available + No episodes available + Tidak ada stream ditemukan + Tidak Ada + Outline + Episode + Sumber + Streams + Playback error + Playing + Tap to fetch subtitles + Go back + Reset Defaults + Fill + Fit + Zoom + Seek backward 10 seconds + -%1$ds + +%1$ds + -%1$ds + +%1$ds + Seek forward 10 seconds + Sumber + Gaya + Subs + Subtitle + Brightness %1$s + Volume %1$s + Dibisukan + Diunduh + Airs + TBA + Ketuk untuk membuka kunci + Track %1$d + Unlock player controls + You're watching + Tambah Profil + Hapus pencarian + Jelajahi + Installed addons failed to return valid search results. + Pencarian gagal + Install and validate at least one addon before searching. + No active addons + Installed searchable catalogs did not return any matches for this query. + Tidak ada hasil ditemukan + Your installed addons do not expose catalog search. + No searchable catalogs + Cari film, serial... + Pencarian Terbaru + Remove recent search + Tentang + Umum + Account + Addon + Tata Letak + Content & Discovery + Continue Watching + Home Layout + Integrations + MDBList Ratings + Detail Page + Notifikasi + Pemutaran + Plugin + Poster Card Style + Pengaturan + Supporters & Contributors + TMDB Enrichment + Trakt + ABOUT + Account and sync status + ACCOUNT + Home structure and poster styles + Download latest release + Check for updates + Manage addons and discovery sources. + Manage your downloaded movies and episodes. + Downloads + GENERAL + Manage available integrations + Manage episode release alerts and send a test notification. + Change to a different profile. + Switch Profile + Open Trakt connection screen + No settings found. + Search settings... + RESULTS + Loading your Trakt lists… + Choose where to save this title on Trakt + Donate + Go to details + Hapus + Start from beginning + Putar + %1$d/10 + Review + Spoiler + No Trakt reviews available yet. + %1$d likes + This comment contains spoilers. + This comment contains spoilers and has been hidden. + Comments + Trailer + %1$s (%2$d) + Trailers + No completed episodes + No downloads yet + %1$d downloaded episode(s) + Aktif + Film + Shows + Show Downloads + Completed • %1$s + Downloading • %1$s + Failed + Paused • %1$s + Watched + Season %1$d + Specials + Continue where you left off + Add to library + Mark as unwatched + Mark as watched + Remove from library + View All + Play manually + %1$s logo + Account + Delete Account + This will permanently delete your account and all associated data. + This action cannot be undone. All your data, profiles, and sync history will be permanently removed. + Delete Account? + Email + Not signed in + Sign Out + You will be returned to the login screen. + Sign Out? + Status + Anonymous + Signed in + AMOLED Black + Use pure black backgrounds for OLED screens. + App Language + Choose Language + Settings for the Continue Watching section. + Liquid Glass + Use the native iPhone tab bar on iOS 26 and later. Instant profile switching from the tab bar is unavailable while this is on. + Tune card width and corner radius. + DISPLAY + HOME + THEME + Collection • %1$s + Display Name + Install an addon with board-compatible catalogs to configure Homescreen rows. + No home catalogs + Hero source + Hidden + Keep Home focused + %1$s • Limit reached (max %2$d) + No hero sources selected + Not in hero + Remove pin to top from collection to move + Disematkan + Pinned to top + Ubah Urutan + CATALOGS + CATALOGS & COLLECTIONS + COLLECTIONS + Home Layout + Hero Catalogs + %1$d of %2$d selected + Show Hero Section + Display hero carousel at top of home. + Hide Unreleased Content + Hide movies and shows that haven't been released yet. + %1$d of %2$d catalogs visible • %3$d hero sources selected + Open a catalog only when you need to rename or reorder it. + Visible + Hide value + Player, subtitles, and auto-play + Corner Radius + Poster Card Style + Width + Custom + Tune card width and corner radius. + Hide labels + Landscape Posters + Live Preview + %1$s (%2$s) + Corner radius: %1$ddp + Height: %1$ddp + Width: %1$ddp + Classic + Pill + Rounded + Sharp + Subtle + Balanced + Comfort + Compact + Dense + Large + Standard + Show value + Show a popup to continue where you left off when opening the app after leaving from the player. + Resume prompt on launch + Blur next episode thumbnails in Continue Watching to avoid spoilers. + Blur Unwatched in Continue Watching + Include upcoming episodes in Continue Watching before they air. + Show Unaired Next Up Episodes + Poster Card Style + ON LAUNCH + UP NEXT BEHAVIOR + VISIBILITY + Display the Continue Watching shelf on the Home screen. + Show Continue Watching + Poster + Artwork-first poster card + Lebar + Info-dense horizontal card + Show next episode based on the furthest watched episode. Disable for rewatches to use the most recently watched episode instead. + Up Next From Furthest Episode + Prefer episode thumbnails when available. + Prefer Episode Thumbnails in Continue Watching + HOME + SOURCES + Install, remove, refresh, and sort your content sources. + Install JavaScript scraper repositories and test providers internally. + Adjust home layout, content visibility, and poster behavior + Settings for the detail and episode screens. + Create custom catalog groupings with folders shown on Home. + Integrations + Metadata enrichment controls + External ratings providers + Add your MDBList API key below before turning ratings on. + Required to fetch ratings from MDBList + API Key + API Key + Enable MDBList Ratings + Fetch ratings from external providers in metadata detail screen + API Key + External ratings providers + MDBList Ratings + Actions + Play and save controls. + Cast + Principal cast list. + Cinematic Background + Blurred backdrop behind content, similar to stream screen. + Collection + Related collection or franchise rail. + Comments + Reviews from Trakt + Details + Runtime, status, release, language, and related info. + Episode Cards + Choose how episodes are rendered on the metadata screen. + Horizontal + Backdrop-style row cards + List + Detail-first stacked cards + Episode + Seasons and episode list for series. + Blur Unwatched Episodes + Blur episode thumbnails until watched to avoid spoilers. + Group %1$d + More like this + TMDB recommendation backdrops on detail page + Tidak Ada + Ikhtisar + Synopsis, ratings, genres, and core credits. + Production + Studios and networks. + APPEARANCE + SECTIONS + Tab Group %1$d + Tab Layout + Group sections into tabs like the TV app. Assign up to 3 sections per tab group. + Trailers + Trailer rail and playback shortcuts. + Notifications are currently disabled in Nuvio. + Episode release alerts + Schedule local notifications when a new episode for a saved show becomes available. + System notifications are disabled for Nuvio. Enable them to receive alerts and test notifications. + %1$d release alerts are currently scheduled on this device. + ALERTS + TEST + Send Test Notification + Sending Test Notification... + Send a local test notification for %1$s. + Save a show to your library first to test notifications. + Test notification + Community + See the people building and supporting Nuvio across Mobile, TV, and Web. + Supporters API is not configured. Add DONATIONS_BASE_URL to local.properties. + Contributors + Supporters + Open GitHub + GitHub profile unavailable + No message attached. + Loading contributors... + Loading supporters... + Couldn't load contributors + Couldn't load supporters + No contributors found. + No supporters found. + Unable to load contributors. + Unable to load supporters. + Couldn't load contributors right now. + Couldn't load supporters right now. + %1$d total commits + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + %1$s %2$s, %3$s + All installed addons + All enabled plugins + Allowed Addons + Allowed Plugins + Anime Skip + AnimeSkip Client ID + Enter your AnimeSkip API client ID. Get one at anime-skip.com. + Enable Intro Submission + Show a button to submit intro/outro timestamps to the community database. + IntroDB API Key + Enter your IntroDB API key to submit timestamps. Required for submission. + Also search AnimeSkip for skip timestamps (requires client ID). + Auto-play Next Episode + Start next episode automatically when prompt appears. + Device decoders only + Prefer app decoders (FFmpeg) + Prefer device decoders + Decoder Priority + Tap outside to close + Tap outside to save & close + %1$d day + %1$d days + %1$d hour + %1$d hours + Use libass for ASS/SSA subtitles + Experimental: advanced ASS/SSA rendering (styles, positioning, animations) + Hold Speed + Hold To Speed + Long-press anywhere on the player surface to temporarily boost playback speed. + Invalid regex pattern + Last Link Cache Duration + DV7 - HEVC Fallback + Map Dolby Vision Profile 7 to standard HEVC for devices without DV hardware support + Threshold Minutes + Fallback when no outro timestamp exists. + %1$s min + No items available + Not set + Default (media file) + Device language + Forced + Tidak Ada + Prefer Binge Group (Next Episode) + Try the same source profile first (same addon/quality group) before normal auto-play rules. + Preferred Audio Language + Preferred Language + Presets + Matches against stream name/title/description/addon/url. Example: 4K|2160p|Remux + Regex Pattern + No pattern set. Example: 4K|2160p|Remux + Any 1080p+ + AVC / x264 + BluRay Quality + Dolby Atmos / DTS + Inggris + HDR / Dolby Vision + HEVC / x265 + No CAM/TS + No REMUX/HDR + 1080p Standard + 4K / Remux + 720p / Smaller + WEB Sources + Libass Render Mode + Standard Cues + Effects Canvas + Effects OpenGL + Overlay Canvas + Overlay OpenGL (Recommended) + Reuse Last Link + Auto-play your last working stream for this same movie/episode when cache is still valid + Secondary Audio Language + Secondary Preferred Language + DECODER + NEXT EPISODE + PLAYER + SKIP SEGMENTS + STREAM AUTO-PLAY + STREAM SELECTION + SUBTITLE AND AUDIO + SUBTITLE RENDERING + %1$d selected + Loading Overlay + Show loading screen until first video frame appears. + Skip Intro + Use introdb.app to detect intros and recaps. + Auto-play Source Scope + All installed addons + Auto-play only considers streams coming from your installed addons. + All sources + Auto-play can use both installed addons and enabled plugins. + Enabled plugins only + Auto-play only considers streams coming from enabled plugins. + Installed addons only + Auto-play only considers streams coming from your installed addons. + Auto Stream Selection + Auto-play first source + Play the first available source automatically. + Manual (choose stream) + Always show source list and let me choose. + Auto-play regex match + Play first source whose text matches your regex pattern. + Stream Selection Timeout + Wait time for addons before selecting. + Threshold Minutes + Next Episode Threshold Mode + Minutes before end + Percentage + Threshold Percentage + Fallback when no outro timestamp exists. + %1$s% + Instant + %1$ss + Unlimited + Tunneled Playback + Hardware-level audio/video sync. May improve playback on some Android TV devices + Add your own TMDB API key below before turning enrichment on. + API Key + Enable TMDB Enrichment + Use TMDB as a metadata source to enhance addon data + Enter your TMDB v3 API key. + Language code + Artwork + Logo and backdrop images from TMDB + Basic Info + Description, genres, and rating from TMDB + Koleksi + TMDB movie collections in release order + Credits + Cast with photos, director, and writer from TMDB + Details + Runtime, status, country, and language from TMDB + Episode + Episode titles, overviews, thumbnails, and runtime from TMDB + More Like This + TMDB recommendation backdrops on detail page + Networks + Networks with logos from TMDB + Productions + Production companies from TMDB + Season posters + Use TMDB season posters in the metadata screen season selector for series. + Trailers + Trailer candidates from TMDB videos for the detail trailer section + Personal API key + Language + TMDB metadata language for title, logo, and enabled fields + CREDENTIALS + LOCALIZATION + MODULES + TMDB Enrichment + After approval, you will be redirected back automatically. + AUTHENTICATION + Comments + Show Trakt reviews on metadata pages + Connect Trakt + Connected as %1$s + Trakt user + Disconnect + Failed to open browser + FEATURES + Finish Trakt sign in in your browser + Sync your watchlist, watch progress, continue watching, scrobbles, and personal lists with Trakt. + Missing Trakt credentials in local.properties (TRAKT_CLIENT_ID / TRAKT_CLIENT_SECRET). + Open Trakt Login + Your Save actions can now target Trakt watchlist and personal lists. + Sign in with Trakt to enable list-based saving and Trakt library mode. + Library Source + Choose which library to use for saving and viewing your collection + Library Source + Choose where to save and manage your library items + Trakt + Nuvio Library + Trakt library selected + Nuvio library selected + Watch Progress + Choose which progress source powers resume and continue watching + Watch Progress + Choose whether resume and continue watching should use Trakt or Nuvio Sync while Trakt scrobbling stays active. + Trakt + Nuvio Sync + Watch progress source set to Trakt + Watch progress source set to Nuvio Sync + Continue Watching Window + Trakt history considered for continue watching + Continue Watching Window + Choose how much Trakt activity should appear in continue watching. + All history + %1$d days + Audience Score + IMDb + Letterboxd + Metacritic + Rotten Tomatoes + TMDB + Trakt + Unknown + Amber + Crimson + Emerald + Ocean + Rose + Violet + White + Next Episode + Finding source… + Playing via %1$s in %2$d… + Next episode thumbnail + Unaired + Skip + Skip Intro + Skip Outro + Skip Recap + No subtitles found + Afrikaans + Albanian + Amharic + Arabic + Armenian + Azerbaijani + Basque + Belarusian + Bengali + Bosnian + Bulgarian + Burmese + Catalan + Chinese + Chinese (Simplified) + Chinese (Traditional) + Croatian + Czech + Danish + Dutch + Inggris + Estonian + Filipino + Finnish + French + Galician + Georgian + German + Greek + Gujarati + Hebrew + Hindi + Hungarian + Icelandic + Indonesian + Irish + Italian + Jepang + Kannada + Kazakh + Khmer + Korea + Lao + Latvian + Lithuanian + Macedonian + Malay + Malayalam + Maltese + Marathi + Mongolian + Nepali + Norwegian + Persian + Polish + Portuguese (Portugal) + Portuguese (Brazil) + Punjabi + Romanian + Russian + Serbian + Sinhala + Slovak + Slovenian + Spanyol + Spanish (Latin America) + Swahili + Swedish + Tamil + Telugu + Thai + Turkish + Ukrainian + Urdu + Uzbek + Vietnamese + Welsh + Zulu + Clear + Continue + Ignore + Install + Later + No + Update + Yes + Do you want to exit the app? + Exit app + This catalog did not return any items. + No titles found + Check your Wi-Fi or mobile data connection and try again. + Director + Failed to load + More Like This + Seasons + This addon returned videos for the series, but none included season or episode numbers. + This addon did not provide episode metadata for this series. + Episodes have not been published by this addon yet. + Your device is online, but Nuvio could not reach required servers. + Show Less + Show More ▾ + Writer + All Genres + Catalog + %1$s • %2$s + The selected catalog failed to return discover items. + Could not load discover + Installed addons do not expose board-compatible catalogs for discover. + No discover catalogs + The selected catalog and filters did not return any items. + No titles found + Install and validate at least one addon before browsing discover catalogs. + Select Catalog + Select Genre + Select Type + Type + Mark previous as unwatched + Mark previous as watched + Mark %1$s as unwatched + Mark %1$s as watched + Mark as unwatched + Mark as watched + Up next + %1$s watched + Install and validate at least one addon before loading catalog rows on Home. + Installed addons do not currently expose board-compatible catalogs without required extras. + No home rows available + View Details + Play and save controls. + Actions + Principal cast list. + Related collection or franchise rail. + Collection + Trakt comments section. + Runtime, status, release, language, and related info. + Details + Seasons and episode list for series. + Recommendation rail. + More Like This + Synopsis, ratings, genres, and core credits. + Ikhtisar + Studios and networks. + Production + Trailer rail and playback shortcuts. + Back online + Cannot reach servers + No internet connection + (age %1$d) + Born %1$s%2$s + Died %1$s + Known for: %1$s + Latest + Could not load details for %1$s + Populer + Something went wrong + Upcoming + Backspace + Batal + Enter PIN + Enter PIN for %1$s + Forgot PIN? + Incorrect PIN + Locked. Try again in %1$ds + Avatar options will appear here when the catalog loads. + Avatar: %1$s + Enter a valid http:// or https:// image URL. + Choose an avatar + Choose an avatar below. + Create Profile + Custom avatar URL selected. + Custom avatar URL + Paste an image link, or leave this empty to use the built-in avatar catalog. + https://example.com/avatar.png + All data for "%1$s" will be permanently deleted. + Delete Profile + Tambah Profil + Edit Profile + Enter current PIN + Enter new PIN + Profile %1$d + Loading avatars... + Manage Profiles + Profile name + New profile + Primary addons off + Primary addons on + Remove PIN for %1$s + Remove PIN Lock + Saving... + Security + Add a PIN if you want this profile locked before switching into it. + This profile is protected with a PIN. + Select an avatar for this profile. + Set PIN Lock + Unnamed profile + Use Primary Addons + Share the main profile's addon setup instead of managing a separate list. + Who's watching? + Diunduh + Lanjutkan + Active scrapers + Checking more addons… + Copy stream link + Download file + The installed stream addons failed to return a valid stream response. + Could not load streams + Install an addon first to load streams for this title. + Your installed addons do not provide streams for this type of title. + No stream addon available + None of your installed addons returned streams for this title. + S%1$d E%2$d + Episode + S%1$dE%2$d - %3$s + Fetching… + Finding source… + Finding streams… + Stream link copied + No direct stream link available + No metadata available + Refresh streams + Resume from %1$d% + Resume from %1$s + SIZE %1$s + Torrent streams are not supported + Close trailer + Unable to play trailer + Failed to load Trakt lists + Failed to update Trakt lists + %1$s • %2$s + Update check failed + Download failed + Downloading %1$d% + Unable to start installation + You're using the latest version. + Enable app installs for Nuvio, then come back and continue. + Downloading update... + No updates found. + A new version is ready to install. + In-app updates are not available on this build. + Preparing download + Release notes + Allow installs to continue + Update available + Update status + That addon is already installed. + Enter a valid addon URL + Unable to load manifest + Nuvio + Account deletion failed + Sign-in failed + Sign-out failed + Sign-up failed + Unable to load catalog items. + Up Next + Up Next • S%1$dE%2$d + %1$s logo + Failed to load comments + Could not load details from any addon. + Networks + No addon provides meta for this content. + Download failed + Shows live download progress and controls. + Downloads + Download completed + Downloading %1$s • %2$s + Downloading %1$s • %2$s / %3$s + Download failed + Paused %1$s + Hapus + Remove %1$s from %2$s? + Remove %1$s from your library? + Remove from Library? + Movie + Alerts when a saved show's new episode is released. + Preview episode release alert. + Failed to send a test notification. + Test notification sent for %1$s. + Unable to play this stream. + This profile PIN changed. Connect once to refresh the lock on this device. + Couldn't remove PIN lock. Try again. + Connect to the internet to remove the PIN lock. + This PIN can't be verified offline on this device yet. Connect once and unlock it online first. + Couldn't set PIN. Try again. + Connect to the internet to set a PIN. + This profile uses primary addons. + Failed to load %1$s + Stream + Embedded + Authorization denied + Complete Trakt sign in in your browser + Invalid Trakt callback + Invalid Trakt callback state + Invalid Trakt token response + Failed to load Trakt library + List %1$d + Trakt did not return an authorization code + Missing Trakt credentials + Failed to load Trakt progress + Failed to complete Trakt sign in + Trakt user + Watchlist + Trailer + Unknown + Addon + Saved + Play %1$s + Resume %1$s + JSON is empty. + Collection %1$d has blank id. + Collection '%1$s' has blank title. + Folder %1$d in '%2$s' has blank id. + Folder '%1$s' in '%2$s' has blank title. + Source %1$d in folder '%2$s' has blank fields. + Source %1$d in folder '%2$s' is missing a Trakt list ID. + Invalid JSON: %1$s + Addon not found: %1$s + January + February + March + April + May + June + July + August + September + October + November + December + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + Production Company + Network + Could not load %1$s + Populer + Terbaru + %1$s • %2$s + Top Rated + Certification + Movie Details + Original Language + Origin Country + Release Info + Runtime + Posters + Text + Show Details + Status + Videos + FILE + No direct stream link available + Replaced previous download + Download started + Unsupported stream format for downloads + Empty response body + Request failed with HTTP %1$d + Download system is not initialized + Download request failed + %1$s - %2$s + Saved titles will appear here after you tap Save on a details screen. + Your library is empty + Couldn't load library + Other + Perpustakaan + Connect Trakt and save titles to your watchlist or personal lists. + Your Trakt library is empty + Couldn't load Trakt library + Trakt Library + Anime + Channels + Film + Serial + TV + %1$s is out now + %1$s • %2$s is out now + A new episode is out now + %1$s is out now + Episode Releases + Creator + Director + Writer + Audience Score + No playable trailer stream found. + Season %1$d - %2$s + B + KB + MB + GB + \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/AppLanguage.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/AppLanguage.kt index e629434d..679054c2 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/AppLanguage.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/AppLanguage.kt @@ -1,32 +1,34 @@ package com.nuvio.app.features.settings import nuvio.composeapp.generated.resources.Res +import nuvio.composeapp.generated.resources.lang_czech import nuvio.composeapp.generated.resources.lang_english import nuvio.composeapp.generated.resources.lang_french import nuvio.composeapp.generated.resources.lang_german -import nuvio.composeapp.generated.resources.lang_spanish -import nuvio.composeapp.generated.resources.lang_portuguese_portugal -import nuvio.composeapp.generated.resources.lang_turkish -import nuvio.composeapp.generated.resources.lang_italian import nuvio.composeapp.generated.resources.lang_greek +import nuvio.composeapp.generated.resources.lang_indonesian +import nuvio.composeapp.generated.resources.lang_italian import nuvio.composeapp.generated.resources.lang_polish -import nuvio.composeapp.generated.resources.lang_czech +import nuvio.composeapp.generated.resources.lang_portuguese_portugal +import nuvio.composeapp.generated.resources.lang_spanish +import nuvio.composeapp.generated.resources.lang_turkish import org.jetbrains.compose.resources.StringResource enum class AppLanguage( val code: String, val labelRes: StringResource, ) { + CZECH("cs", Res.string.lang_czech), ENGLISH("en", Res.string.lang_english), FRENCH("fr", Res.string.lang_french), GERMAN("de", Res.string.lang_german), - SPANISH("es", Res.string.lang_spanish), - PORTUGUESE("pt", Res.string.lang_portuguese_portugal), - TURKISH("tr", Res.string.lang_turkish), - ITALIAN("it", Res.string.lang_italian), GREEK("el", Res.string.lang_greek), + INDONESIAN("id", Res.string.lang_indonesian), + ITALIAN("it", Res.string.lang_italian), POLISH("pl", Res.string.lang_polish), - CZECH("cs", Res.string.lang_czech), + PORTUGUESE("pt", Res.string.lang_portuguese_portugal), + SPANISH("es", Res.string.lang_spanish), + TURKISH("tr", Res.string.lang_turkish), ; companion object {