Commit Graph

879 Commits

Author SHA1 Message Date
Zoltan Meszaros 3c6615f5d2 Translated using Weblate (Hungarian)
Currently translated at 35.1% (265 of 753 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hu/
2025-04-16 03:51:09 +00:00
Gabriel S 8c9fa78f45 Translated using Weblate (Romanian)
Currently translated at 16.9% (128 of 753 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ro/
2025-04-15 19:12:43 +00:00
Kityn 99afa860c5 Translated using Weblate (Polish)
Currently translated at 73.5% (554 of 753 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2025-04-15 19:12:43 +00:00
Gallyam Biktashev bd63487dda Translated using Weblate (Russian)
Currently translated at 35.7% (269 of 753 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2025-04-15 19:12:41 +00:00
myrad2267 d55f049b3b Translated using Weblate (French)
Currently translated at 62.2% (469 of 753 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2025-04-15 19:12:40 +00:00
Joe Kribs 8c4fde87f1
[iOS] Admin Dashboard - QuickConnect Other User (#1488)
* Allow other user authorization.

* Show user being logged in.

* Fix localizations & update screenshot

* Cleanup Locales

* mirror lable changes on tvOS

* cleanup

* fix strings

* adjust sizes

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-14 17:19:32 -04:00
Kityn 5c9c062ba2 Translated using Weblate (Polish)
Currently translated at 66.7% (502 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2025-04-14 17:46:27 +00:00
Kityn d993db35ca Translated using Weblate (Polish)
Currently translated at 61.4% (462 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2025-04-14 13:36:07 +00:00
Lukasvdzwaluw f13c752787 Translated using Weblate (Dutch)
Currently translated at 36.1% (272 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2025-04-14 12:32:59 +00:00
Gallyam Biktashev ad0ecd0abc Translated using Weblate (Russian)
Currently translated at 33.9% (255 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2025-04-14 12:32:58 +00:00
Maticula 68407019b1 Translated using Weblate (Slovenian)
Currently translated at 36.0% (271 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sl/
2025-04-14 12:32:58 +00:00
tobylibo 0fecb750ae Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 35.5% (267 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2025-04-14 07:37:36 +00:00
Kityn 269276a9f6 Translated using Weblate (Polish)
Currently translated at 53.4% (402 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2025-04-13 20:11:58 +00:00
Altiera Moreau 4262f806b4 Translated using Weblate (Slovak)
Currently translated at 33.6% (253 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2025-04-13 20:11:58 +00:00
myrad2267 efc7b9f4b9 Translated using Weblate (French)
Currently translated at 62.3% (469 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2025-04-13 20:11:58 +00:00
Crea 7978fc27bd Translated using Weblate (French)
Currently translated at 62.3% (469 of 752 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2025-04-13 20:11:57 +00:00
format_ssd 4bca4d3ac5 Translated using Weblate (German)
Currently translated at 44.5% (333 of 748 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2025-04-13 04:42:51 +00:00
Joe Kribs d4330f130b
[iOS] Admin Dashboard - User Activity (#1485)
* Very Very WIP

* Details page.

TODOs:

- Duplicate ViewModels are initialized.
- Routing Cleanup
- Localizations for fields
- Get Played Item Details (See ActiveSessionDetails)
- Move all details to ActivityDetailsViewModel for Users & Items
- Localizations for enums
- Enum the types if possible

* Details View complete. TODO:

- Filters
- Default with No Filters

* Ready

* Fix localization

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-13 00:42:48 -04:00
Adnan Sönmez 715ddca793 Translated using Weblate (Turkish)
Currently translated at 34.0% (255 of 748 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2025-04-13 03:01:10 +00:00
Joe 07e23e6ab6 Use .utf16 instead of .utf8 / ascii 2025-04-11 19:40:37 -06:00
Joe Kribs 0025422634
[iOS & tvOS] Upgrade SDK to 10.10 (#1463)
* Buildable!

* Update file names.

* Default sort to sort name NOT name.

* SessionInfoDto vs SessionInfo

* Targetting

* Fix many invalid `ItemSortBy` existing. Will need to revisit later to see which can still be used!

* ExtraTypes Patch.

* Move from Binding to OnChange. Tested and Working.

* Update README.md

Update README to use 10.10.6. Bumped up from 10.8.13

* Update to Main on https://github.com/jellyfin/jellyfin-sdk-swift.git

* Now using https://github.com/jellyfin/jellyfin-sdk-swift.git again!

* Paths.getUserViews() userId moved to parameters

* Fix ViewModels where -Dto suffixes were removed by https://github.com/jellyfin/Swiftfin/pull/1465 auto-merge.

* SupportedCaseIterable

* tvOS supportedCases fixes for build issue.

* cleanup

* update API to 0.5.1 and correct VideoRangeTypes.

* Remove deviceProfile.responseProfiles = videoPlayer.responseProfiles

* Second to last adjustment:
Resolved: // TODO: 10.10 - Filter to only valid SortBy's for each BaseItemKind.
Last outstanding item: // TODO: 10.10 - What should authenticationProviderID & passwordResetProviderID be?

* Trailers itemID must precede userID

* Force User Policy to exist.

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-06 23:42:47 -04:00
Joe Kribs c0b875ed2a
[tvOS] Various Setting Cleanup (#1473)
* Various setting cleanup

* Remove Double headers

* My gradient did nothing... So resetting back to less.

* Reduce unnecessary formatting changes.

* Revisions https://github.com/jellyfin/Swiftfin/pull/1473#pullrequestreview-2745279339

* Subtitles was missing brightness. Subtitle shouldn't mirror title but image.

* Remove TODO.
2025-04-06 18:05:33 -04:00
Joe Kribs 216375905c
[iOS & tvOS] Trailers (#1456)
* ItemViewModel Trailers

* iOS done.

* Sections >>> Divider

* tvOS kind of.

* Button/Menu cleanup

* Huge ActionButton overhaul

* Error Handling, ActionButton/Menu standardization, and ActionButtonLayout cleanup part 1.

* cleanup

* cleanup

* Combine ActionButton logic. Complete ActionButton rework and animation/style rework. Should this be 3 files??

* Dumb sizing error. Get size from WIDTH not HEIGHT! Height is always 100 and Width is larger.

* Pressed buttons are but focused buttons but slight less. Pressed buttons are still bigger than default, unfocused buttons. TIL.

* Cleanup / Structure

* Remove Test.

* New Setting. Version on PlayButton Row. Complete TrailerMenu revamp. Make ActionButtonLayout a single row.

* Spacing & remove test logic

* VERY WIP

* Fix the compact-ness

* Linting.

* Remove Testing logic.

* Pre-Cleanup - WIP

* Finalized. Moved ScrollingText to tvOS Only.

* MediaURL? = nil but it's already nil by default.

* Error on the View not the button. This was NOT showing for the button since it lived on the Menu. This resolves this.

* wip

* Update VersionMenu.swift

* Remove scrollingText from this PR.

* Remove labels & iOS Action Button cleanup / no foregroundStyle on de-selected.

* ActionButtonScaling

* .card all buttons in ActionButton

* Slow and less bounce-i-fy the menu animations. Also, slight padding

* Wait, don't add this padding this isn't needed.

* localize

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-04-05 01:13:20 -04:00
Joe Kribs c113c341bf
[tvOS] Mirror iOS Ratings + Attribute Settings (#1422)
* Copy + Paste + Settings

* Much bigger changes to allow attribute customization.

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-15 15:27:34 -07:00
Daniel Chick 07c895ddba
[tvOS] App Settings & Splashscreen (#1419)
* Bring over iOS app settings

* Re-enable advanced settings menu option

* Conditionally show splash screen

* Disable app appearance setting

* cleanup

* File rename

* Change how version is displayed

* Disable app icon option due to not working

* comment

* Bring over signout interval section

* Enforce sign-out on close

* Revert change

* localizations

* wip

---------

Co-authored-by: chickdan <=>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-02-06 20:59:18 -07:00
Joe Kribs 4ca788338d
[tvOS] PagingLibraryView - Mirror iOS "Hot Reload" Functionality (#1408)
* Update missing strings. Mirror iOS setting changes to make sure tvOS PagingLIbraryView updates with changes as well. Lay the groundwork for filtering.

* Revert back to rows over offset

* Reorder a bit.

* Move default layout to no values in closure. For whatever reason, I cannot do this to the non-defaults.

* 95% there

* Move `onChange`s to the `innerContent` to alleviate Type Checker issues

* All Value-less closures are moved with teh exception of viewModel.filterViewModel?.currentFilters

* Prepare for future letter picker location
2025-01-24 16:14:34 -05:00
Joe Kribs b0b604c4ad
[tvOS] Login Flow Cleanup - Second Pass (#1403)
* Background on Server User Signin. Button Sizing. More visible deletion notice. Menu ListView insets.

* wip

* Change Highlight. Move Add User Button. Remove Add User inline option.

* Take 2

* Undo user changes.

* Remove all changes.

* "selectServer" = "Select Server";

* Recommendations

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* Update ServerDetailView.swift

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* Update ServerDetailView.swift

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* build strings

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-23 22:25:08 -05:00
Joe Kribs 553441d83e
[iOS] Media Item Menu - Edit Item Images (#1345)
* Good start but some missing items:

- Upload image isn't working
- Only a single image is shown per section. Need to make this the HCollection of all images for the group

* Upload still failing but now update and set are 2 different processes because I think that's better. Spacing on the add screen is still all wrong but we're getting closer

* ~70% Complete

TODO:

- Spacing for remote portrait images is wrong & cramped
- Upload image from file browser never works & produces 400 error
- Show all images for an item.imageType opposed to just the first
- Setting image works but produces a 400 error
- Error alert looks bad

* Merge with Main

* URL Changes

* Updating logic and confirmation screen

* Lots of changes:

Selecting a Remote image is now working without error and works consistently!

Upload a local file is still broken

Item types with multiple images is working as intended now!

Overriding an image on index doesn't seem to work but it doesn't work for Web either so........

UI is way more jank but the hard parts are getting solved!

* Breaking this even more with the hopes of a better tomorrow.

* Getting better?

* Refreshing is working but I might need to make this work mroe effiently...

* 90% There!

* Ability to cancel the update

* Still no luck uploading images?

* Stop reordering on deletion/addition

* 2025 disclaimers

* Uploading finally works!

* Functional but messy.

TODO:
- Figure out better resizing if too big?
- Upload from Photos
- Move upload logic to imageViewModel and make RemtoeImageViewModel PagingLibraryViewModel conformant
- Create a ImageInfoView for Selection & Deletion.

* Now conforms to PagingLIbraryViewModel but everything else is a mess

* Close!

* First no all appears

* Fix double pop/routerdismiss

* Uploading from Photos is (Finally) Ready!

* wip

* Reuse PhotoPicker and Crop code.

* 4/6 of the codefactor changes

* Pass around the URL NOT the UIImage

* Clean up ItemImageDetails types.

* Make sure the ImageView mirrors the real shape of the image. Posters should be uniform but this is the selection for the image so the dimensions are important to demonstrate.

* Rating Type label.

* Delete confirmation dialog.

* Remove double sizing. Remove Unused ViewModel. Change PhotoPicker to a checkmark instead a 1. Since there is only ever one picture selected, no need to count the images.

* Get the image URL as needed. No more Truples.  Localize ImageTypes.

* Remove attempt at ImageInfo Poster Comformance.

* Even more cleanup

* Delete vs Save flip

* Hide delete button

* Even more cleanup

* Fix tvOS build issues.

* Reduce delay & remove unused comment. Should finally be ready again.

* wip

* Update ItemImagesView.swift

* Event Only on upload failures.

* Remove unnecessary ViewModel's from tvOS.

* Add dismiss action to RemoteSearchResultView. While I am doing this here, fix it there.

* Move From Coordinator -> .Sheet. This fixes the popping issue / delay requirement!

* wip

* wip

* wip

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-20 16:17:35 -05:00
Joe Kribs a13f604be0
[iOS] Admin Dashboard - User Access Tags (#1377)
* Edit View. Still need to make an Add View

* Finished with EditPage. Need labels tho

* Deletion deletes TOO many records. Also, need to search existing tags

* Fin

* Fix merge issues

* Check for exisitng Access Tags before allowing saving

* 2025 Disclaimer / Build Fixes

* update

* Update EditServerUserAccessTagsView.swift

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2025-01-02 23:47:20 -07:00
Joe Kribs 486995b0cf
[iOS] Media Item Menu - Identify Media Item (#1369)
* WIP

* All item types.

* V2: Functionally better. UI still weird

* Rework!

* Organization, new LoadingIcon, remove unnecessary components, and standardize: CancellableLoadingButton

* Organization & Static Method Re-Use.

* wip

* fix tvOS

* wip

* localize

* Update RemoteSearchResultRow.swift

* Update Localizable.strings

* Update RemoteSearchResultRow.swift

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-31 14:16:34 -07:00
Joe Kribs 23beb088da
[iOS] Admin Dashboard - User Profiles (#1328)
* Make user profile more generic. Still need to make it work for the reset image / other stuff like delete & username.

* Username Changing and PFP deletion.

* Functional, refreshing, and good to go!

* Clean up localizations

* Migrate [UserDto] -> IdentifiedArrayOf<UserDto>

* Solve "Username should probably be at the top of this section."

* allow notification filter

* WIP:

Created `UserProfileHeroImage` but I haven't used it anywhere.

* Centralize UserProfileHeroImages

* Rename UserProfileImages

* Fix Merge Issue?

* Move to UserProfileImage

* Merge with Main

* Fix Merge?

* Clear the cache on update.

* Delete duplicate `UserProfileImage`

* wip

* wip

* Update ImagePipeline.swift

* fix tvOS build issue and update comment to be more accurate

* clean up

* fix string

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-28 22:35:10 -07:00
Joe Kribs af602d3d98
[Meta] Automatic String Organization (#1372)
* Automate String Organization.

* Comment the script so it's easier to maintain? Or messier?

* Linting post comments

* Rename ShellScript -> Alphabetize Strings for tvOS

* use swift regex, add error messages, clean up separators

* Only search for ./Translations/en.lproj/Localizable.strings

* Purge Unused Strings Script

* Organize Translation Scripts into a Folder. Update references at the project level.

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-21 00:01:11 -07:00
Joe Kribs a6bd093960
[iOS & tvOS] Unused Localization Cleanup (#1362) 2024-12-20 13:05:57 -07:00
Joe Kribs d001a96d6c
[iOS] Admin Dashboard - User Access Schedules (#1358)
* Initial layout. No Add functionality yet.

* Cleanup ServerTasks. Get Access Schedules Fixed

* duplicate schedule warning, cleanup

* localize

* cleanup

* don't move to Title Case

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-12 13:24:34 -07:00
Joe Kribs ba5c037ece
[iOS] Admin Dashboard - Parental Ratings (#1353)
* Labels and Max Parental Rating

* Parental Ratings

* UnratedItem.displayTitle

* Linting Fixes

* Localizations, LearnMore, & cleaner grouping

* Strings.swift

* Review changes + Age Groups change

* cleanup, use SeparatorVStack in LearnMoreButton

* fix colors

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-11 13:33:44 -07:00
Joe Kribs 8f05169097
[iOS & tvOS] Error Cleanup (#1357)
* Error Cleanup

* Localize everything!

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-10 23:23:05 -07:00
Joe Kribs 174487a220
[iOS] Admin Dashboard - User Device & TV Access (#1342) 2024-12-09 16:33:10 -07:00
Joe Kribs a3d84a958f
[iOS] Media Item Menu - Edit Arrays (People, Genres, Studios, & Tags) (#1336)
* Cleanup / Genre & Tag Management

* Move searching to a backgroundState. Fix the font Color when bulk editing tags / genres should be secondary when editing & not selected

* Cleanup

* Now that cancelling is handled better this should prevent the issue where the suggestions fails to update on a letter entry

* Change from using an event for searchResults to using a published searchResults var

* Moved all logic to a local list where all genres/tags are populated on refresh then filterd locally instead of calling the server for changes.

* Inheritance

* Split metadata from components then alphabetize. Also, fix but where you can't add a people

* People & Permissions

* Functional but dirty. TODO: Cleanup + Trie? Trei?

* nil coalescing operator is only evaluated if the lhs is nil, coalescing operator with nil as rhs is redundant

* TODO: Search improvements & Delay search on name change

* Cleanup & reordering

* Debouncing

* Trie implementation

* Permissions Cleanup Squeezing in: https://github.com/jellyfin/jellyfin-web/issues/6361

* enhance Trie

* cleanup

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-06 15:22:11 -07:00
Joe Kribs 2ac9283dfa
[iOS] Admin Dashboard - Media Access / Deletion Settings (#1333)
* ServerUserAdminViewModel cleanup & testing. ServerUserAccessView.

* Change the enableAllLibraries to use the binding extensions

* Use coalesce for enableAllFolders & enableContentDeletion

* use contains binding

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-12-02 22:54:33 -07:00
Joe Kribs da40f6a3b5
[iOS] Media Item Menu | Edit Metadata (#1323)
* Playback Quality - Learn More

* TODO: Fix leading not working on second line.

* Remove layoutDirection.

* Implement for tvOS. Slightly different spacing.

* VStack

* WIP - tvOS Implementaiton. SUBJECT TO CHANGE / ELIMINATION.

* Background Icon & formatting

* wip

* Review Changes. Remove unused Strings, clean up comments.

* Remove duplicate items used for testing

* Remove tvOS scrollIfLargerThanContainer for now.

* Edit Text-based Metadata

* ViewModel Cleanup

* use binding extensions

* Huge overhaul:

- Fix the notification when metadata was updated to work with 100% consistency
- Flip the locking to be true -> lock like server
- Redo the whole itemEditorViewModel to be more in-line with other viewModels | also fixes iPad weirdness
- Use itemViewModel for the edit view so I can just reuse those existing notifications instead of recreating the wheel
- More human dates for people - Date of death instead of "End date" (yikes)

* String fixes & overview size

* Fix build issues & String cleanup

* fix overview sizing, cleanup

* itemMetadataWasEdited -> temMetadataDidChange

* Creation of the NavigationBarMenuButtonModifier for an "ellipsis.circle" menu object in the toolbar. Makes it easier to ensure that this format looks the same throughout.

* Custom vs Official Rating + Menu Button Label change

* Menu button spacing and groundwork for other menu items (canDownload) since we already have the bool available. Currently disabled.

* Linting

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-30 23:56:49 -07:00
Joe Kribs b9ac50c164
[iOS] Admin Dashboard - User Permissions (#1313)
* WIP

* WIP

* Localization and better planning. Remove the Username as this will end up in another section. Updated planning here: https://github.com/jellyfin/Swiftfin/discussions/1283 | 5 more views required!

* Initializing an optional variable with nil is redundant line

* Remove Live TV since that will go in another section

* Cleanup Coordinator / Merge with Main

* Remove all 'Allows' from strings

* Fix Merge Issues

* Use CaseIterablePicker, Binding.map

* BackgroundState == updating, change all of the buttons to visible when custom by process of elimination opposed to the default custom value. Make all of the input fields use temp values to make it less jarring.

* Update SessionsSection.swift

* Learn more!

* Validate > 0, don't allow inputs to be less than 1 and reset tempValues when the enum is updated.

* use new binding extensions

* String fixes

* Don't test against adminDefault for users or userDefault for admins.

* Linting indentation

* Default vs UserDefault + no more reason to have temporary variables.

* cleanup

* format

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-27 11:22:37 -07:00
Joe Kribs 994e99d141
[iOS] Playback Quality - Learn More (#1316)
* Playback Quality - Learn More

* TODO: Fix leading not working on second line.

* Remove layoutDirection.

* Implement for tvOS. Slightly different spacing.

* VStack

* WIP - tvOS Implementaiton. SUBJECT TO CHANGE / ELIMINATION.

* Background Icon & formatting

* wip

* Review Changes. Remove unused Strings, clean up comments.

* Remove duplicate items used for testing

* Remove tvOS scrollIfLargerThanContainer for now.

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-21 13:47:11 -07:00
Joe Kribs 687cfa6b5f
[iOS] Media Item Menu | Refresh Metadata & Delete Item (#1310)
* [iOS] Creation of the enableItemEditor & enableItemDeletion settings. Creation of the ItemEditorView. Creation of Refresh/Deletion Logic and Buttons. Wrap buttons in permissions.

* You can make delete permissions without edit (admin) permissions. So, flip this so you can get to the edit page but editing is disabled if you're not an admin. The Delete option requires that the delete toggle is enabled and the user has permissions.

* Move deletion from the editView to the ItemView

* Delete from PagingLibraryView on Deletion

* Only enable delete if the user can delete something. Check deletion permission on Item level. Only allow editing for admins.

* Review Changes: ec33a6b63c

* wip

* Update RefreshMetadataButton.swift

* Update Shared/ViewModels/ItemEditorViewModel/RefreshMetadataViewModel.swift

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* Update Shared/Coordinators/ItemEditorCoordinator.swift

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>

* Reviews minus a learn more button

* LearnMoreAttempt v1

* Learn more v2 - Much better

* Learn More v3

* Learn More comments cleanup

* Learn More: https://github.com/jellyfin/Swiftfin/pull/1310#discussion_r1843149572

* clean up

* Remove Replace since it's already covered. Localize.

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-16 23:59:41 -07:00
Joe 128381a439
[iOS] Admin Dashboard - User Passwords (#1312)
* resetUserPassword Adjustments

* Nest the Password in Advanced because I dunno it looks nicer.

* Dismiss Coordinator instead of pop.

* Build issues

* Rename my local xcode to xcode_16???

* Build plz

* Comments

* clean up

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-11-15 15:14:59 -07:00
Joe e0990e321a
[iOS] Admin Dashboard - Users (#1287) 2024-10-31 15:56:00 -06:00
Daniel Chick fed9c654ef
Resolve some todos (#1295)
* Partially resolve color todo

* Update localizations for quick connect steps. use bulleted list

* Same change for tvos

* Remove padding2 modifier

* Localisation
2024-10-29 11:17:56 -06:00
Joe 56fa03257e
[iOS] Admin Dashboard - API Keys (#1284)
* API Keys

* Switch Deletion Alert for a Confirmation Dialog

* Migrate from a list to a Collection VGrid.

* Convert back to List. Also, now using my events! So, there is a confirmation and a failure message for both delete & create API.

* want vs wish

* Merge Issue Fixes

* Review Changes

* Reset newAPIName after creating a new API

* cleanup

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-24 20:07:49 -06:00
Joe c46ee13dbc
[iOS] Admin Dashboard - Add/Delete Task Triggers (#1276)
* All Working. TODO: Figure out why TimeInterval crashes Swiftfin if I select 'Cancel'

* Cleanup. Kind of a typeAlias but not really? Fixed the minute crash, I was make a recursive calc. All good now. Make sure temp values default to existing value at startup

* Manual Run action from Edit View

* Issues resolved.

* Labels / soft merge with Main

* Utilize events to print a success/failure message for when there is an attempted change with a TaskTrigger.

* Fix label wrong value & remove TODO for completed item.

* Fix all the merge issues.

* wip

* wip

* localize

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-23 16:30:12 -06:00
Joe a04f97e1ba
[iOS] Admin Dashboard - Device Management (#1277)
* Split out Devices Logic - Ready to go!

* Review Items + Reworking the deleteDevices logic to all use the same deleteDevice core + deleteDevices. Delete All Devices now just uses the more generic deleteDevices

* Allow Filtering on UserID for later usage on UserDetailView.

* Fully remove DeleteAll action in favor of Delete Devices. Change view to pass in the viewModel.devices as a 'Delete All' function

* DeviceDetailsView

* Section Split out, Localization, and cleanup.

* I guess I missed there on first upload.

* Initial Select All / Delete Devices logic. Checkbox options on the list. Hopefully this is good.

* Initial Review Item!

* Custom Device Name is now a field. Change DevicesViewModel to Eventful to capture updates

* Revised Device Interaction Buttons

* Remove unused Label.

* Make DeviceRow mirror UserRow. UpdateDevicesView to have DeleteButton when in EditMode. Also, it's EDITMODE not SELECTMODE... Finally, make sure the SelectedDevice and SelectedDevices are both empty if the user tries to delete themselves and fails. Change how the single device delete works to confirm deleting from an array still works as needed.

* wip

* Review Changes: 61b3716239

* Merge issues + testing again to make sure. Checks out.

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-21 15:10:25 -06:00
Kityn 0148e46afb Translated using Weblate (Polish)
Currently translated at 100.0% (424 of 424 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-10-15 18:41:37 -04:00
Mattias Carlsson d8a70f1ea2 Translated using Weblate (Swedish)
Currently translated at 80.8% (343 of 424 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-10-15 18:41:37 -04:00
Joe 8ae55dc57b
[iOS] Admin Dashboard - Active Sessions Play Method Fix (#1272)
* Fixes. But is this right?

* Ensure there IS an item playing.

* https://github.com/jellyfin/Swiftfin/pull/1272#discussion_r1801713951

* Fix the missing labels after merging with Main.
2024-10-15 16:04:32 -06:00
Joe 2bda693143
Generic Button to Input from an Alert (#1273)
* Creation of an Alert Input Button based on the Chevron Button.

* Only one button required for both iOS and tvOS

* wip

---------

Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-10-15 00:42:42 -06:00
Andrea 43811aa50d Translated using Weblate (Italian)
Currently translated at 79.1% (335 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2024-10-14 10:41:37 -04:00
Joe 498842bb84
[tvOS] ListView + Grid Landscape Poster Padding (#1213) 2024-10-12 14:42:51 -06:00
BromTeque 46f90bcb33 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (423 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-10-10 21:56:36 -04:00
Kityn b44ad7994f Translated using Weblate (Polish)
Currently translated at 100.0% (423 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-10-08 08:11:18 -04:00
Anders d6a27110bf Translated using Weblate (Danish)
Currently translated at 81.7% (346 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/da/
2024-10-08 08:11:18 -04:00
judokan9 801c653103 Translated using Weblate (German)
Currently translated at 100.0% (423 of 423 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-10-08 08:11:18 -04:00
Wiggo Bergman 6b8a019b8f Translated using Weblate (Swedish)
Currently translated at 81.3% (341 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-10-08 03:01:14 -04:00
judokan9 b978c21754 Translated using Weblate (German)
Currently translated at 100.0% (419 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-10-08 03:01:14 -04:00
Philippe Arteau 3f7f9d4ad9 Translated using Weblate (French)
Currently translated at 92.6% (388 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-10-08 03:01:14 -04:00
Joe 1405d2695c
Add 'Enable Rewatching' and ' Max days' to Next Up (#1258)
* Rebasing https://github.com/jellyfin/Swiftfin/pull/1212 on Main. Also, less baggage and random crap.

* Change 0 to Disabled. Better mirror iOS and tvOS Alerts for MaxNextUpDays.

* Review Changes:

Don't use the property wrappers in non-view contexts. While they technically can still work, use the subscript instead at the usage sites.
Use the dayInterval(0 ... 1000) format instead, then we don't need maxNextUpDays.

* Remove unused strings, and unused variables

* Add a tvOS TODO to double check the Done/Number button on the alert.
2024-10-07 15:02:18 -06:00
Kityn 973a9ea3a4 Translated using Weblate (Polish)
Currently translated at 100.0% (419 of 419 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-10-07 01:41:36 -04:00
Matthew Slaby ddd651ea3f Translated using Weblate (Czech)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/cs/
2024-10-05 15:41:37 -04:00
nextlooper42 4fa4641680 Translated using Weblate (Slovak)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2024-10-05 15:41:37 -04:00
Joe bc9eacab57
[iOS] Admin Dashboard (#1230) 2024-10-04 21:15:12 -06:00
Tilly Persson 55d4ef44bc Translated using Weblate (Swedish)
Currently translated at 91.7% (322 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-10-02 12:41:35 -04:00
BromTeque 9ea989c513 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-09-27 06:41:36 -04:00
Philippe Arteau fdd0330e93 Translated using Weblate (French)
Currently translated at 95.1% (334 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-09-27 06:41:36 -04:00
Robert Jaakke c4b6a00645 Translated using Weblate (Dutch)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-09-19 01:45:27 -04:00
Chris Lee 06bd63a2e2 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-09-18 09:41:35 -04:00
osos 2d7ad82780 Translated using Weblate (Danish)
Currently translated at 98.5% (346 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/da/
2024-09-16 08:41:34 -04:00
Justin ac0b9d6f40 Translated using Weblate (German)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-09-14 14:41:34 -04:00
Lucas Paiva da Silva 037bc5b6f9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.6% (304 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt_BR/
2024-09-12 21:41:34 -04:00
queeup 51a7ad2c9b Translated using Weblate (Turkish)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2024-09-11 10:41:34 -04:00
mario aad7a3b692 Translated using Weblate (German)
Currently translated at 98.0% (344 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-09-11 10:41:34 -04:00
SamuelMagano 58fa5aba0f Translated using Weblate (Portuguese)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt/
2024-09-10 05:41:34 -04:00
Palpex 272b19b46f Translated using Weblate (German)
Currently translated at 95.7% (336 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-09-10 05:41:34 -04:00
bene toffix 0a997aeb5e Translated using Weblate (Catalan)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ca/
2024-09-07 10:41:34 -04:00
Bas cdbc90ce96 Translated using Weblate (Dutch)
Currently translated at 94.3% (331 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-09-07 10:41:34 -04:00
tobylibo e85a082c5c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-09-07 10:41:34 -04:00
Kityn 5ef0b27e33 Translated using Weblate (Polish)
Currently translated at 100.0% (351 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-09-06 01:56:11 -04:00
Kityn dd60a25cd0 Translated using Weblate (Polish)
Currently translated at 99.7% (350 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-09-06 01:56:11 -04:00
tobylibo 16bee212f7 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.0% (344 of 351 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-09-06 01:56:11 -04:00
Sun Zizhuo 851bfd18bf Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-09-05 11:16:01 -04:00
tobylibo 2485747624 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-09-05 11:16:01 -04:00
Joe f5bd1b8fcd
Customizable Device Profiles (#1169)
* Rename ExperimentalSettingsView.swift to PlaybackQualitySettingsView.swift

Fix Merge

* Rename MaximumBitrateSettingsView.swift to PlaybackQualitySettingsView.swift

fix merge

* Re-implement on Main. Should now have all the Main changed. Added a new change to use the Device Profile as a Transcoding Profile.

* Part 1 -> Making VideoPlayerType into a struct (I Hope) correctly

* Part 1.1 -> Making VideoPlayerType into a struct (I Hope) correctly

* Remove unneeded Files

* Missing file + CustomDeviceProfileSelection -> CustomDeviceProfileAction Rename

* Change + to Appending

* Attempt to add StorageValues+User. Not sure if this is correct?

* Move the Array unwrapping to funcitons. Not required but this should help prevent accidently doing this wrong. Add subtitles back into the custom profiles since that somehow got dropped. Added a PlaybackCompatibility enum. This might need to work for more than just video

* Complete rewrite to allow multiple profiles, compatibility mode, and directplay.

* Hardward -> Hardware

* Update CustomDeviceProfileSettingsView.swift

Double Licensing

* It was actually really easy to implement iOS... Trash cans still look weird and small.

* Swipe to Delete instead of the edit button

* wip

* wip

* Linting

* tvOS Implementation

* wip

* wip

* cleanup

* Create Package.resolved

---------

Co-authored-by: Joseph Kribs <joseph@kribs.net>
Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com>
2024-09-02 15:33:02 -06:00
Edoardo 556696b90f Translated using Weblate (Italian)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2024-08-21 19:41:33 -04:00
Justin c0ca96c1ca Translated using Weblate (German)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-08-19 16:41:32 -04:00
Onur Evcil 2427c7c5fa Translated using Weblate (German)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-08-19 16:41:32 -04:00
Onur Evcil be74f69f8f Translated using Weblate (German)
Currently translated at 97.5% (325 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-08-18 16:17:44 -04:00
bartfaik04 e8d93263c5 Translated using Weblate (Hungarian)
Currently translated at 98.4% (328 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hu/
2024-08-18 14:41:33 -04:00
_xB 4b7f8850df Translated using Weblate (Arabic)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ar/
2024-08-18 14:41:33 -04:00
Naman Choudhary 7c36c157fe Translated using Weblate (Hindi)
Currently translated at 22.5% (75 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hi/
2024-08-17 05:41:34 -04:00
bene toffix 221f55340a Translated using Weblate (Catalan)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ca/
2024-08-17 05:41:34 -04:00
bartfaik04 298c08ed2e Translated using Weblate (Hungarian)
Currently translated at 96.9% (323 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hu/
2024-08-17 05:41:34 -04:00
Seppe De Langhe 87e443a156 Translated using Weblate (Dutch)
Currently translated at 99.0% (330 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-08-17 05:41:34 -04:00
Fire_Blaim da6c22341f Translated using Weblate (French)
Currently translated at 99.3% (331 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-08-15 19:37:33 -04:00
oxixes c042f2673e Translated using Weblate (Spanish)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-08-15 19:37:33 -04:00
lo-meow 7f023b3830 Translated using Weblate (Arabic)
Currently translated at 88.8% (296 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ar/
2024-08-13 10:06:48 -04:00
queeup 65f6dc1355 Translated using Weblate (Turkish)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2024-08-12 18:13:02 -04:00
queeup d342610df9 Translated using Weblate (Turkish)
Currently translated at 96.9% (323 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2024-08-12 16:52:06 -04:00
Sun Zizhuo 186273dfd1 Translated using Weblate (Chinese (Simplified))
Currently translated at 92.4% (308 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-08-12 09:56:13 -04:00
VOLO Digital Agency c283469f7d Translated using Weblate (Swedish)
Currently translated at 89.4% (298 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-08-12 01:48:43 -04:00
Kityn ca83f89443 Translated using Weblate (Polish)
Currently translated at 100.0% (333 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-08-12 01:27:12 -04:00
VOLO Digital Agency fde0cf9d9d Translated using Weblate (Swedish)
Currently translated at 89.1% (297 of 333 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-08-12 01:27:12 -04:00
Filippo Pesavento f5985490bf Translated using Weblate (Italian)
Currently translated at 99.6% (314 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2024-08-11 18:01:30 -04:00
Joe e4fd98c244
[tvOS] Settings Cleanup (#1163)
* Settings Cleanup. Replace strings with labels. Enforce the same font. Ensure Forms don't get clipped by their boundries. Create consistent, reusable button sizing/coloring. Apply to all Settings Pages.

* Remove custom Button/Form styling in exchange for just using .scrollClipDisabled()

* Swap back to Jellyfin Purple from Purple.

* Remove Check Button. Check all Section Inits where possible. Make Server Details Server non-focusable.

Create a new menu for Server Details selection. This is a WIP awaiting feedback from https://github.com/jellyfin/Swiftfin/pull/1163#discussion_r1705957885

---------

Co-authored-by: Joseph Kribs <joseph@kribs.net>
2024-08-06 20:56:24 -06:00
oxixes 0ae1324534 Translated using Weblate (Spanish)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-08-06 21:48:57 -04:00
queeup 64b22d4e36 Translated using Weblate (Turkish)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2024-08-06 13:29:02 -04:00
Justin 4427808215 Translated using Weblate (German)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-08-04 12:41:32 -04:00
Simon Caron 2bb3728ae6 Translated using Weblate (French)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-08-04 12:41:32 -04:00
Germain Carré fe3ebeddc6 Translated using Weblate (French)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-08-04 12:41:32 -04:00
Micka149 a0344dc26c Translated using Weblate (Russian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ru/
2024-07-31 08:41:31 -04:00
Chen Chengxuan 4d53609b6b Translated using Weblate (Chinese (Simplified))
Currently translated at 95.8% (302 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-07-31 08:41:31 -04:00
Kityn 29fad2458b Translated using Weblate (Polish)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-07-26 02:41:31 -04:00
stanol 4d1956fda5 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/uk/
2024-07-26 02:41:31 -04:00
Bas 3af6c5ba2b Translated using Weblate (Dutch)
Currently translated at 100.0% (315 of 315 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-07-24 13:52:03 -04:00
Justin 254af5d9af Translated using Weblate (German)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-07-24 11:49:52 -04:00
Joe 56bd62db80
App-Wide Bitrate Limit (#1147)
* Creation of bitrate selections that mirror Jellyfin-Web. The goal is to eventually allow for these same selections to be available for usage in the Player itself to set the max bitrate per playback session. This App-Wide setting is for things like preserving data (Mobile) or for areas that have perpetually have low bandwidth (AppleTV). These settings currently default to 'Auto' which is the current limit of 360,000,000 bps / 360 mpbs. I have added a spot in BaseItemDTO+VideoPlayerViewModel to get the smaller amount between 360 Mpbs and the App Maximum Setting. This exists so I can go back and update this to get the Minumum between the Player Session max bitrate and the App Setting max bitrate.

Test on iPhone 10S, AppleTV 3rd Gen, and the iPhone 15 Pro via enumulator.

* Fix Bitrate naming (360p vs 480p) and remove the setting nested in a second section.

* Creation of a Maximum setting with 360mbps and an auto that gets the bitrate at playback.

* Remove comments for code where I want to eventually put it for better clarify

* Linting fixes

* Change the Playback Bitrate to an Int from a String since the Bitrate is valuable but the string isn't. Run the SwiftFormat on the maxBitrate function.

* Migrate the settings to their own menu with both the bitrate and the optional test size when auto is used.

* Creation of an enum filterValues function for Bitrate. This way, the selection on the Player Overlay (eventually) can be filtered to only include bitrates that are less than or equal to the App Setting for Maximum Bitrate. This should help prevent confusion / remove bandwidth conflicts.

The eventual Player Overlay setting should never conflict with the App-Wide Setting and should only offer options that are less than the App-Wide Setting.

* Change the videoPlayerViewModel to take parameters instead of defaults. Move the defaults up one level to be called there. Split the bitrate test from the getMaxBitrate to better guard against dividing against 0 and also split out the logic to be easier to read.

Change the PlaybackBitrate filter to always include Auto and, when auto, include ALL bitrates. This filter is not currently used.

* Remove the PlaybackBitrate FilterValues since this is not needed and will be created ad-hoc.

* Update the bitrateTestDuration verbage to better reflect that you're changing the size of the bitrate test and not just increasing the duration. Re-use the existing largest to smallest labels since there isn't a ton of benefit using "Longest to Shortest" so this should re-use existing localization. Comment the Labels.

No functional changes. Only an update to labels.

* Delete the Bitrate.json file but retain the Resources folder.

* Remove Resource Folder.

---------

Co-authored-by: Joe Kribs <joseph@kribs.net>
2024-07-23 06:18:28 -05:00
bartfaik04 5296404038 Translated using Weblate (Hungarian)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hu/
2024-07-14 22:14:44 -04:00
Mario Paljusevic 18f0b40622 Translated using Weblate (Croatian)
Currently translated at 65.5% (194 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hr/
2024-07-12 09:25:18 -04:00
Tifeko 42a895e9fa Translated using Weblate (Dutch)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-07-04 09:41:30 -04:00
Yuwada Solway 439cd85c77 Translated using Weblate (Thai)
Currently translated at 98.6% (292 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/th/
2024-07-01 04:41:29 -04:00
Ghostdesu 4c17ea251b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/uk/
2024-06-20 15:41:28 -04:00
bene toffix 30cd161aa2 Translated using Weblate (Catalan)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ca/
2024-06-19 13:14:40 -04:00
Frederik 014f96458a Translated using Weblate (Danish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/da/
2024-06-19 07:41:28 -04:00
DJSweder 0c13b7bab9 Translated using Weblate (Czech)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/cs/
2024-06-19 07:41:28 -04:00
Jean Franz db30ffcbd3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (295 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt_BR/
2024-06-17 12:43:48 -04:00
Adorján 33f3610c4d Translated using Weblate (Hungarian)
Currently translated at 99.3% (294 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hu/
2024-06-17 12:43:48 -04:00
Jean Franz 7f6faa00ac Translated using Weblate (Portuguese)
Currently translated at 99.6% (295 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt/
2024-06-17 12:43:48 -04:00
Bas 9b1105b1c3 Translated using Weblate (Dutch)
Currently translated at 99.3% (294 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-06-17 12:43:48 -04:00
Simon Caron 3eaec42f90 Translated using Weblate (French)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-06-14 21:11:27 -04:00
Chris Lee 1d284c800d Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.5% (280 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-06-11 18:39:04 -04:00
Turtleindeed 4be6a5102b Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.5% (280 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-06-11 18:39:04 -04:00
Simon Caron 00276cafe3 Translated using Weblate (French)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-06-11 18:39:04 -04:00
Sprisa c9aa3b89da Translated using Weblate (Finnish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fi/
2024-06-11 14:17:27 -04:00
Sprisa b5d75b9b77 Translated using Weblate (Swedish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-06-11 14:17:27 -04:00
Aritra1235 e0e143d9ad Translated using Weblate (Hindi)
Currently translated at 9.7% (29 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/hi/
2024-06-10 14:41:30 -04:00
DJSweder 82a5ba56ef Translated using Weblate (Czech)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/cs/
2024-06-10 14:41:30 -04:00
Simon Caron 3433cd02e0 Translated using Weblate (French)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-06-10 14:41:30 -04:00
alex 9ebcbe9728 Translated using Weblate (Greek)
Currently translated at 49.6% (147 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/el/
2024-06-08 17:08:21 -04:00
Edmond 9efb659da4 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hant/
2024-06-07 08:55:17 -04:00
Edmond 51dfac3df6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hans/
2024-06-07 08:55:17 -04:00
queeup d6999bc41b Translated using Weblate (Turkish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2024-06-04 20:10:39 -04:00
Justin c596a18064 Translated using Weblate (German)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/de/
2024-06-03 21:37:59 -04:00
nextlooper42 59afafdc00 Translated using Weblate (Slovak)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2024-06-03 07:31:53 -04:00
cooper standard 445be004ac Translated using Weblate (Spanish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-06-02 00:21:40 -04:00
wfwjcl c90d2d7156 Translated using Weblate (Spanish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-06-02 00:21:40 -04:00
cooper standard 3a5b185ceb Translated using Weblate (Spanish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-06-02 00:10:27 -04:00
Kityn f6ce1c7331 Translated using Weblate (Polish)
Currently translated at 100.0% (296 of 296 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pl/
2024-06-01 12:00:50 -04:00
Tin Nguyen 3f0ddf61c8 Translated using Weblate (Vietnamese)
Currently translated at 49.3% (144 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/vi/
2024-05-31 11:56:51 -04:00
Joe 25b30b5436
Create Library Alpha Picker (#980) 2024-05-26 15:07:13 -06:00
DJSweder 142b881ea9 Translated using Weblate (Czech)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/cs/
2024-05-26 02:41:27 -04:00
Germán Pajarero 0a16437f50 Translated using Weblate (Esperanto)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/eo/
2024-05-16 05:29:07 -04:00
Germán Pajarero 0a3e91bbbf Translated using Weblate (Esperanto)
Currently translated at 71.5% (209 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/eo/
2024-05-15 18:15:12 -04:00
musenq e9baf2dd4f Translated using Weblate (Japanese)
Currently translated at 48.9% (143 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ja/
2024-05-08 04:45:59 -04:00
Andrea 823c06e1e9 Translated using Weblate (Italian)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2024-05-07 14:13:23 -04:00
Tommy 3f7719b234 Translated using Weblate (Norwegian Bokmål)
Currently translated at 92.8% (271 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nb_NO/
2024-05-05 15:44:38 -04:00
musenq dd0c98ab98 Translated using Weblate (Japanese)
Currently translated at 47.6% (139 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ja/
2024-05-05 04:36:42 -04:00
HiPotionQ8 36f82ab5f9 Translated using Weblate (Arabic)
Currently translated at 85.9% (251 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ar/
2024-05-05 04:36:41 -04:00
HiPotionQ8 f958fa3f39 Translated using Weblate (Arabic)
Currently translated at 71.2% (208 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ar/
2024-05-04 13:06:07 -04:00
HanHwanHo 936245e414 Translated using Weblate (Korean)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ko/
2024-04-27 12:07:27 -04:00
SupertCZ 9dc6303388 Translated using Weblate (Czech)
Currently translated at 98.6% (288 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/cs/
2024-04-27 06:47:46 -04:00
DJSweder 73edea724c Translated using Weblate (Czech)
Currently translated at 85.9% (251 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/cs/
2024-04-26 11:38:55 -04:00
whisleywang 3ba922b4bd Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hant/
2024-04-24 04:22:34 -04:00
MrJinchou c58d6c72c3 Translated using Weblate (Luxembourgish)
Currently translated at 2.3% (7 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/lb/
2024-04-23 19:24:40 -04:00
wfwjcl 84e5fc78da Translated using Weblate (Spanish)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-04-21 08:31:34 -04:00
Víctor Vázquez 3c52c5cba9 Translated using Weblate (Spanish)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/es/
2024-04-21 08:31:34 -04:00
Jaakko Rantamäki 16303c9bd4 Translated using Weblate (Finnish)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fi/
2024-04-19 04:48:54 -04:00
Jaakko Rantamäki 4f0766d242 Added translation using Weblate (Finnish) 2024-04-18 04:53:26 -04:00
ROYJohan08 d65c4e8454 Translated using Weblate (French)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-04-10 01:25:09 -04:00
Stefan Kolevski 4b30f8a405 Translated using Weblate (Macedonian)
Currently translated at 18.4% (54 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/mk/
2024-04-05 11:38:05 -04:00
nextlooper42 6c0ccddbd1 Translated using Weblate (Slovak)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2024-04-02 14:36:10 -04:00
Stefan Kolevski bda46325b3 Translated using Weblate (Macedonian)
Currently translated at 0.6% (2 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/mk/
2024-04-02 10:38:02 -04:00
Stefan Kolevski 925d053e5c Added translation using Weblate (Macedonian) 2024-04-01 10:31:58 -04:00
Oatavandi 4ed9e52d1e Translated using Weblate (Tamil)
Currently translated at 67.4% (197 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ta/
2024-04-01 02:42:29 -04:00
nextlooper42 0d6e71b9c5 Translated using Weblate (Slovak)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2024-03-30 20:12:42 -04:00
Tobias Mitala f87cdaf0d0 Translated using Weblate (Slovak)
Currently translated at 98.9% (289 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sk/
2024-03-28 18:56:13 -04:00
Fra146 11fc23cab9 Translated using Weblate (Italian)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/it/
2024-03-15 13:38:03 -04:00
Nir Israel Hen 098c21b80b Translated using Weblate (Hebrew)
Currently translated at 99.6% (291 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/he/
2024-03-15 13:38:03 -04:00
Nir Israel Hen b2711b453c Translated using Weblate (Hebrew)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/he/
2024-03-14 11:38:02 -04:00
Blackspirits e02c3d05d9 Translated using Weblate (Portuguese)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt/
2024-03-09 18:38:04 -05:00
Blackspirits 8984cc8835 Translated using Weblate (Portuguese)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt/
2024-03-08 18:20:18 -05:00
1030283726 8418a3e8ba Translated using Weblate (Chinese (Traditional))
Currently translated at 91.7% (268 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hant/
2024-02-29 04:17:23 -05:00
Siu Chi Wang f78788dce0 Translated using Weblate (Chinese (Traditional))
Currently translated at 90.7% (265 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/zh_Hant/
2024-02-28 05:37:13 -05:00
Leonardo Lopes da Luz 42afa0e717 Translated using Weblate (Portuguese)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/pt/
2024-02-26 20:37:12 -05:00
Jollerprutt 2cc07f1ff6 Translated using Weblate (Swedish)
Currently translated at 96.5% (282 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-02-25 15:37:11 -05:00
Anže Kos 1fb05f6f9f Translated using Weblate (Slovenian)
Currently translated at 84.2% (246 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sl/
2024-02-22 05:37:11 -05:00
Malthe Hensberg 8307ac501b Translated using Weblate (Danish)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/da/
2024-02-17 14:37:10 -05:00
C2gl bb172456bd Translated using Weblate (Dutch)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/nl/
2024-02-12 16:30:39 -05:00
Thomas Schwery 6d8c999a7a Translated using Weblate (French)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-01-30 14:30:34 -05:00
Kévin LEBLOND 41cdb1aae4 Translated using Weblate (Pashto)
Currently translated at 18.4% (54 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ps/
2024-01-28 15:30:35 -05:00
Daqwayne 85d5ad28d1 Translated using Weblate (Vietnamese)
Currently translated at 44.5% (130 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/vi/
2024-01-28 15:30:35 -05:00
Kévin LEBLOND d4f20deadd Translated using Weblate (French)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/fr/
2024-01-28 15:30:35 -05:00
Malang Jan ff229a5c38 Translated using Weblate (Pashto)
Currently translated at 18.1% (53 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/ps/
2024-01-24 10:30:33 -05:00
Mikael Fredriksson ae47e67eab Translated using Weblate (Swedish)
Currently translated at 95.5% (279 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/sv/
2024-01-24 10:30:32 -05:00
Malang Jan 4a3a59acd1 Added translation using Weblate (Pashto) 2024-01-23 07:43:59 -05:00
queeup 28956c8e12 Translated using Weblate (Turkish)
Currently translated at 100.0% (292 of 292 strings)

Translation: Swiftfin/Swiftfin
Translate-URL: https://translate.jellyfin.org/projects/swiftfin/swiftfin/tr/
2024-01-23 01:22:42 -05:00