diff --git a/starsky/starsky.feature.language/CustomCultureComparer.cs b/starsky/starsky.feature.language/CustomCultureComparer.cs new file mode 100644 index 000000000..bd0043234 --- /dev/null +++ b/starsky/starsky.feature.language/CustomCultureComparer.cs @@ -0,0 +1,29 @@ +namespace starsky.feature.language; + +public class CustomCultureComparer : IComparer +{ + private readonly List _customOrder; + + public CustomCultureComparer(List customOrder) + { + _customOrder = customOrder; + } + + public int Compare(string? x, string? y) + { + var indexX = _customOrder.IndexOf(x); + var indexY = _customOrder.IndexOf(y); + + if ( indexX == -1 ) + { + indexX = int.MaxValue; + } + + if ( indexY == -1 ) + { + indexY = int.MaxValue; + } + + return indexX.CompareTo(indexY); + } +} diff --git a/starsky/starsky.feature.language/GetAllCultures.cs b/starsky/starsky.feature.language/GetAllCultures.cs new file mode 100644 index 000000000..5c087e345 --- /dev/null +++ b/starsky/starsky.feature.language/GetAllCultures.cs @@ -0,0 +1,27 @@ +using System.Collections.Concurrent; +using System.Globalization; +using System.Resources; + +namespace starsky.feature.language; + +public static class GetAllCultures +{ + private static readonly ConcurrentDictionary> + ResourceCultures = new(); + + /// + /// Return the list of cultures that is supported by a Resource Assembly (usually collection of + /// resx files). + /// + public static List CulturesOfResource() + { + return ResourceCultures.GetOrAdd(typeof(T), t => + { + var manager = new ResourceManager(t); + return CultureInfo.GetCultures(CultureTypes.AllCultures) + .Where(c => !c.Equals(CultureInfo.InvariantCulture) && + manager.GetResourceSet(c, true, false) != null) + .ToList(); + }); + } +} diff --git a/starsky/starsky.feature.language/JsonToResxConverter.cs b/starsky/starsky.feature.language/JsonToResxConverter.cs new file mode 100644 index 000000000..1a743ecd4 --- /dev/null +++ b/starsky/starsky.feature.language/JsonToResxConverter.cs @@ -0,0 +1,40 @@ +using System.Resources.NetStandard; +using System.Text.Json; + +public static class JsonToResxConverter +{ + public static void ConvertJsonToResx(string jsonFilePath, string resxFilePath) + { + // Read and parse the JSON file + var jsonString = File.ReadAllText(jsonFilePath); + var translations = + JsonSerializer.Deserialize>>(jsonString); + + var languages = new List {string.Empty, "nl", "en", "de" }; + + foreach ( var language in languages ) + { + // Create a .resx file and write the translations + var path = resxFilePath; + if ( language != string.Empty ) + { + path = resxFilePath.Replace(".resx", $".{language}.resx"); + } + + Console.WriteLine(path); + using ( var resxWriter = new ResXResourceWriter(path) ) + { + foreach ( var entry in translations ) + { + var value = entry.Value["en"]; + if ( language != string.Empty ) + { + value = entry.Value[language]; + } + + resxWriter.AddResource(entry.Key, value); + } + } + } + } +} diff --git a/starsky/starsky.feature.language/LanguageContent.Designer.cs b/starsky/starsky.feature.language/LanguageContent.Designer.cs new file mode 100644 index 000000000..83a7cb470 --- /dev/null +++ b/starsky/starsky.feature.language/LanguageContent.Designer.cs @@ -0,0 +1,1284 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace starsky.feature.language { + using System; + + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class LanguageContent { + + private static System.Resources.ResourceManager resourceMan; + + private static System.Globalization.CultureInfo resourceCulture; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal LanguageContent() { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Resources.ResourceManager ResourceManager { + get { + if (object.Equals(null, resourceMan)) { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("starsky.feature.language.LanguageContent", typeof(LanguageContent).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static string MessageMoveFolderIntoTrashIntroText { + get { + return ResourceManager.GetString("MessageMoveFolderIntoTrashIntroText", resourceCulture); + } + } + + internal static string MessageCancel { + get { + return ResourceManager.GetString("MessageCancel", resourceCulture); + } + } + + internal static string MessageTrash { + get { + return ResourceManager.GetString("MessageTrash", resourceCulture); + } + } + + internal static string MessageMoveToTrash { + get { + return ResourceManager.GetString("MessageMoveToTrash", resourceCulture); + } + } + + internal static string MessageMoveCurrentFolderToTrash { + get { + return ResourceManager.GetString("MessageMoveCurrentFolderToTrash", resourceCulture); + } + } + + internal static string MessageMove { + get { + return ResourceManager.GetString("MessageMove", resourceCulture); + } + } + + internal static string MessageTo { + get { + return ResourceManager.GetString("MessageTo", resourceCulture); + } + } + + internal static string MessageRestoreFromTrash { + get { + return ResourceManager.GetString("MessageRestoreFromTrash", resourceCulture); + } + } + + internal static string MessageSynchronizeManually { + get { + return ResourceManager.GetString("MessageSynchronizeManually", resourceCulture); + } + } + + internal static string MessageDownload { + get { + return ResourceManager.GetString("MessageDownload", resourceCulture); + } + } + + internal static string MessagePublish { + get { + return ResourceManager.GetString("MessagePublish", resourceCulture); + } + } + + internal static string MessageReadOnlyFile { + get { + return ResourceManager.GetString("MessageReadOnlyFile", resourceCulture); + } + } + + internal static string MessageNotFoundSourceMissing { + get { + return ResourceManager.GetString("MessageNotFoundSourceMissing", resourceCulture); + } + } + + internal static string MessageServerInputError { + get { + return ResourceManager.GetString("MessageServerInputError", resourceCulture); + } + } + + internal static string MessageIsInTheTrash { + get { + return ResourceManager.GetString("MessageIsInTheTrash", resourceCulture); + } + } + + internal static string MessageDeletedRestoreInstruction { + get { + return ResourceManager.GetString("MessageDeletedRestoreInstruction", resourceCulture); + } + } + + internal static string MessageHome { + get { + return ResourceManager.GetString("MessageHome", resourceCulture); + } + } + + internal static string MessagePhotosOfThisWeek { + get { + return ResourceManager.GetString("MessagePhotosOfThisWeek", resourceCulture); + } + } + + internal static string MessageImport { + get { + return ResourceManager.GetString("MessageImport", resourceCulture); + } + } + + internal static string MessagePreferences { + get { + return ResourceManager.GetString("MessagePreferences", resourceCulture); + } + } + + internal static string MessageLogout { + get { + return ResourceManager.GetString("MessageLogout", resourceCulture); + } + } + + internal static string MessageSaved { + get { + return ResourceManager.GetString("MessageSaved", resourceCulture); + } + } + + internal static string MessageImportHeader { + get { + return ResourceManager.GetString("MessageImportHeader", resourceCulture); + } + } + + internal static string MessageCloseDetailScreenDialog { + get { + return ResourceManager.GetString("MessageCloseDetailScreenDialog", resourceCulture); + } + } + + internal static string MessageCloseDialogBackToFolder { + get { + return ResourceManager.GetString("MessageCloseDialogBackToFolder", resourceCulture); + } + } + + internal static string MessageIncludingColonWord { + get { + return ResourceManager.GetString("MessageIncludingColonWord", resourceCulture); + } + } + + internal static string MessageAddLocation { + get { + return ResourceManager.GetString("MessageAddLocation", resourceCulture); + } + } + + internal static string MessageUpdateLocation { + get { + return ResourceManager.GetString("MessageUpdateLocation", resourceCulture); + } + } + + internal static string MessageViewLocation { + get { + return ResourceManager.GetString("MessageViewLocation", resourceCulture); + } + } + + internal static string MessageErrorGenericFail { + get { + return ResourceManager.GetString("MessageErrorGenericFail", resourceCulture); + } + } + + internal static string MessageNoPhotosInFolder { + get { + return ResourceManager.GetString("MessageNoPhotosInFolder", resourceCulture); + } + } + + internal static string MessageNewUserNoPhotosInFolder { + get { + return ResourceManager.GetString("MessageNewUserNoPhotosInFolder", resourceCulture); + } + } + + internal static string MessageItemsOutsideFilter { + get { + return ResourceManager.GetString("MessageItemsOutsideFilter", resourceCulture); + } + } + + internal static string MessageSelectPresentPerfect { + get { + return ResourceManager.GetString("MessageSelectPresentPerfect", resourceCulture); + } + } + + internal static string MessageSelectAction { + get { + return ResourceManager.GetString("MessageSelectAction", resourceCulture); + } + } + + internal static string MessageNoneSelected { + get { + return ResourceManager.GetString("MessageNoneSelected", resourceCulture); + } + } + + internal static string MessageUndoSelection { + get { + return ResourceManager.GetString("MessageUndoSelection", resourceCulture); + } + } + + internal static string MessageSelectAll { + get { + return ResourceManager.GetString("MessageSelectAll", resourceCulture); + } + } + + internal static string MessageAllName { + get { + return ResourceManager.GetString("MessageAllName", resourceCulture); + } + } + + internal static string MessageSelectFurther { + get { + return ResourceManager.GetString("MessageSelectFurther", resourceCulture); + } + } + + internal static string MessageGoToParentFolder { + get { + return ResourceManager.GetString("MessageGoToParentFolder", resourceCulture); + } + } + + internal static string MessageMkdir { + get { + return ResourceManager.GetString("MessageMkdir", resourceCulture); + } + } + + internal static string MessageRenameDir { + get { + return ResourceManager.GetString("MessageRenameDir", resourceCulture); + } + } + + internal static string MessageLabels { + get { + return ResourceManager.GetString("MessageLabels", resourceCulture); + } + } + + internal static string MessageRenameFileName { + get { + return ResourceManager.GetString("MessageRenameFileName", resourceCulture); + } + } + + internal static string MessageRotateToRight { + get { + return ResourceManager.GetString("MessageRotateToRight", resourceCulture); + } + } + + internal static string MessageDeleteImmediately { + get { + return ResourceManager.GetString("MessageDeleteImmediately", resourceCulture); + } + } + + internal static string MessageVideoPlayBackError { + get { + return ResourceManager.GetString("MessageVideoPlayBackError", resourceCulture); + } + } + + internal static string MessageVideoNotFound { + get { + return ResourceManager.GetString("MessageVideoNotFound", resourceCulture); + } + } + + internal static string MessageColorClassIsUpdated { + get { + return ResourceManager.GetString("MessageColorClassIsUpdated", resourceCulture); + } + } + + internal static string ColorClassColour0 { + get { + return ResourceManager.GetString("ColorClassColour0", resourceCulture); + } + } + + internal static string ColorClassColour1 { + get { + return ResourceManager.GetString("ColorClassColour1", resourceCulture); + } + } + + internal static string ColorClassColour2 { + get { + return ResourceManager.GetString("ColorClassColour2", resourceCulture); + } + } + + internal static string ColorClassColour3 { + get { + return ResourceManager.GetString("ColorClassColour3", resourceCulture); + } + } + + internal static string ColorClassColour4 { + get { + return ResourceManager.GetString("ColorClassColour4", resourceCulture); + } + } + + internal static string ColorClassColour5 { + get { + return ResourceManager.GetString("ColorClassColour5", resourceCulture); + } + } + + internal static string ColorClassColour6 { + get { + return ResourceManager.GetString("ColorClassColour6", resourceCulture); + } + } + + internal static string ColorClassColour7 { + get { + return ResourceManager.GetString("ColorClassColour7", resourceCulture); + } + } + + internal static string ColorClassColour8 { + get { + return ResourceManager.GetString("ColorClassColour8", resourceCulture); + } + } + + internal static string ColorClassColourResetFilter { + get { + return ResourceManager.GetString("ColorClassColourResetFilter", resourceCulture); + } + } + + internal static string MessageCloseDialog { + get { + return ResourceManager.GetString("MessageCloseDialog", resourceCulture); + } + } + + internal static string MessageDesktopEditorOpenSingleFile { + get { + return ResourceManager.GetString("MessageDesktopEditorOpenSingleFile", resourceCulture); + } + } + + internal static string MessageDesktopEditorOpenMultipleFiles { + get { + return ResourceManager.GetString("MessageDesktopEditorOpenMultipleFiles", resourceCulture); + } + } + + internal static string MessageDesktopEditorUnableToOpen { + get { + return ResourceManager.GetString("MessageDesktopEditorUnableToOpen", resourceCulture); + } + } + + internal static string MessageDesktopEditorConfirmationHeading { + get { + return ResourceManager.GetString("MessageDesktopEditorConfirmationHeading", resourceCulture); + } + } + + internal static string MessageDesktopEditorConfirmationIntroText { + get { + return ResourceManager.GetString("MessageDesktopEditorConfirmationIntroText", resourceCulture); + } + } + + internal static string MessageItemSelectionRequired { + get { + return ResourceManager.GetString("MessageItemSelectionRequired", resourceCulture); + } + } + + internal static string MessageAppSettingsEntireAppScope { + get { + return ResourceManager.GetString("MessageAppSettingsEntireAppScope", resourceCulture); + } + } + + internal static string MessageChangeNeedReSync { + get { + return ResourceManager.GetString("MessageChangeNeedReSync", resourceCulture); + } + } + + internal static string MessageAppSettingsStorageFolder { + get { + return ResourceManager.GetString("MessageAppSettingsStorageFolder", resourceCulture); + } + } + + internal static string MessageAppSettingStorageFolderSaveFail { + get { + return ResourceManager.GetString("MessageAppSettingStorageFolderSaveFail", resourceCulture); + } + } + + internal static string MessageAppSettingStorageFolderEnvUsedFail { + get { + return ResourceManager.GetString("MessageAppSettingStorageFolderEnvUsedFail", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopCollectionsRawOn { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopCollectionsRawOn", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopCollectionsJpegDefaultOff { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopCollectionsJpegDefaultOff", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopApplication { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopApplication", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopApplicationDescription { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopApplicationDescription", resourceCulture); + } + } + + internal static string MessageAppSettingDefaultEditorPhotos { + get { + return ResourceManager.GetString("MessageAppSettingDefaultEditorPhotos", resourceCulture); + } + } + + internal static string MessageAppSettingDefaultEditorPhotosDescription { + get { + return ResourceManager.GetString("MessageAppSettingDefaultEditorPhotosDescription", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopCollectionsUpdateError { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopCollectionsUpdateError", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopCollectionsUpdateSuccess { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopCollectionsUpdateSuccess", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopCollectionsRawJpegUpdateError { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopCollectionsRawJpegUpdateError", resourceCulture); + } + } + + internal static string MessageSwitchButtonDesktopCollectionsRawJpegUpdateSuccess { + get { + return ResourceManager.GetString("MessageSwitchButtonDesktopCollectionsRawJpegUpdateSuccess", resourceCulture); + } + } + + internal static string MessageUnknownUsername { + get { + return ResourceManager.GetString("MessageUnknownUsername", resourceCulture); + } + } + + internal static string MessageDesktopMailLocalhostUsername { + get { + return ResourceManager.GetString("MessageDesktopMailLocalhostUsername", resourceCulture); + } + } + + internal static string MessageUsername { + get { + return ResourceManager.GetString("MessageUsername", resourceCulture); + } + } + + internal static string MessageRole { + get { + return ResourceManager.GetString("MessageRole", resourceCulture); + } + } + + internal static string MessageExamplePassword { + get { + return ResourceManager.GetString("MessageExamplePassword", resourceCulture); + } + } + + internal static string MessageCurrentPassword { + get { + return ResourceManager.GetString("MessageCurrentPassword", resourceCulture); + } + } + + internal static string MessageChangedPassword { + get { + return ResourceManager.GetString("MessageChangedPassword", resourceCulture); + } + } + + internal static string MessageChangedConfirmPassword { + get { + return ResourceManager.GetString("MessageChangedConfirmPassword", resourceCulture); + } + } + + internal static string MessageNoPassword { + get { + return ResourceManager.GetString("MessageNoPassword", resourceCulture); + } + } + + internal static string MessagePassword { + get { + return ResourceManager.GetString("MessagePassword", resourceCulture); + } + } + + internal static string MessagePasswordChanged { + get { + return ResourceManager.GetString("MessagePasswordChanged", resourceCulture); + } + } + + internal static string MessagePasswordNoMatch { + get { + return ResourceManager.GetString("MessagePasswordNoMatch", resourceCulture); + } + } + + internal static string MessagePasswordModalError { + get { + return ResourceManager.GetString("MessagePasswordModalError", resourceCulture); + } + } + + internal static string MessageCreateNewAccount { + get { + return ResourceManager.GetString("MessageCreateNewAccount", resourceCulture); + } + } + + internal static string MessageExampleUsername { + get { + return ResourceManager.GetString("MessageExampleUsername", resourceCulture); + } + } + + internal static string MessageConfirmPassword { + get { + return ResourceManager.GetString("MessageConfirmPassword", resourceCulture); + } + } + + internal static string MessageNoUsernamePassword { + get { + return ResourceManager.GetString("MessageNoUsernamePassword", resourceCulture); + } + } + + internal static string MessageWrongFormatEmailAddress { + get { + return ResourceManager.GetString("MessageWrongFormatEmailAddress", resourceCulture); + } + } + + internal static string MessagePasswordToShort { + get { + return ResourceManager.GetString("MessagePasswordToShort", resourceCulture); + } + } + + internal static string MessageRejectedBadRequest { + get { + return ResourceManager.GetString("MessageRejectedBadRequest", resourceCulture); + } + } + + internal static string MessageRegistrationTurnedOff { + get { + return ResourceManager.GetString("MessageRegistrationTurnedOff", resourceCulture); + } + } + + internal static string MessageSignInInstead { + get { + return ResourceManager.GetString("MessageSignInInstead", resourceCulture); + } + } + + internal static string MessageLegalCreateAccountHtml { + get { + return ResourceManager.GetString("MessageLegalCreateAccountHtml", resourceCulture); + } + } + + internal static string MessageFieldMaxLength { + get { + return ResourceManager.GetString("MessageFieldMaxLength", resourceCulture); + } + } + + internal static string MessageWrongUsernamePassword { + get { + return ResourceManager.GetString("MessageWrongUsernamePassword", resourceCulture); + } + } + + internal static string MessageLockedOut { + get { + return ResourceManager.GetString("MessageLockedOut", resourceCulture); + } + } + + internal static string MessageConnection { + get { + return ResourceManager.GetString("MessageConnection", resourceCulture); + } + } + + internal static string MessageDatabaseConnection { + get { + return ResourceManager.GetString("MessageDatabaseConnection", resourceCulture); + } + } + + internal static string LogoutWarning { + get { + return ResourceManager.GetString("LogoutWarning", resourceCulture); + } + } + + internal static string MessageStayLoggedIn { + get { + return ResourceManager.GetString("MessageStayLoggedIn", resourceCulture); + } + } + + internal static string MessageLogin { + get { + return ResourceManager.GetString("MessageLogin", resourceCulture); + } + } + + internal static string MessageCreateAccount { + get { + return ResourceManager.GetString("MessageCreateAccount", resourceCulture); + } + } + + internal static string MessageMore { + get { + return ResourceManager.GetString("MessageMore", resourceCulture); + } + } + + internal static string MessagePrevious { + get { + return ResourceManager.GetString("MessagePrevious", resourceCulture); + } + } + + internal static string MessageNext { + get { + return ResourceManager.GetString("MessageNext", resourceCulture); + } + } + + internal static string MessageAddName { + get { + return ResourceManager.GetString("MessageAddName", resourceCulture); + } + } + + internal static string MessageTagsWithColon { + get { + return ResourceManager.GetString("MessageTagsWithColon", resourceCulture); + } + } + + internal static string MessageInfoWithColon { + get { + return ResourceManager.GetString("MessageInfoWithColon", resourceCulture); + } + } + + internal static string MessageTagsDescription { + get { + return ResourceManager.GetString("MessageTagsDescription", resourceCulture); + } + } + + internal static string MessageTitleWithColon { + get { + return ResourceManager.GetString("MessageTitleWithColon", resourceCulture); + } + } + + internal static string MessageOverwriteName { + get { + return ResourceManager.GetString("MessageOverwriteName", resourceCulture); + } + } + + internal static string MessageTitleName { + get { + return ResourceManager.GetString("MessageTitleName", resourceCulture); + } + } + + internal static string MessageInfoName { + get { + return ResourceManager.GetString("MessageInfoName", resourceCulture); + } + } + + internal static string MessageWriteErrorReadOnly { + get { + return ResourceManager.GetString("MessageWriteErrorReadOnly", resourceCulture); + } + } + + internal static string MessageErrorNotFoundSourceMissingRunSync { + get { + return ResourceManager.GetString("MessageErrorNotFoundSourceMissingRunSync", resourceCulture); + } + } + + internal static string MessageSearchAndReplaceNameLong { + get { + return ResourceManager.GetString("MessageSearchAndReplaceNameLong", resourceCulture); + } + } + + internal static string MessageSearchAndReplaceNameShort { + get { + return ResourceManager.GetString("MessageSearchAndReplaceNameShort", resourceCulture); + } + } + + internal static string MessageModifyName { + get { + return ResourceManager.GetString("MessageModifyName", resourceCulture); + } + } + + internal static string MessageForceSyncCurrentFolder { + get { + return ResourceManager.GetString("MessageForceSyncCurrentFolder", resourceCulture); + } + } + + internal static string MessageWhereToFindReleaseReleasesUrlTokenHtml { + get { + return ResourceManager.GetString("MessageWhereToFindReleaseReleasesUrlTokenHtml", resourceCulture); + } + } + + internal static string MessageWhereToFindReleaseReleasesUrlTokenContent { + get { + return ResourceManager.GetString("MessageWhereToFindReleaseReleasesUrlTokenContent", resourceCulture); + } + } + + internal static string WhereToFindReleaseElectronApp { + get { + return ResourceManager.GetString("WhereToFindReleaseElectronApp", resourceCulture); + } + } + + internal static string MessageNewVersionUpdateToken { + get { + return ResourceManager.GetString("MessageNewVersionUpdateToken", resourceCulture); + } + } + + internal static string MessageHealthStatusCriticalErrorsWithTheFollowingComponents { + get { + return ResourceManager.GetString("MessageHealthStatusCriticalErrorsWithTheFollowingComponents", resourceCulture); + } + } + + internal static string MessageNoPhotos { + get { + return ResourceManager.GetString("MessageNoPhotos", resourceCulture); + } + } + + internal static string MessageFilesAdded { + get { + return ResourceManager.GetString("MessageFilesAdded", resourceCulture); + } + } + + internal static string MessageApplicationException { + get { + return ResourceManager.GetString("MessageApplicationException", resourceCulture); + } + } + + internal static string MessageRefreshPageTryAgain { + get { + return ResourceManager.GetString("MessageRefreshPageTryAgain", resourceCulture); + } + } + + internal static string MessagePublishSelection { + get { + return ResourceManager.GetString("MessagePublishSelection", resourceCulture); + } + } + + internal static string MessageGenericExportFail { + get { + return ResourceManager.GetString("MessageGenericExportFail", resourceCulture); + } + } + + internal static string MessageRetryExportFail { + get { + return ResourceManager.GetString("MessageRetryExportFail", resourceCulture); + } + } + + internal static string MessageExportReady { + get { + return ResourceManager.GetString("MessageExportReady", resourceCulture); + } + } + + internal static string MessageDownloadAsZipArchive { + get { + return ResourceManager.GetString("MessageDownloadAsZipArchive", resourceCulture); + } + } + + internal static string MessageOneMomentPlease { + get { + return ResourceManager.GetString("MessageOneMomentPlease", resourceCulture); + } + } + + internal static string MessageItemName { + get { + return ResourceManager.GetString("MessageItemName", resourceCulture); + } + } + + internal static string MessageItemNameInUse { + get { + return ResourceManager.GetString("MessageItemNameInUse", resourceCulture); + } + } + + internal static string MessagePublishProfileName { + get { + return ResourceManager.GetString("MessagePublishProfileName", resourceCulture); + } + } + + internal static string MessagePublishProfileNamesErrored { + get { + return ResourceManager.GetString("MessagePublishProfileNamesErrored", resourceCulture); + } + } + + internal static string MessageSelectionName { + get { + return ResourceManager.GetString("MessageSelectionName", resourceCulture); + } + } + + internal static string MessageReadOnlyFolder { + get { + return ResourceManager.GetString("MessageReadOnlyFolder", resourceCulture); + } + } + + internal static string MessageUpdateLabels { + get { + return ResourceManager.GetString("MessageUpdateLabels", resourceCulture); + } + } + + internal static string MessageColorClassification { + get { + return ResourceManager.GetString("MessageColorClassification", resourceCulture); + } + } + + internal static string MessageDateTimeAgoEdited { + get { + return ResourceManager.GetString("MessageDateTimeAgoEdited", resourceCulture); + } + } + + internal static string MessageDateLessThan1Minute { + get { + return ResourceManager.GetString("MessageDateLessThan1Minute", resourceCulture); + } + } + + internal static string MessageDateMinutes { + get { + return ResourceManager.GetString("MessageDateMinutes", resourceCulture); + } + } + + internal static string MessageDateHour { + get { + return ResourceManager.GetString("MessageDateHour", resourceCulture); + } + } + + internal static string MessageCopiedLabels { + get { + return ResourceManager.GetString("MessageCopiedLabels", resourceCulture); + } + } + + internal static string MessagePasteLabels { + get { + return ResourceManager.GetString("MessagePasteLabels", resourceCulture); + } + } + + internal static string MessageCreationDate { + get { + return ResourceManager.GetString("MessageCreationDate", resourceCulture); + } + } + + internal static string MessageCreationDateIsAtUnknownTime { + get { + return ResourceManager.GetString("MessageCreationDateIsAtUnknownTime", resourceCulture); + } + } + + internal static string MessageNounNameless { + get { + return ResourceManager.GetString("MessageNounNameless", resourceCulture); + } + } + + internal static string MessageNounNone { + get { + return ResourceManager.GetString("MessageNounNone", resourceCulture); + } + } + + internal static string MessageLocation { + get { + return ResourceManager.GetString("MessageLocation", resourceCulture); + } + } + + internal static string MessageCreateNewFolderFeature { + get { + return ResourceManager.GetString("MessageCreateNewFolderFeature", resourceCulture); + } + } + + internal static string MessageNonValidDirectoryName { + get { + return ResourceManager.GetString("MessageNonValidDirectoryName", resourceCulture); + } + } + + internal static string MessageGeneralMkdirCreateError { + get { + return ResourceManager.GetString("MessageGeneralMkdirCreateError", resourceCulture); + } + } + + internal static string MessageDirectoryExistError { + get { + return ResourceManager.GetString("MessageDirectoryExistError", resourceCulture); + } + } + + internal static string MessageRenameCurrentFolder { + get { + return ResourceManager.GetString("MessageRenameCurrentFolder", resourceCulture); + } + } + + internal static string MessageRemoveCache { + get { + return ResourceManager.GetString("MessageRemoveCache", resourceCulture); + } + } + + internal static string MessageGeoSync { + get { + return ResourceManager.GetString("MessageGeoSync", resourceCulture); + } + } + + internal static string MessageGeoSyncExplainer { + get { + return ResourceManager.GetString("MessageGeoSyncExplainer", resourceCulture); + } + } + + internal static string MessageManualThumbnailSync { + get { + return ResourceManager.GetString("MessageManualThumbnailSync", resourceCulture); + } + } + + internal static string MessageManualThumbnailSyncExplainer { + get { + return ResourceManager.GetString("MessageManualThumbnailSyncExplainer", resourceCulture); + } + } + + internal static string MessageNonValidExtension { + get { + return ResourceManager.GetString("MessageNonValidExtension", resourceCulture); + } + } + + internal static string MessageChangeToDifferentExtension { + get { + return ResourceManager.GetString("MessageChangeToDifferentExtension", resourceCulture); + } + } + + internal static string MessageRenameServerError { + get { + return ResourceManager.GetString("MessageRenameServerError", resourceCulture); + } + } + + internal static string MessageDisplayOptions { + get { + return ResourceManager.GetString("MessageDisplayOptions", resourceCulture); + } + } + + internal static string MessageDisplayOptionsSwitchButtonCollectionsOff { + get { + return ResourceManager.GetString("MessageDisplayOptionsSwitchButtonCollectionsOff", resourceCulture); + } + } + + internal static string MessageDisplayOptionsSwitchButtonCollectionsOn { + get { + return ResourceManager.GetString("MessageDisplayOptionsSwitchButtonCollectionsOn", resourceCulture); + } + } + + internal static string MessageDisplayOptionsSwitchButtonIsSingleItemOff { + get { + return ResourceManager.GetString("MessageDisplayOptionsSwitchButtonIsSingleItemOff", resourceCulture); + } + } + + internal static string MessageDisplayOptionsSwitchButtonIsSingleItemOn { + get { + return ResourceManager.GetString("MessageDisplayOptionsSwitchButtonIsSingleItemOn", resourceCulture); + } + } + + internal static string MessageDisplayOptionsSwitchButtonIsSocketOn { + get { + return ResourceManager.GetString("MessageDisplayOptionsSwitchButtonIsSocketOn", resourceCulture); + } + } + + internal static string MessageDisplayOptionsSwitchButtonIsSocketOff { + get { + return ResourceManager.GetString("MessageDisplayOptionsSwitchButtonIsSocketOff", resourceCulture); + } + } + + internal static string MessageDownloadSelection { + get { + return ResourceManager.GetString("MessageDownloadSelection", resourceCulture); + } + } + + internal static string MessageOriginalFile { + get { + return ResourceManager.GetString("MessageOriginalFile", resourceCulture); + } + } + + internal static string MessageThumbnailFile { + get { + return ResourceManager.GetString("MessageThumbnailFile", resourceCulture); + } + } + + internal static string MessageModalDatetime { + get { + return ResourceManager.GetString("MessageModalDatetime", resourceCulture); + } + } + + internal static string MessageYear { + get { + return ResourceManager.GetString("MessageYear", resourceCulture); + } + } + + internal static string MessageMonth { + get { + return ResourceManager.GetString("MessageMonth", resourceCulture); + } + } + + internal static string MessageDate { + get { + return ResourceManager.GetString("MessageDate", resourceCulture); + } + } + + internal static string MessageTime { + get { + return ResourceManager.GetString("MessageTime", resourceCulture); + } + } + + internal static string MessageErrorDatetime { + get { + return ResourceManager.GetString("MessageErrorDatetime", resourceCulture); + } + } + + internal static string MessageDeleteIntroText { + get { + return ResourceManager.GetString("MessageDeleteIntroText", resourceCulture); + } + } + + internal static string MessageConnectionRealtimeError { + get { + return ResourceManager.GetString("MessageConnectionRealtimeError", resourceCulture); + } + } + + internal static string MessageApplicationFailed { + get { + return ResourceManager.GetString("MessageApplicationFailed", resourceCulture); + } + } + + internal static string MessageNumberOfResults { + get { + return ResourceManager.GetString("MessageNumberOfResults", resourceCulture); + } + } + + internal static string MessageNoResult { + get { + return ResourceManager.GetString("MessageNoResult", resourceCulture); + } + } + + internal static string MessageTryOtherQuery { + get { + return ResourceManager.GetString("MessageTryOtherQuery", resourceCulture); + } + } + + internal static string MessagePageNumberToken { + get { + return ResourceManager.GetString("MessagePageNumberToken", resourceCulture); + } + } + + internal static string MessageEmptyTrash { + get { + return ResourceManager.GetString("MessageEmptyTrash", resourceCulture); + } + } + + internal static string MessageNotFound { + get { + return ResourceManager.GetString("MessageNotFound", resourceCulture); + } + } + + internal static string MessageGoToHome { + get { + return ResourceManager.GetString("MessageGoToHome", resourceCulture); + } + } + + internal static string MessageReadMoreHere { + get { + return ResourceManager.GetString("MessageReadMoreHere", resourceCulture); + } + } + + internal static string temp1 { + get { + return ResourceManager.GetString("temp1", resourceCulture); + } + } + } +} diff --git a/starsky/starsky.feature.language/LanguageContent.de.resx b/starsky/starsky.feature.language/LanguageContent.de.resx new file mode 100644 index 000000000..695dcad8d --- /dev/null +++ b/starsky/starsky.feature.language/LanguageContent.de.resx @@ -0,0 +1,679 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Möchten Sie diesen Ordner wirklich in den Papierkorb verschieben? + + + Abbrechen + + + Papierkorb + + + In den Papierkorb verschieben + + + Aktuellen Ordner in den Papierkorb verschieben + + + Verschieb + + + in + + + Aus dem Papierkorb wiederherstellen + + + Manuell synchronisieren + + + Herunterladen + + + Veröffentlichen + + + Schreibgeschützte Datei + + + Nicht gefunden. Quelle fehlt. + + + Etwas stimmt nicht mit der Eingabe + + + Befindet sich im Papierkorb + + + 'Aus dem Papierkorb wiederherstellen', um das Element zu bearbeiten + + + Startseite + + + Fotos dieser Woche + + + Import + + + Einstellungen + + + Ausloggen + + + Gespeichert + + + Import + + + Detailbildschirm schließen + + + Elternordner + + + Inklusive: + + + Ort hinzufügen + + + Ort aktualisieren + + + Ort anzeigen + + + Bei der Aktualisierung ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut + + + In diesem Ordner befinden sich keine Fotos + + + Neu? Legen Sie Ihren Laufwerksspeicherort in den Einstellungen fest. + + + Es gibt mehr Elemente, aber diese befinden sich außerhalb Ihrer Filter. Um alles zu sehen, klicken Sie auf 'Filter zurücksetzen' + + + ausgewählt + + + Auswählen + + + Nichts ausgewählt + + + Auswahl rückgängig machen + + + Alles auswählen + + + Alles + + + Weiter auswählen + + + Zum übergeordneten Ordner gehen + + + Ordner erstellen + + + Umbenennen + + + Etiketten + + + Dateinamen umbenennen + + + Drehung nach rechts + + + Unmittelbar löschen + + + Beim Abspielen dieses Videos ist etwas schiefgelaufen. Versuchen Sie 'Weitere' und 'Download'. + + + Dieses Video wurde nicht gefunden + + + Farbklasse wurde aktualisiert + + + Farblos + + + Rosa + + + Rot + + + Orange + + + Gelb + + + Grün + + + Azurblau + + + Blau + + + Grau + + + Filter zurücksetzen + + + Schließen + + + Datei öffnen + + + Dateien öffnen + + + Entschuldigung, beim Öffnen der Datei ist ein Fehler aufgetreten + + + Möchten Sie wirklich alle ausgewählten Fotos bearbeiten? + + + Dieser Hinweis soll potenzielle Probleme wie das Einfrieren Ihres Computers verhindern + + + Bitte wählen Sie mindestens einen Artikel aus, bevor Sie fortfahren. + + + Die AppSettings dürfen nur von Administratoren geändert werden. Diese Einstellungen gelten für die gesamte Anwendung. + + + Sie haben diese Einstellung geändert, jetzt müssen Sie eine vollständige Synchronisierung durchführen. Gehen Sie zum Stammverzeichnis, zum Menü 'Weitere Optionen' und klicken Sie auf manuelle Synchronisierung. + + + Speicherordner + + + Entschuldigung, Speichern nicht möglich, Verzeichnis konnte nicht gefunden werden + + + Bitte aktualisieren Sie die Umgebungsvariable 'app__storageFolder', um den Speicherort zu ändern + + + Raw zuerst + + + Jpeg zuerst + + + App-Einstellungen: Desktop-Anwendung + + + Diese Einstellungen sind nur verfügbar, wenn sie als Desktop-Anwendung verwendet werden + + + Standardanwendung zum Bearbeiten von Fotos: + + + Leer lassen, um die Standard-Systemanwendung zu verwenden + + + Beim Aktualisieren der Sammlungseinstellungen ist ein Fehler aufgetreten + + + Die Sammlungseinstellung wurde aktualisiert + + + Beim Aktualisieren der Raw / Jpeg-Einstellungen ist ein Fehler aufgetreten + + + Die Raw / Jpeg-Einstellung wurde aktualisiert + + + Unbekannter Benutzername + + + Desktop Benutzer + + + Benutzername + + + Rolle + + + supersicher + + + Geben Sie Ihr aktuelles Passwort ein + + + Geben Sie Ihr neues Passwort ein + + + Und Ihr neues Passwort erneut + + + Geben Sie das aktuelle und das neue Passwort ein + + + Geben Sie Ihr Passwort ein + + + Ihr Passwort wurde erfolgreich geändert + + + Die Passwörter stimmen nicht überein + + + Das neue Passwort entspricht nicht den Kriterien + + + Neues Konto erstellen + + + dont@mail.me + + + Geben Sie Ihr Passwort erneut ein + + + Geben Sie eine E-Mail-Adresse und ein Passwort ein + + + Überprüfen Sie Ihre E-Mail-Adresse + + + Verwenden Sie mindestens 8 Zeichen für Ihr Passwort + + + Dieses Anfrage wurde abgelehnt, weil die Sicherheitsanforderungen nicht erfüllt wurden (Fehler 400) + + + Die Registrierung ist deaktiviert + + + Stattdessen anmelden + + + Durch das Erstellen eines Kontos stimmen Sie den <a href="/legal/toc.en.html" data-test="toc">Allgemeinen Geschäftsbedingungen</a> von Starsky zu. Bitte beachten Sie unsere <a href="/legal/privacy-policy.en.html" data-test="privacy">Datenschutzerklärung</a> und unsere <a href="/legal/privacy-policy.en.html#cookie">Cookie-Richtlinie</a>. + + + Das Feld unten kann maximal {maxlength} Zeichen enthalten + + + Ihr Benutzername oder Ihr Passwort ist falsch. Bitte versuchen Sie es erneut. + + + Sie haben zu oft versucht, sich anzumelden. Bitte versuchen Sie es in einer Stunde erneut. + + + Es ist keine Verbindung möglich, bitte versuchen Sie es später erneut. + + + Es gibt Probleme mit der Verbindung zur Datenbank. Überprüfen und bearbeiten Sie die App-Einstellungen. + + + Möchten Sie sich abmelden? + + + Angemeldet bleiben + + + Anmelden + + + Konto erstellen + + + Mehr + + + Vorherige + + + Nächste + + + Hinzufügen zu + + + Schlagwörter: + + + Info: + + + Schlagwörter sind durch Kommas getrennt + + + Titel: + + + Überschreiben + + + Titel + + + Info + + + Eine oder mehrere Dateien sind schreibgeschützt. Es wurden nur die Dateien mit Schreibrechten aktualisiert. + + + Eine oder mehrere Dateien sind bereits verschwunden. Es werden nur die vorhandenen Dateien aktualisiert. Führen Sie eine manuelle Synchronisierung durch + + + Suchen und ersetzen + + + Ersetzen + + + Ändern + + + Aktuelles Verzeichnis manuell synchronisieren + + + <a target='_blank' href='https://docs.qdraw.nl/download/' rel='noopener'> {releasesToken}</a> + + + Gehen Sie zur Release-Übersicht + + + Gehen Sie zum Hilfemenü und dann zur Release-Übersicht + + + Eine neue Version ist verfügbar {WhereToFindRelease} {otherInfo} + + + In den folgenden Komponenten liegen kritische Fehler vor: + + + Es gibt keine Bilder + + + Diese Dateien wurden hinzugefügt + + + Wir haben derzeit eine Störung bei der Anwendung + + + Laden Sie die Anwendung herunter, um die Option zu testen + + + Auswahl veröffentlichen + + + Beim Exportieren ist ein Fehler aufgetreten + + + Dies erneut versuchen + + + Die Datei {createZipKey} wurde erfolgreich exportiert. + + + Als ZIP-Archiv herunterladen + + + Einen Moment bitte + + + Worum geht es bei dem Element? + + + Dieser Name wird bereits verwendet. Bitte wählen Sie einen anderen Namen + + + Profil-Einstellung + + + Profil-Einstellung: {publishProfileNames} enthält Dateipfadfehler + + + Auswahl + + + Nur-Lese-Ordner + + + Etiketten aktualisieren + + + Farbklassifizierung + + + vorher bearbeitet + + + weniger als eine Minute + + + Minuten + + + Stunde + + + Die Labels wurden kopiert + + + Die Labels wurden überschrieben + + + Erstellungsdatum + + + ist zu einem unbekannten Zeitpunkt + + + Unbenannt + + + Nicht eine + + + Lokalisierung + + + Neuen Ordner erstellen + + + Überprüfen Sie den Namen, dieser Ordner kann nicht auf diese Weise erstellt werden + + + Beim Erstellen dieses Ordners ist ein Fehler aufgetreten + + + Der Ordner existiert bereits. Versuchen Sie einen anderen Namen + + + Aktuellen Ordner umbenennen + + + Aktualisieren Sie den Cache des aktuellen Verzeichnisses + + + Geolocation automatisch hinzufügen + + + Der Ort wird aus einer in dem aktuellen Ordner befindlichen gpx-Datei abgeleitet und basierend auf dem Ort werden Ortsnamen den Bildern hinzugefügt + + + Miniaturbilder generieren + + + Diese Aktion generiert im Hintergrund viele Miniaturbilder, was sich auf die Leistung auswirkt + + + Diese Datei kann nicht gespeichert werden + + + Achtung! Sie ändern die Dateierweiterung, was dazu führen kann, dass sie nicht lesbar wird + + + Bei der Anfrage ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut + + + Anzeigeoptionen + + + Rohdateien anzeigen + + + Rohdateien ausblenden + + + Alles laden + + + Kleine Ladung + + + Echtzeitupdates + + + Selbst aktualisieren + + + Auswahl herunterladen + + + Originaldatei + + + Vorschaubild + + + Datum und Uhrzeit bearbeiten + + + Jahr + + + Monat + + + Tag + + + Zeit + + + Das Datum und die Uhrzeit wurden falsch eingegeben + + + Möchten Sie diese Datei wirklich von allen Geräten löschen? + + + Die Verbindung stimmt nicht ganz. Wir versuchen es zu beheben + + + Die Verbindung stimmt nicht ganz. Wir versuchen es zu beheben + + + Ergebnisse + + + Kein Ergebnis + + + Versuchen Sie eine andere Suchanfrage + + + Seite {pageNumber} von + + + Es befindet sich nichts im Papierkorb + + + Nicht gefunden + + + Gehe zur Startseite + + + Lesen Sie hier mehr + + + . + + \ No newline at end of file diff --git a/starsky/starsky.feature.language/LanguageContent.en.resx b/starsky/starsky.feature.language/LanguageContent.en.resx new file mode 100644 index 000000000..d6cc02dec --- /dev/null +++ b/starsky/starsky.feature.language/LanguageContent.en.resx @@ -0,0 +1,679 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Are you sure you want to move this folder into the trash? + + + Cancel + + + Trash + + + Move to trash + + + Move current folder to trash + + + Move + + + to + + + Restore from trash + + + Synchronize manually + + + Download + + + Publish + + + Read only file + + + Not found. Source missing. + + + Something is wrong with the input + + + Is in the trash + + + 'Restore from Trash' to edit the item + + + Home + + + Photos of this week + + + Import + + + Preferences + + + Logout + + + Saved + + + Import + + + Close detail screen + + + Parent folder + + + Including: + + + Add location + + + Update location + + + View location + + + Something went wrong with the update. Please try again + + + There are no photos in this folder + + + New? Set your drive location in the settings. + + + There are more items, but these are outside of your filters. To see everything click on 'Reset Filter' + + + selected + + + Select + + + Nothing selected + + + Undo selection + + + Select all + + + All + + + Select further + + + Go to parent folder + + + Create folder + + + Rename + + + Labels + + + Rename file name + + + Rotation to the right + + + Delete immediately + + + There is something wrong with the playback of this video. Try 'More' and 'Download'. + + + This video is not found + + + Colorclass is updated + + + Colorless + + + Pink + + + Red + + + Orange + + + Yellow + + + Green + + + Azure + + + Blue + + + Grey + + + Reset filter + + + Close + + + Open file + + + Open files + + + Sorry, something went wrong opening the file + + + Do you really want to edit all of the selected photos? + + + This prompt is to prevent potential issues such as your computer freezing + + + Please select at least one item before proceeding. + + + The AppSettings may only be modified by Administrators. These settings are applied for the entire application. + + + You have changed this setting, now you need to perform a full sync. Go to the root folder, the more menu and click on manual sync. + + + Storage Folder + + + Apologies, unable to save, we couldn't find the directory + + + Please update the 'app__storageFolder' environment variable to change the location + + + Raw first + + + Jpeg first + + + AppSettings: Desktop application + + + These settings are only available when using as Desktop application + + + Default application to edit photos: + + + Keep emthy to use the default system application + + + Something went wrong updating the collection preferences + + + The collection preference is updated + + + Something went wrong updating the Raw / Jpeg preferences + + + The Raw / Jpeg preference is updated + + + Unknown username + + + Desktop user + + + Username + + + Role + + + supersafe + + + Enter your current password + + + Enter your new password + + + And your new password again + + + Enter the current and new password + + + Enter your password + + + Your password has been successfully changed + + + The passwords do not match + + + The new password does not meet the criteria + + + Create new account + + + dont@mail.me + + + Enter your password again + + + Enter an email address and password + + + Check your email address + + + Use at least 8 characters for your password + + + This request was rejected because the security requirements were not met (Error 400) + + + Registration is turned off + + + Sign in instead + + + By creating an account you agree to <a href="/legal/toc.en.html" data-test="toc">Starsky's Conditions of Use</a>. Please see our <a href="/legal/privacy-policy.en.html" data-test="privacy">Privacy</a> Notice and our <a href="/legal/privacy-policy.en.html#cookie">Cookies Notice</a> + + + The field below can have a maximum of {maxlength} characters + + + Your username or password is incorrect. Try again + + + You've tried to login too many times, please try again in an hour + + + No connection is possible, please try again later + + + There are database connection issues. Check and edit the appsettings + + + Do you want to log out? + + + Stay logged in + + + Login + + + Create account + + + More + + + Previous + + + Next + + + Add to + + + Tags: + + + Info: + + + Tags are comma-separated + + + Title: + + + Overwrite + + + Title + + + Info + + + One or more files are read only. Only the files with write permissions have been updated. + + + One or more files are already gone. Only the files that are present are updated. Run a manual sync + + + Search and replace + + + Replace + + + Modify + + + Synchronize current directory manually + + + <a target='_blank' href='https://docs.qdraw.nl/download/' rel='noopener'> {releasesToken}</a> + + + Go to the release overview + + + Go to the Help menu and then release overview + + + A new version is available {WhereToFindRelease} {otherInfo} + + + There are critical errors in the following components: + + + There are no pictures + + + These files have been added + + + We have a disruption on the application right now + + + Please reload the application to try again + + + Publish selection + + + Something went wrong with exporting + + + Retry this + + + The file {createZipKey} has finished exporting. + + + Download as a zip archive + + + One moment please + + + What is the item about? + + + This name is already in use, please choose another name + + + Profile setting + + + Profile setting: {publishProfileNames} contains filepath errors + + + Selection + + + Read only folder + + + Update labels + + + Color Classification + + + ago edited + + + less than one minute + + + minutes + + + hour + + + The labels have been copied + + + The labels have been overwritten + + + Creation date + + + is at an unknown time + + + Unnamed + + + Not any + + + location + + + Create new folder + + + Check the name, this folder cannot be created in this way + + + An error occurred while creating this folder + + + The folder already exists, try a different name + + + Rename current folder + + + Refresh cache of current directory + + + Automatically add geolocation + + + The location is derived from a gpx file located in the current folder and based on the location place names are appended to the images + + + Generate thumbnail images + + + This action generate on the background lots of thumbnail images, this does impact the performance + + + This file cannot be saved + + + Pay attention! You change the file extension, which can make it unreadable + + + Something went wrong with the request, please try again later + + + Display options + + + Show raw files + + + Hide Raw files + + + Load everything + + + Small loading + + + Realtime updates + + + Refresh yourself + + + Download selection + + + Original file + + + Thumbnail + + + Edit date and time + + + Year + + + Month + + + Day + + + Time + + + The date and time were entered incorrectly + + + Are you sure you want to delete this file from all devices? + + + The connection is not quite right. We are trying to fix it + + + The application has failed. Please reload it to try it again + + + results + + + No result + + + Try another search query + + + Page {pageNumber} of + + + There is nothing in the trash + + + Not Found + + + Go to the homepage + + + Read more here + + + . + + \ No newline at end of file diff --git a/starsky/starsky.feature.language/LanguageContent.nl.resx b/starsky/starsky.feature.language/LanguageContent.nl.resx new file mode 100644 index 000000000..7a32c0f58 --- /dev/null +++ b/starsky/starsky.feature.language/LanguageContent.nl.resx @@ -0,0 +1,679 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Weet u zeker dat u deze map naar de prullenbak wilt verplaatsen? + + + Annuleren + + + Prullenbak + + + Verplaatsen naar prullenbak + + + Huidige map naar prullenbak + + + Verplaats + + + naar + + + Herstellen uit prullenbak + + + Handmatig synchroniseren + + + Download + + + Publiceren + + + Alleen-lezen bestand + + + Niet gevonden. Bron ontbreekt. + + + Er is iets mis met de input + + + Staat in de prullenbak + + + 'Zet terug uit prullenbak' om het item te bewerken + + + Home + + + Foto's van deze week + + + Importeren + + + Voorkeuren + + + Uitloggen + + + Opgeslagen + + + Importeren + + + Sluit detailscherm + + + Terug naar map + + + Inclusief: + + + Voeg locatie toe + + + Werk locatie bij + + + Bekijk locatie + + + Er is iets misgegaan met het updaten. Probeer het opnieuw + + + Er zijn geen foto's in deze map + + + Nieuw? Stel je schijflocatie in de instellingen. + + + Er zijn meer items, maar deze vallen buiten je filters. Om alles te zien klik op 'Herstel Filter' + + + geselecteerd + + + Selecteer + + + Niets geselecteerd + + + Undo selectie + + + Alles selecteren + + + Alles + + + Verder selecteren + + + Ga naar bovenliggende map + + + Map maken + + + Naam wijzigen + + + Labels + + + Bestandsnaam wijzigen + + + Rotatie naar rechts + + + Verwijder onmiddellijk + + + Er is iets mis met het afspelen van deze video. Probeer eens via het menu 'Meer' en 'Download'. + + + Deze video is niet gevonden + + + Colorclass is bijgewerkt + + + Kleurloos + + + Roze + + + Rood + + + Oranje + + + Geel + + + Groen + + + Azuur + + + Blauw + + + Grijs + + + Herstel filter + + + Sluiten + + + Open bestand + + + Open bestanden + + + Sorry, er iets misgegaan met het openen van het bestand + + + Wil je echt alle geselecteerde foto's bewerken? + + + Deze melding is bedoeld om te voorkomen dat er eventuele problemen optreden, zoals het vastlopen van je computer. + + + Selecteer alstublieft eerst minstens één item voordat u doorgaat. + + + De AppSettings mogen alleen worden aangepast door Administrators. Deze instellingen worden toegepast voor de gehele applicatie. + + + Je hebt deze instelling veranderd, nu dien je een volledige sync uit te voeren. Ga naar de hoofdmap, het meer-menu en klik op handmatig synchroniseren. + + + Opslag map + + + Sorry het opslaan van de map is niet gelukt, de map is niet gevonden + + + Update alsjeblieft de 'app__storageFolder' environment variable om de opslag locatie te veranderen + + + Raw eerst + + + Jpeg eerst + + + AppSettings: Desktop applicatie + + + Deze instellingen zijn alleen beschikbaar als desktop applicatie + + + Standaardtoepassing om foto's te bewerken: + + + Hou leeg om de standaardtoepassing van het systeem te gebruiken + + + Er ging iets met het updaten van de collectie voorkeur + + + De collection voorkeur is bijgewerkt + + + Er ging iets mis bij het bijwerken van de voorkeur voor Raw / Jpeg + + + De voorkeur voor Raw / Jpeg is bijgewerkt + + + Onbekende gebruikersnaam + + + Desktop gebruiker + + + Gebruikersnaam + + + Rol + + + superveilig + + + Voer uw huidige wachtwoord in + + + Voer uw nieuwe wachtwoord in + + + Herhaal je nieuwe wachtwoord + + + Voer het huidige en nieuwe wachtwoord in + + + Geef je wachtwoord op + + + Je wachtwoord is succesvol veranderd + + + De wachtwoorden komen niet overeen + + + Het nieuwe wachtwoord voldoet niet aan de criteria + + + Maak nieuw account + + + dont@mail.me + + + Vul je wachtwoord nog een keer in + + + Voer een emailadres en een wachtwoord in + + + Controleer je email adres + + + Gebruik minimaal 8 tekens voor je wachtwoord + + + Dit verzoek is afgewezen aangezien er niet voldaan is aan de beveiligingseisen (Error 400) + + + Registratie is uitgezet + + + In plaats daarvan inloggen + + + Door het creëren van een account gaat u akkoord met de <a href="/legal/toc.nl.html" data-test="toc">Algemene Voorwaarden</a> van Starsky. Raadpleeg en bekijk hier onze <a href="/legal/privacy-policy.nl.html" data-test="privacy">Privacykennisgeving</a> en onze <a href="/legal/privacy-policy.nl.html#cookie">Cookieverklaring</a>. + + + Het onderstaande veld mag maximaal {maxlength} tekens hebben + + + Je gebruikersnaam of wachtwoord is niet juist. Probeer het opnieuw + + + Je hebt te vaak geprobeerd in te loggen, probeer het over een uur nog een keer + + + Er is geen verbinding mogelijk, probeer het later opnieuw + + + Er zijn problemen met de verbinding met de database. Controleer en pas de appsettings aan + + + Wil je uitloggen? + + + Blijf ingelogd + + + Inloggen + + + Account maken + + + Meer + + + Vorige + + + Volgende + + + Toevoegen + + + Tags: + + + Info: + + + Tags zijn gescheiden door komma's + + + Titel: + + + Overschrijven + + + Titel + + + Info + + + Eén of meerdere bestanden zijn alleen lezen. Alleen de bestanden met schrijfrechten zijn geupdate. + + + Eén of meerdere bestanden zijn al verdwenen. Alleen de bestanden die wel aanwezig zijn geupdate. Draai een handmatige sync + + + Zoeken en vervangen + + + Vervangen + + + Wijzigen + + + Handmatig synchroniseren van huidige map + + + <a target='_blank' href='https://docs.qdraw.nl/download/' rel='noopener'> {releasesToken}</a> + + + Ga naar het release overzicht + + + Ga naar het Help menu en dan release overzicht + + + Er is een nieuwe versie beschikbaar {WhereToFindRelease} {otherInfo} + + + Er zijn kritieke fouten in de volgende onderdelen: + + + Er zijn geen foto's + + + Deze bestanden zijn toegevoegd + + + We hebben een op dit moment een verstoring op de applicatie + + + Herlaad de applicatie om het opnieuw te proberen + + + Publiceer selectie + + + Er is iets misgegaan met exporteren + + + Probeer het opnieuw + + + Het bestand {createZipKey} is klaar met exporteren. + + + Download als zip-archief + + + Een moment geduld alstublieft + + + Waar gaat het item over? + + + Deze naam is al in gebruik, kies een andere naam + + + Profiel instelling + + + Profiel instelling: {publishProfileNames} bevat bestand locatie fouten + + + Selectie + + + Alleen lezen map + + + Labels wijzigingen + + + Kleur-Classificatie + + + geleden bewerkt + + + minder dan één minuut + + + minuten + + + uur + + + De labels zijn gekopieerd + + + De labels zijn overschreven + + + Aanmaakdatum + + + is op een onbekend moment + + + Naamloze + + + Geen enkele + + + locatie + + + Nieuwe map aanmaken + + + Controleer de naam, deze map kan niet zo worden aangemaakt + + + Er is misgegaan met het aanmaken van deze map + + + De map bestaat al, probeer een andere naam + + + Huidige mapnaam wijzigen + + + Verwijder cache van huidige map + + + Voeg geolocatie automatisch toe + + + De locatie wordt afgeleid van een gpx bestand die zich in de huidige map bevind en op basis van de locatie worden er plaatsnamen bij de afbeeldingen gevoegd + + + Thumbnail afbeeldingen generen + + + Deze actie genereert op de achtergrond veel miniatuurafbeeldingen, dit heeft invloed op de prestaties + + + Dit bestand kan zo niet worden weggeschreven + + + Let op! Je veranderd de extensie van het bestand, deze kan hierdoor onleesbaar worden + + + Er is iets misgegaan met de aanvraag, probeer het later opnieuw + + + Weergave opties + + + Toon raw bestanden + + + Verberg raw bestanden + + + Alles inladen + + + Klein inladen + + + Realtime updates + + + Ververs zelf + + + Download selectie + + + Origineel bestand + + + Thumbnail + + + Datum en tijd bewerken + + + Jaar + + + Maand + + + Dag + + + Tijd + + + De datum en tijd zijn incorrect ingegeven + + + Weet je zeker dat je dit bestand wilt verwijderen van alle devices? + + + De verbinding is niet helemaal oké. We proberen het te herstellen + + + De verbinding is niet helemaal oké. Probeer te herladen + + + resultaten + + + Geen resultaat + + + Probeer een andere zoekopdracht + + + Pagina {pageNumber} van + + + Er staat niets in de prullenmand + + + Oeps niet gevonden + + + Ga naar de homepagina + + + Lees meer hier + + + . + + \ No newline at end of file diff --git a/starsky/starsky.feature.language/LanguageContent.resx b/starsky/starsky.feature.language/LanguageContent.resx new file mode 100644 index 000000000..d6cc02dec --- /dev/null +++ b/starsky/starsky.feature.language/LanguageContent.resx @@ -0,0 +1,679 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Are you sure you want to move this folder into the trash? + + + Cancel + + + Trash + + + Move to trash + + + Move current folder to trash + + + Move + + + to + + + Restore from trash + + + Synchronize manually + + + Download + + + Publish + + + Read only file + + + Not found. Source missing. + + + Something is wrong with the input + + + Is in the trash + + + 'Restore from Trash' to edit the item + + + Home + + + Photos of this week + + + Import + + + Preferences + + + Logout + + + Saved + + + Import + + + Close detail screen + + + Parent folder + + + Including: + + + Add location + + + Update location + + + View location + + + Something went wrong with the update. Please try again + + + There are no photos in this folder + + + New? Set your drive location in the settings. + + + There are more items, but these are outside of your filters. To see everything click on 'Reset Filter' + + + selected + + + Select + + + Nothing selected + + + Undo selection + + + Select all + + + All + + + Select further + + + Go to parent folder + + + Create folder + + + Rename + + + Labels + + + Rename file name + + + Rotation to the right + + + Delete immediately + + + There is something wrong with the playback of this video. Try 'More' and 'Download'. + + + This video is not found + + + Colorclass is updated + + + Colorless + + + Pink + + + Red + + + Orange + + + Yellow + + + Green + + + Azure + + + Blue + + + Grey + + + Reset filter + + + Close + + + Open file + + + Open files + + + Sorry, something went wrong opening the file + + + Do you really want to edit all of the selected photos? + + + This prompt is to prevent potential issues such as your computer freezing + + + Please select at least one item before proceeding. + + + The AppSettings may only be modified by Administrators. These settings are applied for the entire application. + + + You have changed this setting, now you need to perform a full sync. Go to the root folder, the more menu and click on manual sync. + + + Storage Folder + + + Apologies, unable to save, we couldn't find the directory + + + Please update the 'app__storageFolder' environment variable to change the location + + + Raw first + + + Jpeg first + + + AppSettings: Desktop application + + + These settings are only available when using as Desktop application + + + Default application to edit photos: + + + Keep emthy to use the default system application + + + Something went wrong updating the collection preferences + + + The collection preference is updated + + + Something went wrong updating the Raw / Jpeg preferences + + + The Raw / Jpeg preference is updated + + + Unknown username + + + Desktop user + + + Username + + + Role + + + supersafe + + + Enter your current password + + + Enter your new password + + + And your new password again + + + Enter the current and new password + + + Enter your password + + + Your password has been successfully changed + + + The passwords do not match + + + The new password does not meet the criteria + + + Create new account + + + dont@mail.me + + + Enter your password again + + + Enter an email address and password + + + Check your email address + + + Use at least 8 characters for your password + + + This request was rejected because the security requirements were not met (Error 400) + + + Registration is turned off + + + Sign in instead + + + By creating an account you agree to <a href="/legal/toc.en.html" data-test="toc">Starsky's Conditions of Use</a>. Please see our <a href="/legal/privacy-policy.en.html" data-test="privacy">Privacy</a> Notice and our <a href="/legal/privacy-policy.en.html#cookie">Cookies Notice</a> + + + The field below can have a maximum of {maxlength} characters + + + Your username or password is incorrect. Try again + + + You've tried to login too many times, please try again in an hour + + + No connection is possible, please try again later + + + There are database connection issues. Check and edit the appsettings + + + Do you want to log out? + + + Stay logged in + + + Login + + + Create account + + + More + + + Previous + + + Next + + + Add to + + + Tags: + + + Info: + + + Tags are comma-separated + + + Title: + + + Overwrite + + + Title + + + Info + + + One or more files are read only. Only the files with write permissions have been updated. + + + One or more files are already gone. Only the files that are present are updated. Run a manual sync + + + Search and replace + + + Replace + + + Modify + + + Synchronize current directory manually + + + <a target='_blank' href='https://docs.qdraw.nl/download/' rel='noopener'> {releasesToken}</a> + + + Go to the release overview + + + Go to the Help menu and then release overview + + + A new version is available {WhereToFindRelease} {otherInfo} + + + There are critical errors in the following components: + + + There are no pictures + + + These files have been added + + + We have a disruption on the application right now + + + Please reload the application to try again + + + Publish selection + + + Something went wrong with exporting + + + Retry this + + + The file {createZipKey} has finished exporting. + + + Download as a zip archive + + + One moment please + + + What is the item about? + + + This name is already in use, please choose another name + + + Profile setting + + + Profile setting: {publishProfileNames} contains filepath errors + + + Selection + + + Read only folder + + + Update labels + + + Color Classification + + + ago edited + + + less than one minute + + + minutes + + + hour + + + The labels have been copied + + + The labels have been overwritten + + + Creation date + + + is at an unknown time + + + Unnamed + + + Not any + + + location + + + Create new folder + + + Check the name, this folder cannot be created in this way + + + An error occurred while creating this folder + + + The folder already exists, try a different name + + + Rename current folder + + + Refresh cache of current directory + + + Automatically add geolocation + + + The location is derived from a gpx file located in the current folder and based on the location place names are appended to the images + + + Generate thumbnail images + + + This action generate on the background lots of thumbnail images, this does impact the performance + + + This file cannot be saved + + + Pay attention! You change the file extension, which can make it unreadable + + + Something went wrong with the request, please try again later + + + Display options + + + Show raw files + + + Hide Raw files + + + Load everything + + + Small loading + + + Realtime updates + + + Refresh yourself + + + Download selection + + + Original file + + + Thumbnail + + + Edit date and time + + + Year + + + Month + + + Day + + + Time + + + The date and time were entered incorrectly + + + Are you sure you want to delete this file from all devices? + + + The connection is not quite right. We are trying to fix it + + + The application has failed. Please reload it to try it again + + + results + + + No result + + + Try another search query + + + Page {pageNumber} of + + + There is nothing in the trash + + + Not Found + + + Go to the homepage + + + Read more here + + + . + + \ No newline at end of file diff --git a/starsky/starsky.feature.language/ResourceFileToJson.cs b/starsky/starsky.feature.language/ResourceFileToJson.cs new file mode 100644 index 000000000..ae6b0c37a --- /dev/null +++ b/starsky/starsky.feature.language/ResourceFileToJson.cs @@ -0,0 +1,42 @@ +using System.Globalization; +using System.Reflection; +using System.Text.Json; + +namespace starsky.feature.language; + +public class Class1 +{ + public Class1() + { + var properties = + typeof(LanguageContent).GetProperties(BindingFlags.Static | BindingFlags.NonPublic); + var cultures = GetAllCultures.CulturesOfResource() + .Select(p => p.Name) + .Order(new CustomCultureComparer(["en", "nl", "de"])).ToList(); + + var translations = new Dictionary>(); + + foreach ( var property in properties ) + { + if ( property.PropertyType != typeof(string) ) + { + continue; + } + + var propertyTranslations = new Dictionary(); + + foreach ( var cultureName in cultures ) + { + LanguageContent.Culture = new CultureInfo(cultureName); + var value = property.GetValue(null) as string; + propertyTranslations[cultureName] = value; + } + + translations[property.Name] = propertyTranslations; + } + + var json = JsonSerializer.Serialize(translations, + new JsonSerializerOptions { WriteIndented = true }); + Console.WriteLine(json); + } +} diff --git a/starsky/starsky.feature.language/starsky.feature.language.csproj b/starsky/starsky.feature.language/starsky.feature.language.csproj new file mode 100644 index 000000000..2c81d6899 --- /dev/null +++ b/starsky/starsky.feature.language/starsky.feature.language.csproj @@ -0,0 +1,28 @@ + + + + net8.0 + enable + enable + + + + + + + + + ResXFileCodeGenerator + LanguageContent.Designer.cs + + + + + + True + True + LanguageContent.resx + + + + diff --git a/starsky/starsky.sln b/starsky/starsky.sln index 729c69552..0caadd9ac 100644 --- a/starsky/starsky.sln +++ b/starsky/starsky.sln @@ -166,6 +166,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "starsky.feature.settings", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "starsky.feature.desktop", "starsky.feature.desktop\starsky.feature.desktop.csproj", "{B88C2815-D154-4C6D-AE37-2E150AEBF73D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "starsky.feature.language", "starsky.feature.language\starsky.feature.language.csproj", "{B307BF6B-A101-4AFD-B166-DB26BC790787}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -368,6 +370,10 @@ Global {B88C2815-D154-4C6D-AE37-2E150AEBF73D}.Debug|Any CPU.Build.0 = Debug|Any CPU {B88C2815-D154-4C6D-AE37-2E150AEBF73D}.Release|Any CPU.ActiveCfg = Release|Any CPU {B88C2815-D154-4C6D-AE37-2E150AEBF73D}.Release|Any CPU.Build.0 = Release|Any CPU + {B307BF6B-A101-4AFD-B166-DB26BC790787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B307BF6B-A101-4AFD-B166-DB26BC790787}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B307BF6B-A101-4AFD-B166-DB26BC790787}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B307BF6B-A101-4AFD-B166-DB26BC790787}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -428,5 +434,6 @@ Global {A62C129C-5D0C-4A0A-B5AA-261E041FF55D} = {4B9276C3-651E-48D3-B3A7-3F4D74F3D01A} {F2C4C9DE-22A1-4B34-AC1D-0F08353E0742} = {4B9276C3-651E-48D3-B3A7-3F4D74F3D01A} {B88C2815-D154-4C6D-AE37-2E150AEBF73D} = {4B9276C3-651E-48D3-B3A7-3F4D74F3D01A} + {B307BF6B-A101-4AFD-B166-DB26BC790787} = {4B9276C3-651E-48D3-B3A7-3F4D74F3D01A} EndGlobalSection EndGlobal diff --git a/starsky/starskytest/starsky.feature.language/JsonToResxConverterTests.cs b/starsky/starskytest/starsky.feature.language/JsonToResxConverterTests.cs new file mode 100644 index 000000000..ff3de897c --- /dev/null +++ b/starsky/starskytest/starsky.feature.language/JsonToResxConverterTests.cs @@ -0,0 +1,15 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace starskytest.starsky.feature.language; + +[TestClass] +public class JsonToResxConverterTests +{ + [TestMethod] + public void TEst() + { + JsonToResxConverter.ConvertJsonToResx( + "/Users/dion/data/git/starsky/starsky/starsky/clientapp/src/localization/localization.json", + "/Users/dion/data/git/starsky/starsky/starsky.feature.language/LanguageContent.resx"); + } +} diff --git a/starsky/starskytest/starsky.feature.language/Test.cs b/starsky/starskytest/starsky.feature.language/Test.cs new file mode 100644 index 000000000..77b6bef15 --- /dev/null +++ b/starsky/starskytest/starsky.feature.language/Test.cs @@ -0,0 +1,14 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using starsky.feature.language; + +namespace starskytest.starsky.feature.language; + +[TestClass] +public class Test +{ + [TestMethod] + public void TEst() + { + new Class1(); + } +} diff --git a/starsky/starskytest/starsky.feature.packagetelemetry/Services/PackageTelemetryBackgroundServiceTest.cs b/starsky/starskytest/starsky.feature.packagetelemetry/Services/PackageTelemetryBackgroundServiceTest.cs index 9e46d1278..34c3d2f58 100644 --- a/starsky/starskytest/starsky.feature.packagetelemetry/Services/PackageTelemetryBackgroundServiceTest.cs +++ b/starsky/starskytest/starsky.feature.packagetelemetry/Services/PackageTelemetryBackgroundServiceTest.cs @@ -35,7 +35,7 @@ public PackageTelemetryBackgroundServiceTest() services.AddSingleton(); services.AddSingleton(); - var serviceProvider = services.BuildServiceProvider(); + var serviceProvider = _serviceScopeFactory = serviceProvider.GetRequiredService(); var appSettings = serviceProvider.GetRequiredService(); diff --git a/starsky/starskytest/starskytest.csproj b/starsky/starskytest/starskytest.csproj index 2f12ef40d..cbc3c1351 100644 --- a/starsky/starskytest/starskytest.csproj +++ b/starsky/starskytest/starskytest.csproj @@ -21,13 +21,13 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -46,6 +46,7 @@ +