Skip to content

Commit

Permalink
Update translations
Browse files Browse the repository at this point in the history
  • Loading branch information
mtkennerly committed Jan 15, 2025
1 parent 2585049 commit b0a4604
Show file tree
Hide file tree
Showing 3 changed files with 266 additions and 1 deletion.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
errors at the end of the process will also be reported via dialogs.
This does not apply to CLI parse errors.
* Application crash and CLI parse errors are now logged.
* Updated translations, including a new translation for Vietnamese.
* Updated translations, including partial support for Vietnamese and Swedish.
(Thanks to contributors on the [Crowdin project](https://crowdin.com/project/ludusavi))
* Fixed:
* If a custom game's title begins or ends with a space,
Expand Down
256 changes: 256 additions & 0 deletions lang/sv-SE.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
ludusavi = Ludusavi
language = Språk
game-name = Namn
total-games = Spel
file-size = Storlek
file-location = Plats
overall = Sammanlagt
status = Status
cli-unrecognized-games = Ingen information för dessa spel:
cli-unable-to-request-confirmation = Unable to request confirmation.
.winpty-workaround = If you are using a Bash emulator (like Git Bash), try running winpty.
cli-backup-id-with-multiple-games = Cannot specify backup ID when restoring multiple games.
cli-invalid-backup-id = Invalid backup ID.
badge-failed = FAILED
badge-duplicates = DUPLICATES
badge-duplicated = DUPLICATED
badge-ignored = IGNORED
badge-redirected-from = FROM: { $path }
badge-redirecting-to = TO: { $path }
some-entries-failed = Some entries failed to process; look for { badge-failed } in the output for details. Double check whether you can access those files or whether their paths are very long.
cli-game-line-item-redirected = Redirected from: { $path }
cli-game-line-item-redirecting = Redirecting to: { $path }
button-backup = Back up
button-preview = Preview
button-restore = Restore
button-nav-backup = BACKUP MODE
button-nav-restore = RESTORE MODE
button-nav-custom-games = CUSTOM GAMES
button-nav-other = OTHER
button-add-game = Add game
button-continue = Continue
button-cancel = Cancel
button-cancelling = Cancelling...
button-okay = Okay
button-select-all = Select all
button-deselect-all = Deselect all
button-enable-all = Enable all
button-disable-all = Disable all
button-customize = Customize
button-exit = Exit
button-comment = Comment
button-lock = Lock
button-unlock = Unlock
# This opens a download page.
button-get-app = Get { $app }
button-validate = Validate
button-override-manifest = Override manifest
button-extend-manifest = Extend manifest
button-sort = Sort
no-roots-are-configured = Add some roots to back up even more data.
config-is-invalid = Error: The config file is invalid.
manifest-is-invalid = Error: The manifest file is invalid.
manifest-cannot-be-updated = Error: Unable to check for an update to the manifest file. Is your Internet connection down?
cannot-prepare-backup-target = Error: Unable to prepare backup target (either creating or emptying the folder). If you have the folder open in your file browser, try closing it: { $path }
restoration-source-is-invalid = Error: The restoration source is invalid (either doesn't exist or isn't a directory). Please double check the location: { $path }
registry-issue = Error: Some registry entries were skipped.
unable-to-browse-file-system = Error: Unable to browse on your system.
unable-to-open-directory = Error: Unable to open directory:
unable-to-open-url = Error: Unable to open URL:
unable-to-configure-cloud = Unable to configure cloud.
unable-to-synchronize-with-cloud = Unable to synchronize with cloud.
cloud-synchronize-conflict = Your local and cloud backups are in conflict. Perform an upload or download to resolve this.
command-unlaunched = Command did not launch: { $command }
command-terminated = Command terminated abruptly: { $command }
command-failed = Command failed with code { $code }: { $command }
processed-games =
{ $total-games } { $total-games ->
[one] game
*[other] games
}
processed-games-subset =
{ $processed-games } of { $total-games } { $total-games ->
[one] game
*[other] games
}
processed-size-subset = { $processed-size } of { $total-size }
field-backup-target = Back up to:
field-restore-source = Restore from:
field-custom-files = Paths:
field-custom-registry = Registry:
field-sort = Sort:
field-redirect-source =
.placeholder = Source (original location)
field-redirect-target =
.placeholder = Target (new location)
field-roots = Roots:
field-backup-excluded-items = Backup exclusions:
field-redirects = Redirects:
# This appears next to the number of full backups that you'd like to keep.
# A full backup includes all save files for a game.
field-retention-full = Full:
# This appears next to the number of differential backups that you'd like to keep.
# A differential backup includes only the files that have changed since the last full backup.
field-retention-differential = Differential:
field-backup-format = Format:
field-backup-compression = Compression:
# The compression level determines how much compresison we perform.
field-backup-compression-level = Level:
label-manifest = Manifest
# This shows the time when we checked for an update to the manifest.
label-checked = Checked
# This shows the time when we found an update to the manifest.
label-updated = Updated
label-new = New
label-removed = Removed
label-comment = Comment
label-unchanged = Unchanged
label-backup = Backup
label-scan = Scan
label-filter = Filter
label-unique = Unique
label-complete = Complete
label-partial = Partial
label-enabled = Enabled
label-disabled = Disabled
# https://en.wikipedia.org/wiki/Thread_(computing)
label-threads = Threads
label-cloud = Cloud
# A "remote" is what Rclone calls cloud systems like Google Drive.
label-remote = Remote
label-remote-name = Remote name
label-folder = Folder
# An executable file
label-executable = Executable
# Options given to a command line program
label-arguments = Arguments
label-url = URL
# https://en.wikipedia.org/wiki/Host_(network)
label-host = Host
# https://en.wikipedia.org/wiki/Port_(computer_networking)
label-port = Port
label-username = Username
label-password = Password
# This is a specific website or service that provides some cloud functionality.
# For example, Nextcloud and Owncloud are providers of WebDAV services.
label-provider = Provider
label-custom = Custom
label-none = None
label-change-count = Changes: { $total }
label-unscanned = Unscanned
# This refers to a local file on the computer
label-file = File
label-game = Game
# Aliases are alternative titles for the same game.
label-alias = Alias
label-original-name = Original name
# Which manifest a game's data came from
label-source = Source
# This refers to the main Ludusavi manifest: https://github.com/mtkennerly/ludusavi-manifest
label-primary-manifest = Primary manifest
# This refers to how we integrate a custom game with the manifest data.
label-integration = Integration
# This is a folder name where a specific game is installed
label-installed-name = Installed name
store-ea = EA
store-epic = Epic
store-gog = GOG
store-gog-galaxy = GOG Galaxy
store-heroic = Heroic
store-legendary = Legendary
store-lutris = Lutris
store-microsoft = Microsoft
store-origin = Origin
store-prime = Prime Gaming
store-steam = Steam
store-uplay = Uplay
store-other-home = Home folder
# This would be a folder acting as a virtual C: drive, created by Wine.
store-other-wine = Wine prefix
# This would be a folder with typical Windows system folders,
# like "Program Files (x86)" and "Users".
store-other-windows = Windows drive
# This would be a folder with typical Linux system folders,
# like "home" and "opt".
store-other-linux = Linux drive
# This would be a folder with typical Mac system folders,
# like "Applications" and "Users".
store-other-mac = Mac drive
store-other = Other
backup-format-simple = Simple
backup-format-zip = Zip
compression-none = None
# "Deflate" is a proper noun: https://en.wikipedia.org/wiki/Deflate
compression-deflate = Deflate
compression-bzip2 = Bzip2
compression-zstd = Zstd
theme = Theme
theme-light = Light
theme-dark = Dark
redirect-bidirectional = Bidirectional
reverse-redirects-when-restoring = Reverse sequence of redirects when restoring
show-disabled-games = Show disabled games
show-unchanged-games = Show unchanged games
show-unscanned-games = Show unscanned games
override-max-threads = Override max threads
synchronize-automatically = Synchronize automatically
prefer-alias-display = Display alias instead of original name
skip-unconstructive-backups = Skip backup when data would be removed, but not added or updated
explanation-for-exclude-store-screenshots = In backups, exclude store-specific screenshots
explanation-for-exclude-cloud-games = Do not back up games with cloud support on these platforms
consider-doing-a-preview =
If you haven't already, consider doing a preview first so that there
are no surprises.
confirm-backup =
Are you sure you want to proceed with the backup? { $path-action ->
[merge] New save data will be merged into the target folder:
*[create] The target folder will be created:
}
confirm-restore =
Are you sure you want to proceed with the restoration?
This will overwrite any current files with the backups from here:
confirm-cloud-upload =
Do you want to replace your cloud files with your local files?
Your cloud files ({ $cloud-path }) will become an exact copy of your local files ({ $local-path }).
Files in the cloud will be updated or deleted as necessary.
confirm-cloud-download =
Do you want to replace your local files with your cloud files?
Your local files ({ $local-path }) will become an exact copy of your cloud files ({ $cloud-path }).
Local files will be updated or deleted as necessary.
confirm-add-missing-roots = Add these roots?
no-missing-roots = No additional roots found.
loading = Loading...
preparing-backup-target = Preparing backup directory...
updating-manifest = Updating manifest...
no-cloud-changes = No changes to synchronize
backups-are-valid = Your backups are valid.
backups-are-invalid =
These games' backups appear to be invalid.
Do you want to create new full backups for these games?
saves-found = Save data found.
no-saves-found = No save data found.
# This is tacked on to form something like "Back up (no confirmation)",
# meaning we would perform an action without asking the user if they're sure.
suffix-no-confirmation = no confirmation
# This is shown when a setting will only take effect after closing and reopening Ludusavi.
suffix-restart-required = restart required
prefix-error = Error: { $message }
prefix-warning = Warning: { $message }
cloud-app-unavailable = Cloud backups are disabled because { $app } is not available.
cloud-not-configured = Cloud backups are disabled because no cloud system is configured.
cloud-path-invalid = Cloud backups are disabled because the backup path is invalid.
game-is-unrecognized = Ludusavi does not recognize this game.
game-has-nothing-to-restore = This game does not have a backup to restore.
launch-game-after-error = Launch the game anyway?
game-did-not-launch = Game failed to launch.
back-up-specific-game =
.confirm = Back up save data for { $game }?
.failed = Failed to back up save data for { $game }
restore-specific-game =
.confirm = Restore save data for { $game }?
.failed = Failed to restore save data for { $game }
new-version-check = Check for application updates automatically
new-version-available = An application update is available: { $version }. Would you like to view the release notes?
custom-game-will-override = This custom game overrides a manifest entry
custom-game-will-extend = This custom game extends a manifest entry
operation-will-only-include-listed-games = This will only process the games that are currently listed
9 changes: 9 additions & 0 deletions src/lang.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ pub enum Language {
/// Spanish
#[serde(rename = "es-ES")]
Spanish,
/// Swedish
#[serde(rename = "sv-SE")]
Swedish,
/// Thai
#[serde(rename = "th-TH")]
Thai,
Expand All @@ -119,6 +122,7 @@ pub enum Language {
}

impl Language {
// These are sorted based on each language's native name.
pub const ALL: &'static [Self] = &[
Self::Czech,
Self::German,
Expand All @@ -132,6 +136,7 @@ impl Language {
Self::Polish,
Self::PortugueseBrazilian,
Self::Russian,
Self::Swedish,
Self::Finnish,
Self::Vietnamese,
Self::Turkish,
Expand Down Expand Up @@ -164,6 +169,7 @@ impl Language {
Self::PortugueseBrazilian => "pt-BR",
Self::Russian => "ru-RU",
Self::Spanish => "es-ES",
Self::Swedish => "sv-SE",
Self::Thai => "th-TH",
Self::Turkish => "tr-TR",
Self::Ukrainian => "uk-UA",
Expand Down Expand Up @@ -192,6 +198,7 @@ impl Language {
Language::PortugueseBrazilian => "Português brasileiro",
Language::Russian => "Русский язык",
Language::Spanish => "Español",
Language::Swedish => "Svenska",
Language::Thai => "ภาษาไทย",
Language::Turkish => "Türkçe",
Language::Ukrainian => "Украї́нська мо́ва",
Expand Down Expand Up @@ -219,6 +226,7 @@ impl Language {
Language::PortugueseBrazilian => 98,
Language::Russian => 100,
Language::Spanish => 98,
Language::Swedish => 1,
Language::Thai => 22,
Language::Turkish => 98,
Language::Ukrainian => 37,
Expand Down Expand Up @@ -277,6 +285,7 @@ fn set_language(language: Language) {
Language::PortugueseBrazilian => include_str!("../lang/pt-BR.ftl"),
Language::Russian => include_str!("../lang/ru-RU.ftl"),
Language::Spanish => include_str!("../lang/es-ES.ftl"),
Language::Swedish => include_str!("../lang/sv-SE.ftl"),
Language::Thai => include_str!("../lang/th-TH.ftl"),
Language::Turkish => include_str!("../lang/tr-TR.ftl"),
Language::Ukrainian => include_str!("../lang/uk-UA.ftl"),
Expand Down

0 comments on commit b0a4604

Please sign in to comment.