Răsfoiți Sursa

Language updates

Ruben 1 an în urmă
părinte
comite
9b5e5b2dbc

+ 1 - 2
src/PicView.Avalonia/ViewModels/MainViewModel.cs

@@ -1,6 +1,5 @@
 using System.Diagnostics;
 using System.Reactive;
-using System.Reactive.Linq;
 using Avalonia;
 using Avalonia.Controls;
 using Avalonia.Controls.Primitives;
@@ -1871,7 +1870,7 @@ public class MainViewModel : ViewModelBase
 
         #region File commands
 
-        OpenFileCommand = ReactiveCommand.CreateFromTask(FunctionsHelper.Open, Observable.Return(true));
+        OpenFileCommand = ReactiveCommand.CreateFromTask(FunctionsHelper.Open);
 
         OpenLastFileCommand = ReactiveCommand.CreateFromTask(FunctionsHelper.OpenLastFile);
 

+ 76 - 87
src/PicView.Avalonia/Views/LanguageView.axaml.cs

@@ -1,8 +1,6 @@
 using System.Globalization;
 using Avalonia.Controls;
-using Avalonia.Threading;
 using PicView.Avalonia.SettingsManagement;
-using PicView.Avalonia.UI;
 using PicView.Avalonia.ViewModels;
 using PicView.Core.Config;
 using PicView.Core.Localization;
@@ -15,118 +13,109 @@ public partial class LanguageView : UserControl
     {
         InitializeComponent();
 
-        var languages = TranslationHelper.GetLanguages().OrderBy(x => x);
-        foreach (var language in languages)
+        Loaded += (_, _) =>
         {
-            var lang = Path.GetFileNameWithoutExtension(language);
-            var isSelected = lang.Length switch
-            {
-                >= 4 => lang[^2..] == SettingsHelper.Settings.UIProperties.UserLanguage[^2..],
-                2 => lang[..2] == SettingsHelper.Settings.UIProperties.UserLanguage[..2],
-                _ => lang == SettingsHelper.Settings.UIProperties.UserLanguage
-            };
-
-            var comboBoxItem = new ComboBoxItem
-            {
-                Content = new CultureInfo(lang).DisplayName,
-                IsSelected = isSelected,
-                Tag = lang
-            };
-
-            LanguageBox.Items.Add(comboBoxItem);
-            if (isSelected)
-            {
-                LanguageBox.SelectedItem = comboBoxItem;
-            }
-        }
-
-        LanguageBox.SelectionChanged += async delegate
-        {
-            if (LanguageBox.SelectedItem is not ComboBoxItem comboBoxItem)
+            if (DataContext is not MainViewModel vm)
             {
                 return;
             }
 
-            var language = Path.GetFileNameWithoutExtension(comboBoxItem.Tag as string ?? string.Empty);
-            if (string.IsNullOrEmpty(language))
+            var languages = TranslationHelper.GetLanguages().OrderBy(x => x);
+            foreach (var language in languages)
             {
-                return;
-            }
+                var lang = Path.GetFileNameWithoutExtension(language);
+                var isSelected = lang.Length switch
+                {
+                    >= 4 => lang[^2..] == SettingsHelper.Settings.UIProperties.UserLanguage[^2..],
+                    2 => lang[..2] == SettingsHelper.Settings.UIProperties.UserLanguage[..2],
+                    _ => lang == SettingsHelper.Settings.UIProperties.UserLanguage
+                };
 
-            if (language == SettingsHelper.Settings.UIProperties.UserLanguage)
-            {
-                return;
-            }
+                var comboBoxItem = new ComboBoxItem
+                {
+                    Content = new CultureInfo(lang).DisplayName,
+                    IsSelected = isSelected,
+                    Tag = lang
+                };
 
-            SettingsHelper.Settings.UIProperties.UserLanguage = language;
+                LanguageBox.Items.Add(comboBoxItem);
+                if (isSelected)
+                {
+                    LanguageBox.SelectedItem = comboBoxItem;
+                }
+            }
 
-            await TranslationHelper.LoadLanguage(language).ConfigureAwait(false);
-            await Dispatcher.UIThread.InvokeAsync(() =>
+            LanguageBox.DropDownOpened += delegate
             {
-                if (DataContext is not MainViewModel vm)
+                if (LanguageBox.SelectedIndex != -1)
                 {
                     return;
                 }
 
-                LanguageUpdater.UpdateLanguage(vm);
-
-                var topLevel = TopLevel.GetTopLevel(this);
-                if (topLevel is not Window window)
+                // Find the ComboBoxItem whose Tag matches the two-letter or culture-specific language
+                for (var i = 0; i < LanguageBox.Items.Count; i++)
                 {
-                    return;
-                }
+                    if (LanguageBox.Items[i] is not ComboBoxItem { Tag: string tag })
+                    {
+                        continue;
+                    }
 
-                window.Close();
-            });
+                    // Check if the selected language exactly matches, including culture
+                    if (tag.Equals(SettingsHelper.Settings.UIProperties.UserLanguage,
+                            StringComparison.OrdinalIgnoreCase))
+                    {
+                        LanguageBox.SelectedIndex = i;
+                        break;
+                    }
 
-            await FunctionsHelper.SettingsWindow();
-            await SettingsHelper.SaveSettingsAsync();
-        };
-        LanguageBox.DropDownOpened += delegate
-        {
-            if (LanguageBox.SelectedIndex != -1)
-            {
-                return;
-            }
+                    // If the language tag starts with the two-letter ISO code and contains a culture (e.g., "zh" and "zh-CN")
+                    if (tag.StartsWith(SettingsHelper.Settings.UIProperties.UserLanguage[..2],
+                            StringComparison.OrdinalIgnoreCase))
+                    {
+                        // Check if the user's selected language contains a culture (like "zh-CN")
+                        if (SettingsHelper.Settings.UIProperties.UserLanguage.Length > 2)
+                        {
+                            // Select the specific culture version if the tag matches up to the dash (e.g., "zh-CN")
+                            if (tag.StartsWith(SettingsHelper.Settings.UIProperties.UserLanguage,
+                                    StringComparison.OrdinalIgnoreCase))
+                            {
+                                LanguageBox.SelectedIndex = i;
+                                break;
+                            }
+                        }
+                        else
+                        {
+                            // Select the first matching two-letter language code (e.g., "zh")
+                            LanguageBox.SelectedIndex = i;
+                            break;
+                        }
+                    }
+                }
+            };
 
