Giter Site home page Giter Site logo

daniel-lerch / vocup Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 3.0 4.12 MB

Vocabulary trainer.

Home Page: https://www.microsoft.com/p/vocup/9n6w2h3qjqmm

License: GNU Affero General Public License v3.0

C# 96.66% Inno Setup 2.37% PowerShell 0.97%
dotnet vocab-trainer vocabulary vocabulary-learning vocabulary-trainer

vocup's People

Contributors

daniel-lerch avatar jdelange22 avatar schafwolle avatar twometer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vocup's Issues

Add default list of common Dutch special characters

With the recent upcoming addition of the Dutch UI language, I would also like to see a list of most common special characters of the Dutch language. I know I can add my own custom lists, but a build-in one is much more convenient. I can add this with a PR if you like.

WPF settings dialog

Context

image

The current settings dialog especially on the tab Practice settings has a poor readability. Custom special char keyboards are hidden in another form despite being local settings as well.

Proposal

  • Implement a modern settings dialog with WPF
  • Use more screen space for better presentation
  • Move settings for custom special char keyboards there
  • Migrate special chars to the new settings file
  • Leave old special char text files for older versions

Show message if configured folder is not found

Vocup currently creates the configured VhfPath and VhrPath on startup if these folders don't exist. However, this behavior could lead to fatal crashes at startup if a user configured the path to an external disk before and Vocup attempts again and again to create this directory because it doesn't exist.

Instead of creating custom VhfPath and VhrPath directories, Vocup should show a message if these folders can't be found and reset the configuration to its default values.

Save window and column size

Vocup doesn't save the window size, after every start i've to resize the Vocup window and the columns to my preference.

Weird behaviour trying to merge two vocabulary files

When trying to merge two vocabulary files, very weird behaviour occurs in Vocup.
I can select the first file properly, but after I add the second file, I get an exception:

System.NullReferenceException: Object reference not set to an instance of an object.
   at Vocup.Forms.SpecialCharKeyboard.Form_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

After clicking Continue on the error message, the special character keyboard appears although I have never clicked the button for special chars, and it can be reproduced every time.

I then close the special character keyboard, enter mothertongue and foreign language names and click on save.
HOWEVER:
The file I just created with this process is not a merge of the two vocabulary files I put in, but the created file is completely empty.

Sometimes, when I then try to switch to a different vocabulary file, it asks me to save my practice progress on this file, although I never practised it.

Inputfield doesn't get focus when first opening the special chars dialog

When practicing words and opening the special chars dialog (by pressing the button), the dialog appears and gets focussed. But when pressing the character buttons, no characters are entered in the input field. Only when manually placing the cursor in the inputfield allows special character input. Any further input is working fine as long as the focus is in the input field. So the issue only appears just after opening the dialog.

ANR on practice list composition

From Microsoft Store integrity reports we know that Vocup can freeze when composing a practice list. In an example reported by @rnbahner this occurred when practicing a file with very few unpracticed words which might be in a buggy state.

The ANR is caused by the Sainte-Laguë implementation whose loop most probably runs forever without finding a match.

Audio sample practice mode

My I tried to learn Tamil I wasn't much interested in the written language but did not have good tools to practice the spoken language.

A kind of easy way to achieve that would be to let the user record audio samples of each word of the foreign language and the written form for the mother tongue. The practice would either be to listen to the audios and type the mother tongue or to read the word in the mother tongue, translate it and speak it out loud with a manual evaluation with the reference recording.

Crash when default folder is read only

  1. click magnifying glass icon
  2. in Browse For Folder dialog select the DVD Drive
  3. Click OK
    -> Crash

Solution:
disable OK

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: The device is not ready.

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.CommonInit()
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.DirectoryInfo.InternalGetDirectories(String searchPattern, SearchOption searchOption)
at Vocup.Controls.FileTreeView.LoadNodes(TreeNode root) in C:\Users\Daniel Lerch\source\vocup\src\Vocup\Controls\FileTreeView.cs:line 140
at Vocup.Controls.FileTreeView.set_RootPath(String value) in C:\Users\Daniel Lerch\source\vocup\src\Vocup\Controls\FileTreeView.cs:line 68
at Vocup.MainForm.FileTreeView_BrowseClick(Object sender, EventArgs e) in C:\Users\Daniel Lerch\source\vocup\src\Vocup\MainForm.cs:line 262
at Vocup.Controls.FileTreeView.OnBrowseClick(EventArgs e) in C:\Users\Daniel Lerch\source\vocup\src\Vocup\Controls\FileTreeView.cs:line 118
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Improve evaluation options

Vocup currently has just a few options to treat inputs as partly correct instead of incorrect if certain conditions are met. However, it would be more flexible to define a result (correct, partly correct, incorrect) for every case.

PracticeDialog bugs

