diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 244 |
1 files changed, 244 insertions, 0 deletions
@@ -0,0 +1,244 @@ +FRESH MEMORY +http://fresh-memory.com +http://freshmemory.sourceforge.net + + +Fresh Memory is an education application for studying languages with Spaced Repetition method and flashcards. Its primary purpose is to study and repeat vocabulary of foreign languages. But other disciplines can be studied as well: history, geography, medicine, mathematics. The study material is stored as collections of flashcards. The flashcards may have several fields, and the user controls what combination of fields to learn. The flash cards can have formatted text and images. The look of flashcards and studying parameters are can be flexibly configured. + +Translations: Czech, Finnish, French, German, Russian, Spanish, Ukrainian + + +FEATURES +============================= + +* Efficient study method: Spaced Repetition +* Simple review of flashcards +* Mode for entering exact answer +* Flash cards are groupped into dictionaries, which are stored in separate files +* Import and export dictionaries from/to CSV files +* Shows studying statistics: studied, scheduled cards and current study progress +* Rich formatting of cards: colors, fonts and images +* Multi-sided flash cards: can have several fields +* Possibility to define combinations of used fields for studying +* Cards with the same question are automatically merged into one card +* Support Undo for dictionary modifications +* Editing and removing of cards directly from the study view +* Different card fields can have different styles: font and color +* Adjustable background color and fonts of the flash cards +* Automatic highlight of question keywords +* Configurable study parameters: random or sequential card show, different day limits +* Full support of Unicode (UTF-8): any international characters can be used. + + +TECHNICAL INFORMATION +============================= + +* Programming language: C++ +* User interface: Qt 5 +* External data storage: XML +* Settings format: INI + +Supported operating systems: + * Ubuntu Linux - available deb-package + * Windows XP/Vista/7/8/10 - available installer + + +RUN-TIME REQUIREMENTS +============================= + +No special requirements for memory and processor + +Linux: + * libqt4 >= 5.2 + * glibc + * openssl + +Windows: +(included in the installer) + * Qt >= 5.2 + * MinGW + * openssl + + +SOURCE CODE +============================= + +The source code is stored in Mercurial version control system. + +Clone Mercurial repository (read-only): + hg clone http://hg.code.sf.net/p/freshmemory/code freshmemory-code + +Browse source code online: + http://sourceforge.net/p/freshmemory/code + + +COMPILATION +============================= + +Ubuntu Linux requirements: + qt5-default + qtbase5-dev + qttools5-dev-tools + qttranslations5-l10n + g++ + libssl-dev + mercurial + +Windows requirements: + * Qt >= 5.2 + * MinGW (make, gcc) + * TortoiseHg + * Set QTDIR=C:\Qt\5.2.1 + +Compilation commands: + qmake + make + +The default compilation mode in is "release". To compile in debug mode, run qmake with debug configuration: + qmake -config debug + make + +Notes: + * qmake uses Mercurial to get the current revision number. It is displayed in the "About" dialog of Freshmemory. + If Mercurial is not installed, the compilation still succeeds, but the "About" dialog will have empty revision number. + * Windows: Compile in the Qt command prompt + + +INSTALLATION +============================= + +Requirements: + * "lrelease" (from Qt SDK) can be found in the PATH + +Run: + Linux: + sudo make install + + Windows: + qt-win\copy-qtdlls.bat + make install + +For Windows: "qt-win\copy-qtdlls.bat" copies needed Qt and MinGW dll's to qt-win directory. The "make install" then copies them to the installation directory. + +Known issues: +------------ +* Installation also generates the translation *.qm files with "lrelease". If "lrelease" cannot be found in the PATH, it is possible to manually generate the translations before running "make install": + lrelease freshmemory.pro + +* The "make install" doesn't work on Windows Vista/7. + There are 2 reasons: + - qmake can't install to paths with spaces on Win Vista/7 (e.g. "C:\Program Files). This however works normally on Win 2000/XP. + - the directory for system-wide application data is different on Win Vista/7 and Win 2000/XP. It is not possible to get this directory with one system variable on both platforms. This directory can be read from Windows registry, but qmake doesn't support it. + Workarounds: + 1. manually copy all needed installation files: + - freshmemory.exe C:\Program Files\Freshmemory + - qt-win\*.dll C:\Program Files\Freshmemory + - qt-win\imageformats\*.dll C:\Program Files\Freshmemory + - dictionaries C:\Program Files\Freshmemory\dictionaries + - tr\*.qm C:\Program Files\Freshmemory\tr + - config\freshmemory.ini C:\ProgramData\freshmemory\ + 2. generate installer package (from freshmemory.nsis) and install with it + 3. develop on Win 2000/XP instead of Win 2000/7. + + +UNINSTALLATION +============================= + +Run: + Linux: + sudo make uninstall + Windows: + make uninstall + +Known issues: +------------ +* Windows cannot correctly finish the uninstallation. MinGW doesn't recognize paths with spaces: + rm -r /cygdrive/c/Program Files/Freshmemory/dictionaries/chemical-elements.fmd + rm: cannot remove `/cygdrive/c/Program': No such file or directory + rm: cannot remove `Files/Freshmemory/dictionaries/chemical-elements.fmd': No such file or directory + + +BUILDING PACKAGES +============================ + +Read /packaging/packaging.txt about creation of installation packages: + - Linux deb-package + - Windows installer + + +LOCALIZATION +============================ + +Localization is implemented with usual Qt tools: Qt Linguist and .ts-files. + +During installation (make install), the binary .qm translations are automatically generated from .ts-files and copied to their destination: + - Linux: /usr/share/freshmemory/tr + - Windows: C:\Program Files\Freshmemory\tr + +Fresh Memory uses language strings defined with: + - Linux: LANG system variable. For example: LANG="ru_RU". + - Windows: current locale ("Format") set in the Control Panel. + +Known issues: +------------ +Windows: +* The correct language is not detected by the application, English text is shown instead. + Windows has three locale sets: keyboard, formats and display language. Qt library detects used language according to the "Format" locale, not "Display language" as it should be. For normal localized Windows systems this is not a problem - all locales are the same. The problem is visible if e.g. the display language in "English US" Windows is changed to another one. + Reason: some bug in the implementation of Qt library: QLocale::system(). Though, this problem can be seen with Gtk+ too (for example in Gimp). + Workaround: If you want to change language of Fresh Memory, change the "Format" locale (Dates, numbers) in Windows. + + +FILE ASSOCIATIONS +============================= + +The dictionaries (.fmd-files) are automatically registered to open with Freshmemory. They get the Freshmemory icon and description in the file properties. +A special MIME-type is registered for the dictionaries: application/x-fm-dictionary. + +The file association scripts are run on installation and uninstallation. +This is achieved with the following files depending on the platform: + +* Linux: + debian/freshmemory.desktop + images/freshmemory.png + debian/freshmemory.xml + debian/postinst + debian/prerm +* Windows: + freshmemory.rc + images/mainicon.ico + FileAssociation.nsh + freshmemory.nsi + +DOCUMENTATION +============================= + +User manual: fresh-memory.com/docs + + +BUGS AND FEEDBACK +============================= + +Bug tracker: + http://sourceforge.net/p/freshmemory/bugs/ + +Feature requests: + http://sourceforge.net/p/freshmemory/feature-requests/ + +Support requests: + http://sourceforge.net/p/freshmemory/support-requests/ + + +USAGE +============================ + +freshmemory [OPTIONS] [DICTIONARY] + +Argument: + DICTIONARY - a dictionary filename to be loaded. + +Options: + --version, -v Prints version information and quits. + --help, -h Prints help page and quits. + +On Windows, output to console is possible only in the debug version. + |