-            // Find the ComboBoxItem whose Tag matches the two-letter or culture-specific language
-            for (var i = 0; i < LanguageBox.Items.Count; i++)
+            LanguageBox.DropDownClosed += async delegate
             {
-                if (LanguageBox.Items[i] is not ComboBoxItem { Tag: string tag })
+                if (LanguageBox.SelectedItem is not ComboBoxItem comboBoxItem)
                 {
-                    continue;
+                    return;
                 }
 
-                // Check if the selected language exactly matches, including culture
-                if (tag.Equals(SettingsHelper.Settings.UIProperties.UserLanguage, StringComparison.OrdinalIgnoreCase))
+                var language = Path.GetFileNameWithoutExtension(comboBoxItem.Tag as string ?? string.Empty);
+                if (string.IsNullOrEmpty(language))
                 {
-                    LanguageBox.SelectedIndex = i;
-                    break;
+                    return;
                 }
 
-                // If the language tag starts with the two-letter ISO code and contains a culture (e.g., "zh" and "zh-CN")
-                if (tag.StartsWith(SettingsHelper.Settings.UIProperties.UserLanguage[..2],
-                        StringComparison.OrdinalIgnoreCase))
+                if (language == SettingsHelper.Settings.UIProperties.UserLanguage)
                 {
-                    // Check if the user's selected language contains a culture (like "zh-CN")
-                    if (SettingsHelper.Settings.UIProperties.UserLanguage.Length > 2)
-                    {
-                        // Select the specific culture version if the tag matches up to the dash (e.g., "zh-CN")
-                        if (tag.StartsWith(SettingsHelper.Settings.UIProperties.UserLanguage,
-                                StringComparison.OrdinalIgnoreCase))
-                        {
-                            LanguageBox.SelectedIndex = i;
-                            break;
-                        }
-                    }
-                    else
-                    {
-                        // Select the first matching two-letter language code (e.g., "zh")
-                        LanguageBox.SelectedIndex = i;
-                        break;
-                    }
+                    return;
                 }
-            }
+
+                SettingsHelper.Settings.UIProperties.UserLanguage = language;
+
+                await TranslationHelper.LoadLanguage(language).ConfigureAwait(false);
+                LanguageUpdater.UpdateLanguage(vm);
+            };
         };
     }
 }