The PracticeDialog crashes at least at the last word. In some cases reported by @Twometer already when practicing the first word.

The second problem is a wrong evaluation of inputs as an empty input leads to PartlyCorrect while it should be Wrong.

Moving files to subfolder crashes vocup

I tried moving all the files in the Vokabelhefte/ directory to a subfolder and Vocup crashed with the following error message:

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=Vocup
  StackTrace:
   at Vocup.Controls.FileTreeView.MainWatcher_Deleted(Object sender, FileSystemEventArgs e) in D:\GitHub Repositories\vocup\src\Vocup\Controls\FileTreeView.cs:line 238

Can be reproduced by the following steps:

  1. Have some files in Vokabelhefte/
  2. Start vocup
  3. Create a subfolder in Vokabelhefte/
  4. Move all your files in Vokabelhefte/ to that subfolder
  5. There goes your crash

Detect legacy Vocup version

Many users that are not using Vocup for the first time might have a classic version installed, although they are using the Windows 10 version. If the current user has administrator rights, Vocup should propose uninstalling the old version.

Detecting an old version could be done by checking the following registry keys:

32 bit: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Vocup_is1
64 bit: HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Vocup_is1

Implement effective spaced repetition algorithm

Vocup currently chooses words to practice randomly with a certain distribution. That, however, is not very effective to practice a huge vocabulary book because words should be repeated a few times in the beginning and less often as mistakes get less but never disappear completely like they do now if the practice count is reached.

Interoperability

There are many other vocabulary training applications out there than just Vocup.

  • Vokabel Trainer 5 was last updated in 2013 but has much more features than Vocup. Using Vokabel Trainer 5's vocabulary books in Vocup may be useful as well as implementing some more features.
  • Vokabel has native apps for UWP and Android. It offers many different ways to practice vocabulary words and has a very primitive file format. Vokabel has many interesting features for inspiration and would be a candidate for interoperability.

Internationalization

Vocup is built on .NET Resource classes and does not any hard coded texts. Therefore it should be possible to provide at least an English version beside the existing German one.

Vocup v2.0 roadmap

@Schafwolle this issue is for you, but it applies to anyone who wants to contribute to Vocup 😉

Thank you for your willingness to collaborate on Vocup. I opened this issue in order to discuss the work that has to be done for Vocup v2.0. That version is being developed on the avalonia branch of this repository.

Feel free to take a look at Vocup.Core and Vocup.Avalonia, the new main projects as well as docs/fileformats.md to see the all-new file format.

The rewrite is still in an early stage and there is much research work to be done. As I continue development I will open new issues and label them implementation for components where I already know the most important requirements.

Please let me know if there is something that you would like to work on for that I have not written down requirements yet. For individual questions or a discussion about Vocup via video call you find my email address on my GitHub profile.

Special char UI is counterintuitive

When adding a new language in the special character GUI, the default name is "Neue Sprache". I leave this name, add some characters and click on save.
Now when I click add again, it shows an error message saying that this language already exists. As a user I don't know what language already exists, since I didn't even specify a name yet. It turns out the reason for this is that it's trying to create another language with the name "Neue Sprache" and since one already exists, it fails.
If this is intended to make the user choose another name than "Neue Sprache", please add some kind of dialog so that the user knows what he has to do, because the error currently showing up does not make much sense. It took me a good while to figure out what was going on as well.

Native Linux and macOS support

Vocup is going to have limited support for Linux with v1.7.2 but it still looks ugly and cannot run on the latest macOS versions.

I have already started to rewrite Vocup with Avalonia in an own branch.

Setup and updating system

The last versions of Vocup used Inno Setup for installing and updating. To search for and download updates K_Updater.dll was used. As far as I know the K_Updater project is not maintained anymore. Therefore we will develop another solution.
However, an installer will be necessary for UAC prompts and overriding the current installation. The easiest solution would be to use Inno Setup again as default deployment option.

Support for Dutch UI language

I stubled upon your program and I really like it. One thing that I was missing though was support for the Dutch UI language so I translated the entire program into Dutch. Upon doing this, I also fixed some minor typos I found in the English resource files. If you're interested than I'm happy to create a pull request to add this feature.

Invalid state vocabulary file

When importing a special CSV file containing a string with + sign, it will be recognized as having one column. That results in an error message: "Der CSV Header verfügt über 1 Spalten, muss aber aus genau 2 Spalten bestehen". But after clicking on OK, Vocup will generate a vocabulary file in an invalid state. The text for mothertongue and foreign language is both empty.
It's not possible to save this file with the Save button, but with the Save as button, it works. You can add vocabulary to this invalid file as much as you want, but when you click the file again in the tree on the left side, or reload Vocup you will get an error message stating that the file is invalid.

Example CSV file:
x+x
loading this string as a CSV file will trigger the bug

Import words from clipboard

When dealing with Excel files or tables in Word documents it would be much easier to import words directly via clipboard into Vocup.

Enhanced CSV importer

Hy
This is my first github issue so be gentle with me.
I would like to migrate from another software (I don't know if I am allowed to name this software) because the other software stopped working.
I know you already support a csv import but the csv support right does not support to import of the state or the date of creation.

The software supports a csv export with the following scheme:

<First Language (Mother)> ; <Second Language>; <Language name>; <Additional Information>;  <Empty or swapped> ;< Phase (State)>;  <Date of Creation>; <Date of next check>; 

swapped means that both directions are ask

A example entry

"..., nicht wahr? (Frageanhängsel)";¿verdad?;Spanisch;Buch A1 bis Lektion.7;;6;2015-01-17;;
...(oder) nicht? (Frageanhängsel);¿no?;Spanisch;Buch A1 bis Lektion.7;;6;2015-01-17;;
(stammen) sind ursprünglich aus;ser originario/a de;Spanisch;Buch B1;;5;2019-11-14;2021-02-20

I am a programmer myself, therefore I would try to write an importer.
I know it is not possible to do a one2one mapping but at least I can try
I know my codebase will probably not be of a good quality, but once I am done would you like a pull request. I guess will not find time to start with the importer before 2021.

Are you planing to improve the csv import?
E.g: It would be possible to request a map file form the user. To support mapping from different columens to different entries in the database.

If I did something wrong regarding the issue policy of github. Please tell me.

I wish you a good new year and hopefully I will succed writting the importer.

Portable configuration

Vocup 1.x stores all configuration in .NET user settings which have a fixed path and are therefore not suitable for portable editions. For Vocup 2.x which will be based on Avalonia and .NET 5.0 a new solution is required.

Requirements:

  • Human readable file (simplifies debugging)
  • Support for structured data (e.g. lists, objects)
  • Support for custom config locations (necessary for portable apps)
  • Easy extensibility (for new features in future versions)

Known candidates:

Recent files list

Vocup 2.0 will replace the file tree on the left side with a list of recent files because that's much more convenient if your vocabulary books are saved in different places. Here's a draft how it could look like:

image

That would make it possible to switch quickly between books like tabs in the browser. Books with unsaved changes should somehow be highlighted in this list.

I'm not yet sure how to order the list. Chronologically would make sense in general but it would annoying if you often switch between to books and they constantly change their places.

Make an option to allow synonyms to be optional

Right now there is an option to mark the translation as partially correct when the synonym is not entered. It would make sense to also add an option that allows either one of the two words (original translation or synomym) to be entered and when entered correctly marks the word as properly translated.

Crash when closing multiple program instances at once

to reproduce:

  1. open many instances
  2. right click on the task bar icon and select "close all windows"
    -> crash

potential solution:
allow only one instance

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: The process cannot access the file 'C:\Users\Noname\AppData\Local\VectorData\Vocup.exe_Url_c2sx0hgu15odnosfwq34l2zmko4ish25\1.8.2.0\user.config' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.Configuration.Internal.WriteFileContext.FileIsWriteLocked(String FileName)
at System.Configuration.Internal.WriteFileContext.ReplaceFile(String Source, String Target)
at System.Configuration.Internal.WriteFileContext.Complete(String filename, Boolean success)
at System.Configuration.Internal.InternalConfigHost.StaticWriteCompleted(String streamName, Boolean success, Object writeContext, Boolean assertPermissions)
at System.Configuration.ClientSettingsStore.ClientSettingsConfigurationHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
at System.Configuration.UpdateConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
at System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
at System.Configuration.ClientSettingsStore.WriteSettings(String sectionName, Boolean isRoaming, IDictionary newSettings)
at System.Configuration.LocalFileSettingsProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection values)
at System.Configuration.SettingsBase.SaveCore()
at System.Configuration.SettingsBase.Save()
at System.Configuration.ApplicationSettingsBase.Save()
at Vocup.MainForm.StoreSettings() in C:\Users\Daniel Lerch\source\vocup\src\Vocup\MainForm.cs:line 150
at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Any number of synonyms

Vocup's legacy file format is limited to two synonyms in the foreign language and only a single entry for the mother tongue. Future versions should support any number of synonyms for both mother tongue and foreign language.

Website

Vocup needs a new website after the shutdown of vocup.ch. Hosting again on this domain is an option but we have to check the costs.
An alternative would be hosting on an existing domain like vectordata.de.

A new website should scale on mobile devices although Vocup is for windows only. Furthermore this website needs to have good screenshots showing many features of Vocup.

Scripted builds and packaging

Vocup 2.0 requires a rewrite of build.ps1 because the build matrix gets much more complicated than before.