+ 1 - 1
src/PicView.Core/Config/Languages/es.json

@@ -1,5 +1,5 @@
 {
-  "About": "About",
+  "About": "Acerca de",
   "ActionProgram": "Programa de acción",
   "AddedToClipboard": "agregada al portapapeles",
   "AdditionalFunctions": "Funciones adicionales",

+ 1 - 1
src/PicView.Core/Config/Languages/it.json

@@ -1,5 +1,5 @@
 {
-  "About": "About",
+  "About": "Di",
   "ActionProgram": "Programma d'azione",
   "AddedToClipboard": "Aggiunto agli appunti",
   "AdditionalFunctions": "Funzioni aggiuntive",

+ 383 - 0
src/PicView.Core/Config/Languages/sv.json

@@ -0,0 +1,383 @@
+{
+  "About": "Om",
+  "ActionProgram": "Programaktivitet",
+  "AddedToClipboard": "Tillagt i urklipp",
+  "AdditionalFunctions": "Ytterligare funktioner",
+  "AdjustNavSpeed": "Justera hastighet när tangenten hålls ner",
+  "AdjustTimingForSlideshow": "Justera tid för bildvisning",
+  "AdjustTimingForZoom": "Justera zoomhastighet",
+  "AdjustZoomLevel": "Justera zoomnivå",
+  "AdvanceBy100Images": "Gå framåt 100 bilder",
+  "AdvanceBy10Images": "Gå framåt 10 bilder",
+  "AllowZoomOut": "Undvik att zooma ut bilden när den redan är maximerad",
+  "Alt": "Alt",
+  "Altitude": "Höjd",
+  "AperturePriority": "Bländarautomatik",
+  "Appearance": "Utseende",
+  "ApplicationShortcuts": "Genvägar till programmet",
+  "ApplicationStartup": "Uppstart av programmet",
+  "Apply": "Utför",
+  "Applying": "Utför",
+  "Ascending": "Stigande",
+  "AspectRatio": "Bildförhållande",
+  "Authors": "Författare",
+  "Auto": "Auto",
+  "AutoFitWindow": "Auto-anpassa fönster",
+  "BadArchive": "Arkivet kan inte bearbetas",
+  "BandedSwirl": "Bandvirvel",
+  "Bands": "Band",
+  "Base64Image": "Base64-bild",
+  "BatchResize": "Batch ändra storlek",
+  "BitDepth": "Bitdjup",
+  "BlackAndWhite": "Svart/vit",
+  "Bloom": "Blomma",
+  "Blue": "Blå",
+  "Blur": "Oskärpa",
+  "BottomGalleryItemSize": "Storlek på tumnaglar i nedre galleriet",
+  "BottomGalleryThumbnailStretch": "Sträck tumnagnaglar i nedre galleriet",
+  "Brightness": "Ljusstyrka",
+  "CameraMaker": "Kameratillverkare",
+  "CameraModel": "Kameramodell",
+  "Cancel": "Avbryt",
+  "Center": "Centrera",
+  "CenterWindow": "Mittfönster",
+  "Centimeters": "centimeter",
+  "ChangeBackground": "Ändra bakgrund",
+  "ChangeBackgroundTooltip": "Ändra mellan bakgrundsfärger för bilder med genomskinlig bakgrund",
+  "ChangeKeybindingText": "Klicka i textrutan för att associera tangent. Esc tar bort ändringen.",
+  "ChangeKeybindingTooltip": "Klicka för att associera tangent",
+  "ChangingThemeRequiresRestart": "* Ändring av tema kräver omstart av programmet",
+  "CheckForUpdates": "Sök efter uppdateringar",
+  "ClipboardImage": "Urklippsbild",
+  "Close": "Stäng",
+  "CloseApp": "Stäng programmet",
+  "CloseGallery": "Stäng galleriet",
+  "CloudyWeather": "Molnigt",
+  "ColorPickerTool": "Färgprov",
+  "ColorPickerToolTooltip": "Ta färgprov i bilden",
+  "ColorRepresentation": "Färgrepresentation",
+  "ColorTone": "Färgton",
+  "CompressedBitsPixel": "Komprimerade bitar per pixel",
+  "Compression": "Kompression",
+  "Contrast": "Kontrast",
+  "ConvertTo": "Konvertera till",
+  "ConvertedToBase64": "Konverterad till base64",
+  "CoolWhiteFluorescent": "Lysrör kallvitt",
+  "CopiedImage": "Kopierade bilden till urklipp",
+  "Copy": "Kopiera",
+  "CopyFile": "Kopiera fil",
+  "CopyImage": "Kopiera bild",
+  "CopyImageTooltip": "Kopiera som urklippsbild",
+  "Copyright": "Upphovsrätt",
+  "Created": "Skapad",
+  "CreationTime": "Skapat tidpunkt",
+  "CreativeProgram": "Kreativt program",
+  "Credits": "Tack till medverkande",
+  "Crop": "Beskär",
+  "CropMessage": "Tryck Esc för att spara, Enter för att spara",
+  "CropPicture": "Beskär bild",
+  "Ctrl": "Ctrl",
+  "CtrlToZoom": "Ctrl för att zooma, rulla för att flytta",
+  "Cut": "Klipp",
+  "DarkTheme": "Mörkt tema",
+  "Date": "Datum",
+  "DateTaken": "Ursprungsdatum",
+  "DayWhiteFluorescent": "Lysrör dagsvitt",
+  "Daylight": "Dagsljus",
+  "DaylightFluorescent": "Lysrör dagsljus",
+  "Del": "Del",
+  "DeleteFile": "Radera fil",
+  "DeletedFile": "Fil raderad",
+  "Descending": "Sjunkande",
+  "DigitalZoom": "Digital zoom",
+  "DirectionalBlur": "Riktad oskärpa",
+  "DiskSize": "Skivstorlek",
+  "DoubleClick": "Dubbelklick",
+  "Down": "Ner",
+  "Dpi": "DPI",
+  "DragFileTo": "Dra filen till Utforskaren eller annat program",
+  "DragImage": "Dra bild",
+  "DropToLoad": "Släpp för att ladda bild",
+  "DuplicateFile": "Duplicera fil",
+  "Effects": "Effekter",
+  "EffectsTooltip": "Visa bildeffekts-fönstret",
+  "Embossed": "Relief",
+  "Enter": "Enter",
+  "Esc": "Esc",
+  "EscCloseTooltip": "Stänger nuvarande fönster/meny",
+  "ExifVersion": "Exif-version",
+  "ExpandedGalleryItemSize": "Storlek på tumnaglar",
+  "ExposureBias": "Exponeringsbias",
+  "ExposureProgram": "Exponeringsprogram",
+  "ExposureTime": "Exponeringstid",
+  "FNumber": "Bländare",
+  "File": "fil",
+  "FileCopy": "Filen tillagd till urklipp",
+  "FileCopyPath": "Kopiera sökväg",
+  "FileCopyPathMessage": "Sökvägen tillagd till urklipp",
+  "FileCutMessage": "Filen tillagd till urklipp",
+  "FileExtension": "Filtillägg",
+  "FileManagement": "Filhantering",
+  "FileName": "Filnamn",
+  "FilePaste": "Klistra in",
+  "FileProperties": "Filegenskaper",
+  "FileSize": "Filstorlek",
+  "Files": "filer",
+  "Fill": "Fyll",
+  "FillHeight": "⇔ Fyll höjd",
+  "FillSquare": "Fyll kvadrat",
+  "FineWeather": "Vackert väder",
+  "FirstImage": "Första bilden",
+  "Fit": "Passa",
+  "FitToWindow": "Passa till fönster/bild",
+  "Flash": "Blixt",
+  "FlashDidNotFire": "Blixt avfyrades inte",
+  "FlashEnergy": "Blixtenergy",
+  "FlashFired": "Blixt avfyrades",
+  "FlashMode": "Blixtläge",
+  "Flip": "Spegelvänd horisontellt",
+  "Flipped": "Spegelvänd horisontellt",
+  "Fluorescent": "Lysrör",
+  "FocalLength": "Brännvidd",
+  "FocalLength35mm": "Brännvidd 35mm",
+  "Folder": "Mapp",
+  "Forward": "Framåt",
+  "FrostyOutline": "Frostig kontur",
+  "Fstop": "Bländarsteg",
+  "FullPath": "Full sökkväg",
+  "Fullscreen": "Fullskärm",
+  "GallerySettings": "Inställningar galleri",
+  "GalleryThumbnailStretch": "Sträck tumnaglar i galleriet",
+  "GeneralSettings": "Generella inställningar",
+  "GenerateThumbnails": "Generera tumnaglar",
+  "GithubRepo": "Github-repository",
+  "GlassTheme": "Glastema",
+  "GlassTile": "Glasflisa",
+  "Gloom": "Dyster",
+  "GoBackBy100Images": "Gå tillbaka 100 bilder",
+  "GoBackBy10Images": "Gå tillbaka 10 bilder",
+  "GoToImageAtSpecifiedIndex": "Gå till bildnummer",
+  "Hard": "Hård",
+  "Height": "Höjd",
+  "HideBottomGallery": "Dölj nedre galleriet",
+  "HideBottomToolbar": "Dölj nedre verktygsfält",
+  "HideUI": "Dölj användargränssnitt",
+  "High": "Hög",
+  "HighQuality": "Hög kvalitet",
+  "HighlightColor": "Markera färg",
+  "ISOSpeed": "ISO-tal",
+  "IconsUsed": "Använda ikoner:",
+  "Image": "Bild",
+  "ImageAliasing": "Kantutjämning",
+  "ImageControl": "Bildkontroll",
+  "ImageInfo": "Bildinformation",
+  "Inches": "tum",
+  "InfoWindow": "Informationsfönster",
+  "InfoWindowTitle": "Information och genvägar",
+  "InterfaceConfiguration": "Gränssnittskonfiguration",
+  "Landscape": "Liggande",
+  "Language": "Språk",
+  "LastAccessTime": "Senast använd",
+  "LastImage": "Sista bilden",
+  "LastWriteTime": "Senast ändrad",
+  "Latitude": "Latitud",
+  "Left": "Vänster",
+  "LensMaker": "Linstillverkare",
+  "LensModel": "Linsmodell",
+  "LightSource": "Ljuskälla",
+  "LightTheme": "Ljust tema",
+  "Loading": "Laddar...",
+  "Longitude": "Longitud",
+  "Looping": "Slinga",
+  "LoopingDisabled": "Slinga av",
+  "LoopingEnabled": "Slinga på",
+  "Lossless": "Förlustfri",
+  "Lossy": "Förstörande",
+  "Low": "Låg",
+  "Manual": "Manuell",
+  "MaxAperture": "Största bländare",
+  "Maximize": "Maximera",
+  "MegaPixels": "megapixel",
+  "Meter": "Meter",
+  "MeteringMode": "Mätmetod",
+  "Minimize": "Minimera",
+  "MiscSettings": "Övriga inställningar",
+  "Modified": "Ändrad",
+  "Monochrome": "Monokrom",
+  "MouseDrag": "Dra musen",
+  "MouseKeyBack": "Musknapp bakåt",
+  "MouseKeyForward": "Musknapp framåt",
+  "MouseWheel": "Mushjul",
+  "MoveWindow": "Flytta fönster",
+  "Navigation": "Navigering",
+  "NearestNeighbor": "Närmaste granne",
+  "NegativeColors": "Negativa färger",
+  "NewWindow": "Nytt fönster",
+  "NextFolder": "Nästa mapp",
+  "NextImage": "Nästa bild",
+  "NoChange": "Inga ändringar",
+  "NoConversion": "Ingen konvertering",
+  "NoImage": "Bild saknas",
+  "NoImages": "Inga bilder",
+  "NoResize": "Ingen storleksändring",
+  "None": "Ingen",
+  "Normal": "Normal",
+  "NormalWindow": "Normalt fönster",
+  "NotDefined": "Inte definierad",
+  "NumpadMinus": "Num -",
+  "NumpadPlus": "Num +",
+  "OldMovie": "Gammal film",
+  "Open": "Öppna",
+  "OpenFileDialog": "Välj fil",
+  "OpenInSameWindow": "Öppna filer i samma fönster",
+  "OpenLastFile": "Öppna senaste filen",
+  "OpenWith": "Öppna med...",
+  "OptimizeImage": "Optimera bild",
+  "Orientation": "Orientering",
+  "OutputFolder": "Destinationsmapp",
+  "Pan": "Panorera",
+  "PaperFold": "Papersvikning",
+  "PasswordArchive": "Lösenordsskyddade arkiv stöds inte",
+  "PasteImageFromClipholder": "Klista in bild",
+  "PencilSketch": "Blyertsskiss",
+  "PercentComplete": "% färdig...",
+  "Percentage": "Procent",
+  "PhotometricInterpretation": "Fotometrisk tolkning",
+  "Pivot": "Rotera",
+  "Pixelate": "Pixla",
+  "Pixels": "pixlar",
+  "Portrait": "Stående",
+  "PressKey": "Tryck en tangent...",
+  "PrevFolder": "Föregående mapp",
+  "PrevImage": "Föregående bild",
+  "Print": "Skriv ut",
+  "PrintSizeCm": "Utskriftsstorlek (cm)",
+  "PrintSizeIn": "Utskriftsstorlek (tum)",
+  "Quality": "Kvalitet",
+  "Random": "Slumpad",
+  "RecentFiles": "Senaste filer",
+  "RedEyeReduction": "Ta bort röda ögon",
+  "Reload": "Hämta igen",
+  "RemoveStarRating": "Ta bort omdöme",
+  "RenameFile": "Ändra filnamn",
+  "Reset": "Återställ",
+  "ResetButtonText": "Återställ till standard",
+  "ResetZoom": "Återställ zoom",
+  "Resize": "Ändra storlek",
+  "ResizeImage": "Ändra bildstorlek",
+  "Resolution": "Upplösning",
+  "ResolutionUnit": "Upplösningsenhet",
+  "RestartApp": "Starta om programmet",
+  "RestoreDown": "Återställ ner",
+  "Reverse": "Bakåt",
+  "Right": "Höger",
+  "Ripple": "Vågor",
+  "RippleAlt": "Vågor alternativ",
+  "RotateLeft": "Rotera vänster",
+  "RotateRight": "Rotera höger",
+  "Rotated": "Roterad",
+  "Saturation": "Mättnad",
+  "Save": "Spara",
+  "SaveAs": "Spara som",
+  "SaveImage": "Spara bild",
+  "SavingFileFailed": "Spara bild misslyckades",
+  "ScrollAndRotate": "Rulla och rotera",
+  "ScrollDirection": "Rullningsriktning",
+  "ScrollDown": "Rulla ner",
+  "ScrollToBottom": "Rulla till botten",
+  "ScrollToTop": "Rulla till toppen",
+  "ScrollToZoom": "Zooma med mushjulet, flytta med Ctrl",
+  "ScrollUp": "Rulla upp",
+  "Scrolling": "Rullar",
+  "ScrollingDisabled": "Rullning av",
+  "ScrollingEnabled": "Rullning på",
+  "SearchSubdirectory": "Sök i undermappar",
+  "SecAbbreviation": "Sek.",
+  "SelectAll": "Välj alla",
+  "SelectGalleryThumb": "Välj tumnagel för galleriet",
+  "SendCurrentImageToRecycleBin": "Lägg bilden i papperskorgen",
+  "SentFileToRecycleBin": "Bilden lagd i papperskorgen",
+  "SetAs": "Sätt som...",
+  "SetAsLockScreenImage": "Använd som låsskärmsbild",
+  "SetAsWallpaper": "Använd som bakgrundsbild",
+  "SetCurrentImageAsWallpaper": "Använd nuvarande bild som bakgrundsbild:",
+  "SetStarRating": "Ge omdöme",
+  "Settings": "Inställningar",
+  "Shade": "Skugga",
+  "Sharpness": "Skärpa",
+  "Shift": "Skift",
+  "ShowAllSettingsWindow": "Visa inställningsfönstret",
+  "ShowBottomGallery": "Visa nedre galleriet",
+  "ShowBottomGalleryWhenUiIsHidden": "Visa nedre galleriet när användargränssnittet är dolt",
+  "ShowBottomToolbar": "Visa nedre verktygsfält",
+  "ShowButtonsInHiddenUI": "Visa knappar i dolt användargränssnitt",
+  "ShowFileSavingDialog": "Visa spara fil-dialog",
+  "ShowImageGallery": "Visa bildgalleri",
+  "ShowImageInfo": "Visa bildinformation",
+  "ShowInFolder": "Visa i mapp",
+  "ShowInfoWindow": "Visa informationsfönster",
+  "ShowResizeWindow": "Visa ändra storlek-fönstret",
+  "ShowUI": "Visa användargränssnitt",
+  "ShutterPriority": "Tidsautomatik",
+  "SideBySide": "Sida vid sida",
+  "SideBySideTooltip": "Visa bilder sida vid sida",
+  "Size": "Storlek",
+  "SizeMp": "Storlek (mp)",
+  "SizeTooltip": "Ange önskad storlek i pixlar eller procent.",
+  "Sketch": "Skissa",
+  "Slideshow": "Bildvisning",
+  "SmoothMagnify": "Mjuk förstoring",
+  "Soft": "Mjuk",
+  "Software": "Program",
+  "SortFilesBy": "Sortera filer efter",
+  "SourceFolder": "Källmapp",
+  "Space": "Mellanslag",
+  "Square": "Kvadrat",
+  "Start": "Start",
+  "StartSlideshow": "Starta bildvisning",
+  "StayCentered": "Centrera fönstret",
+  "StayTopMost": "Lägg fönstret överst",
+  "Stretch": "Sträck",
+  "StretchImage": "Sträck bilden",
+  "StrobeReturnLightDetected": "Strob-returljus detekterat",
+  "StrobeReturnLightNotDetected": "Strob-returljus inte detekterat",
+  "Subject": "Ämne",
+  "Swirl": "Virvel",
+  "TelescopicBlur": "Teleskopisk oskärpa",
+  "Theme": "Tema",
+  "Thumbnail": "Tumnagel",
+  "Tile": "Flisa",
+  "Title": "Titel",
+  "ToggleBackgroundColor": "Bakgrundsfärg av/på",
+  "ToggleFullscreen": "Fullskärm av/på",
+  "ToggleLooping": "Slinga av/på",
+  "ToggleScroll": "Rullning av/på",
+  "ToggleTaskbarProgress": "Visa framstegsstapel",
+  "ToneMapping": "Tonmappning",
+  "UnableToRender": "Kan inte skapa bilden",
+  "Uncalibrated": "Okalilbrerad",
+  "Underwater": "Undervatten",
+  "UnexpectedError": "Ett oväntat fel inträffade",
+  "Unflip": "Återställ spegelvänd horisontellt",
+  "Uniform": "Enhetlig",
+  "UniformToFill": "Enhetlig att fylla",
+  "Unknown": "Okänd",
+  "UnsupportedFile": "Filformatet stöds inte",
+  "Up": "Upp",
+  "Version": "Version:",
+  "ViewLicenseFile": "Se licensfilen",
+  "WaveWarper": "Vågeffekt",
+  "WhiteBalance": "Vitbalans",
+  "WhiteFluorescent": "Lysrör vitt",
+  "Width": "Bredd",
+  "WindowManagement": "Fönsterhantering",
+  "WindowScaling": "Fönsterskalning",
+  "Zoom": "Zooma",
+  "ZoomIn": "Zooma in",
+  "ZoomOut": "Zooma ut",
+  "_1Star": "1 stjärna",
+  "_2Star": "2 stjärnor",
+  "_3Star": "3 stjärnor",
+  "_4Star": "4 stjärnor",
+  "_5Star": "5 stjärnor"
+}

+ 3 - 0
src/PicView.Core/PicView.Core.csproj

@@ -68,6 +68,9 @@
     <None Update="Licenses\LICENSE.txt">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Update="Config\Languages\sv.json">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <InternalsVisibleTo Include="PicView.Tests" />