OS Package type Runtime identifiers
Windows Microsoft Store win10-x64
win10-x86
win10-arm64
Windows Installer win-x86
Windows .zip win-x86

Packaging options for macOS and Linux should be discussed in separate issues.

Analytics for exceptions and page views

Vocup currently only tracks a few events using Matomo. Sadly, Matomo does not seem to be the best choice looking forward as its libraries are not maintained anymore, documentation often missing and tracking applications other than websites poorly supported.

Alternatives to Matomo to consider:

Save and practice in specific order

@megabugman proposed that Vocup should support saving and practicing words in a specific order. Changes at the file format are not required as JSON arrays are ordered but an additional id field could simplify ordering in Avalonia and other UI frameworks.

Exception report (with Dataloss)

(Reported via WhatsApp by rnbahner)

System.ArgumentOutOfRangeException: Der Index lag außerhalb des Bereichs. Er darf nicht negativ und kleiner als die Sammlung sein.
Parametername: index
   bei System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   bei Vocup.Forms.PracticeDialog..ctor(VocabularyBook book, List`1 practiceList)
   bei Vocup.program_form.vokabeln_üben()
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

attachment 1

Task asynchronous code does not work during startup or shutdown

Steps to reproduce:

  1. Start a long running task on application exit
  2. Let the message loop terminate
  3. Wait for the long running task to finish

Expected behavior:

  • The task finishes within a few seconds and the process exists

Actual behavior:

  • The task never finishes likely due to a deadlock

Additional context:

  • Making the Main method async does not fulfill Windows Forms' requirements of a single-threaded apartment
  • Using Application.Run() without a main form and the Application.Idle event for further initialization work might be an option

Crash when selecting an item in About list view

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentOutOfRangeException: InvalidArgument=Value of '3' is not valid for 'index'.
Parameter name: index
at System.Windows.Forms.ListViewItem.ListViewSubItemCollection.get_Item(Int32 index)
at Vocup.Forms.AboutBox.LwComponents_DoubleClick(Object sender, EventArgs e) in C:\Users\Daniel Lerch\source\vocup\src\Vocup\Forms\AboutBox.cs:line 66
at System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
at System.Windows.Forms.ListView.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Vocup
Assembly Version: 1.8.2.0
Win32 Version: 1.8.2.0
CodeBase: file:///D:/Vocup_1.8.2/Vocup.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Octokit
Assembly Version: 0.48.0.0
Win32 Version: 0.48.0.0
CodeBase: file:///D:/Vocup_1.8.2/Octokit.DLL
----------------------------------------
System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------

Add an option to question both mother tongue to foreign language and reverse randomly

Like the title says. Now you only have the option to translate from mother language to foreign language or the other way around. It would also be nice to have an option to do both options at once. So e.g. from English to French and French to English in the same run, asking words to translate from these options at random. This helps when it is needed to practice words in both directions.

Request updates of external websites

Several external websites provide mirrors to download Vocup. They have to be notified of the new release on Microsoft Store.

Site Informed (UWP) Informed (Classic) Updated
Computer Bild
PC-Welt
Softonic
Giga
Netzwelt

The help file is in a difficult format to maintain and in German only

As the title says, the help file is in a .chm format, which is a kindof old format and not very easy to maintain. In fact the help file contents is HTML which itself is much easier to maintain and keep up-to-date. Would like to hear your thoughts about this. Perheps an online HTML version is an option?

Building Problems with Visual Studio 2019

Hy
I tried to build the current avalonia branch. I have installed Visual Studio 2019 and opened the solution checked in.
Then I tried to build the debug version of the entire solution. The build failes with:

Ungültige ResX-Datei. Der angeforderte Wert "Ctrl" konnte nicht gefunden werden. Zeile 181, Position 5.	Vocup	

After that I tried to change the language to english. Now the following error occure:

No certificate found with the supplied thumbprint: 9C503A44C755504352901E2766267CEA3C7FAA82	Vocup.Packaging	C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets	826	

I hope that this not a stupid mistake on my side. I know how to program in C# but when it comes to GUIs and XAML, I am lost.

Long words or sentences are cut off

Vocup does not display long words or sentences correctly in PracticeDialog and PracticeResultList.

Making PracticeResultList a resizeable window should be sufficient in most cases and easy to implement. For PracticeDialog more work is required to add line breaks to the readonly TextBox and the evaluation message.

Linux support

Vocup should have limited support for Linux with v1.7.2 via Mono or Wine.

For native Linux and macOS support see #18.

Custom practice selection

Users should be able to select words to practice. An easy implementation could be done via search so that PracticeCountDialog shows an option to only use words which have been found by current query.

Add multi-line support for vocabularies

The new file format should support multi-lines(supported by json, therefore it would be possible to support multi-lines in vocabulary screens.
I know this is something that could be done with vocup 2.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.