diff options
Diffstat (limited to 'klettres')
171 files changed, 3896 insertions, 0 deletions
diff --git a/klettres/AUTHORS b/klettres/AUTHORS new file mode 100644 index 00000000..25f799a8 --- /dev/null +++ b/klettres/AUTHORS @@ -0,0 +1,38 @@ +Anne-Marie Mahfouf <annma@kde.org> +Original idea, main developer and maintainer + +Ludovic Grossard +French sounds + +Geert Stams +Dutch sounds + +Erik Kjaer Pedersen +Danish sounds + +Eva Mikulčíková +Czech sounds + +Silvia Motyčková & Jozef Říha +Slovak sounds + +Alessandro Pasotti +Italian sounds + +Primoz Anzur +Original Icon + +Renaud Blanchard +Background picture + +Robert Gogolok +Support and coding guidance + +Chris Luetchford +svg icon + +Peter Hedlund +Code for generating special characters icons + +Waldo Bastian +Port to KConfig XT, coding help diff --git a/klettres/COPYING b/klettres/COPYING new file mode 100644 index 00000000..37ba36f1 --- /dev/null +++ b/klettres/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/klettres/ChangeLog b/klettres/ChangeLog new file mode 100644 index 00000000..52ca488f --- /dev/null +++ b/klettres/ChangeLog @@ -0,0 +1,22 @@ +29 April 2002 +- add "Look and Feel" menu that allow 2 different styles. Style "kid" has no MenuBar, has a kid background pic and a toolbar. +Style "grown-up" has a different background, a menuBar and a toolbar. +Buttons appear consequently in the 2 styles to allow menuBar and other style. + +28 April 2002 +- better internationalization +- i18n() the KLettres on the splash-screen +- suppress the sound with the splash-screen as it was too long +- add menubar, toolbar and statusbar, configurable using KAction +- settings allow to choose the language and the level from the menuBar and toolBar +- statusBar indicates level and language +- suppressed the .ui file +- fixed the bug in levels 3 & 4 (prevented upper-case letters and got it wrong in those 2 levels) + +25 February 2002 +- dutch sounds +- setup dialog for language +- if file or sound not found: warning +- cleaned code +- changed sounds from wav to mp3 + diff --git a/klettres/INSTALL b/klettres/INSTALL new file mode 100644 index 00000000..02a4a074 --- /dev/null +++ b/klettres/INSTALL @@ -0,0 +1,167 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Type `make install' to install the programs and any data files and + documentation. + + 4. You can remove the program binaries and object files from the + source code directory by typing `make clean'. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/klettres/Makefile.am b/klettres/Makefile.am new file mode 100644 index 00000000..fec74446 --- /dev/null +++ b/klettres/Makefile.am @@ -0,0 +1,13 @@ +####### kdevelop will overwrite this part!!! (begin)########## + +SUBDIRS = klettres + +EXTRA_DIST = klettres.kdevprj AUTHORS COPYING ChangeLog INSTALL README TODO klettres.lsm + +####### kdevelop will overwrite this part!!! (end)############ +# not a GNU package. You can remove this line, if +# have all needed files, that a GNU package needs +AUTOMAKE_OPTIONS = foreign + + +include ../admin/Doxyfile.am diff --git a/klettres/TODO b/klettres/TODO new file mode 100644 index 00000000..c0f9cc70 --- /dev/null +++ b/klettres/TODO @@ -0,0 +1,3 @@ +APRIL 2005 + +- fix backspace key problem
\ No newline at end of file diff --git a/klettres/klettres.lsm b/klettres/klettres.lsm new file mode 100644 index 00000000..46729874 --- /dev/null +++ b/klettres/klettres.lsm @@ -0,0 +1,14 @@ +Begin3 +Title: KLettres +Version: 0.2 +Entered-date: +Description: +Keywords: +Author: Anne-Marie Mahfouf <annma@kde.org> +Maintained-by: Anne-Marie Mahfouf <annma@kde.org> +Primary-site: +Home-page: http://edu.kde.org/klettres +Original-site: +Platforms: Linux and other Unices +Copying-policy: GNU Public License +End diff --git a/klettres/klettres/Makefile.am b/klettres/klettres/Makefile.am new file mode 100644 index 00000000..46b1c832 --- /dev/null +++ b/klettres/klettres/Makefile.am @@ -0,0 +1,59 @@ +####### kdevelop will overwrite this part!!! (begin)########## +bin_PROGRAMS = klettres + +## INCLUDES were found outside kdevelop specific part + +klettres_SOURCES = fontsdlg.ui klettres.cpp klnewstuff.cpp main.cpp klettresview.cpp soundfactory.cpp prefs.kcfgc timerdlg.ui timer.cpp +klettres_LDADD = $(LIB_KDEUI) -lknewstuff + +SUBDIRS = pics data icons + +xdg_apps_DATA = klettres.desktop +kde_kcfg_DATA = klettres.kcfg +kde_conf_DATA = klettresrc + +appdir = $(kde_datadir)/klettres +app_DATA = klettresui.rc + +####### kdevelop will overwrite this part!!! (end)############ +# set the include path for X, qt and KDE +INCLUDES= $(all_includes) + +METASOURCES = AUTO + +KDE_ICON = AUTO + +# the library search path. +klettres_LDFLAGS = $(all_libraries) $(KDE_RPATH) + +messages: rc.cpp + $(XGETTEXT) *.cpp -o $(podir)/klettres.pot; + +LANGS = fr en +SUBS = alpha syllab + +xmlen_DATA = en/sounds.xml +xmlendir = $(kde_datadir)/klettres/en + +xmlfr_DATA = fr/sounds.xml +xmlfrdir = $(kde_datadir)/klettres/fr + +install-data-local: + @for lang in $(LANGS); do \ + for sub in $(SUBS); do \ + $(mkinstalldirs) $(DESTDIR)$(kde_datadir)/klettres/$$lang/$$sub ;\ + list=`cd $(srcdir)/$$lang/$$sub && ls -1d *` ;\ + for file in $$list; do \ + if test -f $(srcdir)/$$lang/$$sub/$$file; then \ + echo $(INSTALL_DATA) $(srcdir)/$$lang/$$sub/$$file $(DESTDIR)$(kde_datadir)/klettres/$$lang/$$sub/$$file ;\ + $(INSTALL_DATA) $(srcdir)/$$lang/$$sub/$$file $(DESTDIR)$(kde_datadir)/klettres/$$lang/$$sub/$$file ;\ + fi ;\ + done ;\ + done ;\ + done + +uninstall-local: + for lang in $(LANGS); do \ + rm -rf $(DESTDIR)$(kde_datadir)/klettres/$$lang ;\ + done + diff --git a/klettres/klettres/data/Makefile.am b/klettres/klettres/data/Makefile.am new file mode 100644 index 00000000..5c8b00e6 --- /dev/null +++ b/klettres/klettres/data/Makefile.am @@ -0,0 +1,6 @@ +SUBDIRS = $(AUTODIRS) +xml_DATA = sounds.xml +xmldir = $(kde_datadir)/klettres/data + + + diff --git a/klettres/klettres/data/langs/Makefile.am b/klettres/klettres/data/langs/Makefile.am new file mode 100644 index 00000000..6f39922b --- /dev/null +++ b/klettres/klettres/data/langs/Makefile.am @@ -0,0 +1,2 @@ +txt_DATA=cs.txt da.txt sk.txt es.txt de.txt nds.txt +txtdir=$(kde_datadir)/klettres diff --git a/klettres/klettres/data/langs/cs.txt b/klettres/klettres/data/langs/cs.txt new file mode 100644 index 00000000..7f78811e --- /dev/null +++ b/klettres/klettres/data/langs/cs.txt @@ -0,0 +1,7 @@ +Á +Č +Ď +Ř +Š +Ť +Ž
\ No newline at end of file diff --git a/klettres/klettres/data/langs/da.txt b/klettres/klettres/data/langs/da.txt new file mode 100644 index 00000000..899e8cb2 --- /dev/null +++ b/klettres/klettres/data/langs/da.txt @@ -0,0 +1,3 @@ +Å +Æ +Ø
\ No newline at end of file diff --git a/klettres/klettres/data/langs/de.txt b/klettres/klettres/data/langs/de.txt new file mode 100644 index 00000000..8300c35a --- /dev/null +++ b/klettres/klettres/data/langs/de.txt @@ -0,0 +1,4 @@ +Ä +Ö +Ü +ß
\ No newline at end of file diff --git a/klettres/klettres/data/langs/es.txt b/klettres/klettres/data/langs/es.txt new file mode 100644 index 00000000..d8cd5ed1 --- /dev/null +++ b/klettres/klettres/data/langs/es.txt @@ -0,0 +1,2 @@ +Ñ +Ü
\ No newline at end of file diff --git a/klettres/klettres/data/langs/nds.txt b/klettres/klettres/data/langs/nds.txt new file mode 100644 index 00000000..455b2a2b --- /dev/null +++ b/klettres/klettres/data/langs/nds.txt @@ -0,0 +1,4 @@ +Ä +Ö +Ü +ß diff --git a/klettres/klettres/data/langs/sk.txt b/klettres/klettres/data/langs/sk.txt new file mode 100644 index 00000000..9ae15968 --- /dev/null +++ b/klettres/klettres/data/langs/sk.txt @@ -0,0 +1,16 @@ +Á +Ä +Č +Ď +É +Í +Ĺ +Ľ +Ň +Ó +Ô +Ŕ +Š +Ť +Ú +Ž
\ No newline at end of file diff --git a/klettres/klettres/data/sounds.xml b/klettres/klettres/data/sounds.xml new file mode 100644 index 00000000..2b3650d4 --- /dev/null +++ b/klettres/klettres/data/sounds.xml @@ -0,0 +1,878 @@ +<!-- + KDE EDU KLettres + + Thanks to Eric Bischoff (KTuberling) + + Modify this file if you want to add new sounds + or modify existing ones. + + IMPORTANT: when you modify this file, save it using kwrite or kate with Save as and choose + utf8 in the encoding combobox on the right of the file title. +--> + +<klettres> + +<language code="cs"> + + <menuitem> + <label>&Czech</label> + </menuitem> + + <alphabet> + <sound name="A" file="cs/alpha/a-0.ogg" /> + <sound name="B" file="cs/alpha/a-1.ogg" /> + <sound name="C" file="cs/alpha/a-2.ogg" /> + <sound name="D" file="cs/alpha/a-3.ogg" /> + <sound name="E" file="cs/alpha/a-4.ogg" /> + <sound name="F" file="cs/alpha/a-5.ogg" /> + <sound name="G" file="cs/alpha/a-6.ogg" /> + <sound name="H" file="cs/alpha/a-7.ogg" /> + <sound name="I" file="cs/alpha/a-8.ogg" /> + <sound name="J" file="cs/alpha/a-9.ogg" /> + <sound name="K" file="cs/alpha/a-10.ogg" /> + <sound name="L" file="cs/alpha/a-11.ogg" /> + <sound name="M" file="cs/alpha/a-12.ogg" /> + <sound name="N" file="cs/alpha/a-13.ogg" /> + <sound name="O" file="cs/alpha/a-14.ogg" /> + <sound name="P" file="cs/alpha/a-15.ogg" /> + <sound name="Q" file="cs/alpha/a-16.ogg" /> + <sound name="R" file="cs/alpha/a-17.ogg" /> + <sound name="S" file="cs/alpha/a-18.ogg" /> + <sound name="T" file="cs/alpha/a-19.ogg" /> + <sound name="U" file="cs/alpha/a-20.ogg" /> + <sound name="V" file="cs/alpha/a-21.ogg" /> + <sound name="W" file="cs/alpha/a-22.ogg" /> + <sound name="X" file="cs/alpha/a-23.ogg" /> + <sound name="Y" file="cs/alpha/a-24.ogg" /> + <sound name="Z" file="cs/alpha/a-25.ogg" /> + <sound name="Š" file="cs/alpha/a-26.ogg" /> + <sound name="Ť" file="cs/alpha/a-27.ogg" /> + <sound name="Ž" file="cs/alpha/a-28.ogg" /> + <sound name="Č" file="cs/alpha/a-29.ogg" /> + <sound name="Ď" file="cs/alpha/a-30.ogg" /> + <sound name="Ř" file="cs/alpha/a-31.ogg" /> + </alphabet> + + <syllables> + <sound name="BA" file="cs/syllab/ad-0.ogg" /> + <sound name="DO" file="cs/syllab/ad-1.ogg" /> + <sound name="KA" file="cs/syllab/ad-2.ogg" /> + <sound name="KO" file="cs/syllab/ad-3.ogg" /> + <sound name="LE" file="cs/syllab/ad-4.ogg" /> + <sound name="MÁ" file="cs/syllab/ad-5.ogg" /> + <sound name="ME" file="cs/syllab/ad-6.ogg" /> + <sound name="NE" file="cs/syllab/ad-7.ogg" /> + <sound name="NO" file="cs/syllab/ad-8.ogg" /> + <sound name="PI" file="cs/syllab/ad-9.ogg" /> + <sound name="ŘE" file="cs/syllab/ad-10.ogg" /> + <sound name="SE" file="cs/syllab/ad-11.ogg" /> + <sound name="SI" file="cs/syllab/ad-12.ogg" /> + <sound name="TA" file="cs/syllab/ad-13.ogg" /> + <sound name="TE" file="cs/syllab/ad-14.ogg" /> + <sound name="TO" file="cs/syllab/ad-15.ogg" /> + <sound name="TU" file="cs/syllab/ad-16.ogg" /> + <sound name="ZE" file="cs/syllab/ad-17.ogg" /> + </syllables> + + </language> + +<language code="da"> + + <menuitem> + <label>&Danish</label> + </menuitem> + <alphabet> + <sound name="A" file="da/alpha/a-0.ogg" /> + <sound name="B" file="da/alpha/a-1.ogg" /> + <sound name="C" file="da/alpha/a-2.ogg" /> + <sound name="D" file="da/alpha/a-3.ogg" /> + <sound name="E" file="da/alpha/a-4.ogg" /> + <sound name="F" file="da/alpha/a-5.ogg" /> + <sound name="G" file="da/alpha/a-6.ogg" /> + <sound name="H" file="da/alpha/a-7.ogg" /> + <sound name="I" file="da/alpha/a-8.ogg" /> + <sound name="J" file="da/alpha/a-9.ogg" /> + <sound name="K" file="da/alpha/a-10.ogg" /> + <sound name="L" file="da/alpha/a-11.ogg" /> + <sound name="M" file="da/alpha/a-12.ogg" /> + <sound name="N" file="da/alpha/a-13.ogg" /> + <sound name="O" file="da/alpha/a-14.ogg" /> + <sound name="P" file="da/alpha/a-15.ogg" /> + <sound name="Q" file="da/alpha/a-16.ogg" /> + <sound name="R" file="da/alpha/a-17.ogg" /> + <sound name="S" file="da/alpha/a-18.ogg" /> + <sound name="T" file="da/alpha/a-19.ogg" /> + <sound name="U" file="da/alpha/a-20.ogg" /> + <sound name="V" file="da/alpha/a-21.ogg" /> + <sound name="W" file="da/alpha/a-22.ogg" /> + <sound name="X" file="da/alpha/a-23.ogg" /> + <sound name="Y" file="da/alpha/a-24.ogg" /> + <sound name="Z" file="da/alpha/a-25.ogg" /> + <sound name="Æ" file="da/alpha/a-26.ogg" /> + <sound name="Ø" file="da/alpha/a-27.ogg" /> + <sound name="Å" file="da/alpha/a-28.ogg" /> + </alphabet> + + <syllables> + <sound name="AD" file="da/syllab/ad-0.ogg" /> + <sound name="BE" file="da/syllab/ad-1.ogg" /> + <sound name="BÅ" file="da/syllab/ad-2.ogg" /> + <sound name="DA" file="da/syllab/ad-3.ogg" /> + <sound name="DY" file="da/syllab/ad-4.ogg" /> + <sound name="EN" file="da/syllab/ad-5.ogg" /> + <sound name="ER" file="da/syllab/ad-6.ogg" /> + <sound name="ET" file="da/syllab/ad-7.ogg" /> + <sound name="ES" file="da/syllab/ad-8.ogg" /> + <sound name="FO" file="da/syllab/ad-9.ogg" /> + <sound name="GA" file="da/syllab/ad-10.ogg" /> + <sound name="HU" file="da/syllab/ad-11.ogg" /> + <sound name="HØ" file="da/syllab/ad-12.ogg" /> + <sound name="IN" file="da/syllab/ad-13.ogg" /> + <sound name="LE" file="da/syllab/ad-14.ogg" /> + <sound name="ME" file="da/syllab/ad-15.ogg" /> + <sound name="MO" file="da/syllab/ad-16.ogg" /> + <sound name="MU" file="da/syllab/ad-17.ogg" /> + <sound name="NY" file="da/syllab/ad-18.ogg" /> + <sound name="OG" file="da/syllab/ad-19.ogg" /> + <sound name="OM" file="da/syllab/ad-20.ogg" /> + <sound name="OP" file="da/syllab/ad-21.ogg" /> + <sound name="RE" file="da/syllab/ad-22.ogg" /> + <sound name="TE" file="da/syllab/ad-23.ogg" /> + <sound name="UD" file="da/syllab/ad-24.ogg" /> + <sound name="VI" file="da/syllab/ad-25.ogg" /> + <sound name="VÆ" file="da/syllab/ad-26.ogg" /> + <sound name="ÅR" file="da/syllab/ad-27.ogg" /> + </syllables> + + </language> + + <language code="en"> + <menuitem> + <label>&English</label> + </menuitem> + + <alphabet> + <sound name="A" file="en/alpha/A.ogg" /> + <sound name="B" file="en/alpha/B.ogg" /> + <sound name="C" file="en/alpha/C.ogg" /> + <sound name="D" file="en/alpha/D.ogg" /> + <sound name="E" file="en/alpha/E.ogg" /> + <sound name="F" file="en/alpha/F.ogg" /> + <sound name="G" file="en/alpha/G.ogg" /> + <sound name="H" file="en/alpha/H.ogg" /> + <sound name="I" file="en/alpha/I.ogg" /> + <sound name="J" file="en/alpha/J.ogg" /> + <sound name="K" file="en/alpha/K.ogg" /> + <sound name="L" file="en/alpha/L.ogg" /> + <sound name="M" file="en/alpha/M.ogg" /> + <sound name="N" file="en/alpha/N.ogg" /> + <sound name="O" file="en/alpha/O.ogg" /> + <sound name="P" file="en/alpha/P.ogg" /> + <sound name="Q" file="en/alpha/Q.ogg" /> + <sound name="R" file="en/alpha/R.ogg" /> + <sound name="S" file="en/alpha/S.ogg" /> + <sound name="T" file="en/alpha/T.ogg" /> + <sound name="U" file="en/alpha/U.ogg" /> + <sound name="V" file="en/alpha/V.ogg" /> + <sound name="W" file="en/alpha/W.ogg" /> + <sound name="X" file="en/alpha/X.ogg" /> + <sound name="Y" file="en/alpha/Y.ogg" /> + <sound name="Z" file="en/alpha/Z.ogg" /> + </alphabet> + + <syllables> + <sound name="AR" file="en/syllab/ar.ogg" /> + <sound name="AW" file="en/syllab/aw.ogg" /> + <sound name="CAR" file="en/syllab/car.ogg" /> + <sound name="DOG" file="en/syllab/dog.ogg" /> + <sound name="FIX" file="en/syllab/fix.ogg" /> + <sound name="GAS" file="en/syllab/gas.ogg" /> + <sound name="GEM" file="en/syllab/gem.ogg" /> + <sound name="HOT" file="en/syllab/hot.ogg" /> + <sound name="JET" file="en/syllab/jet.ogg" /> + <sound name="KEY" file="en/syllab/key.ogg" /> + <sound name="ME" file="en/syllab/me.ogg" /> + <sound name="MY" file="en/syllab/my.ogg" /> + <sound name="NO" file="en/syllab/no.ogg" /> + <sound name="PET" file="en/syllab/pet.ogg" /> + <sound name="SAW" file="en/syllab/saw.ogg" /> + <sound name="SAY" file="en/syllab/say.ogg" /> + <sound name="SIT" file="en/syllab/sit.ogg" /> + <sound name="SKY" file="en/syllab/sky.ogg" /> + <sound name="TH" file="en/syllab/th.ogg" /> + </syllables> + + </language> + + <language code="fr"> + + <menuitem> + <label>&French</label> + </menuitem> + <alphabet> + <sound name="A" file="fr/alpha/a-0.ogg" /> + <sound name="B" file="fr/alpha/a-1.ogg" /> + <sound name="C" file="fr/alpha/a-2.ogg" /> + <sound name="D" file="fr/alpha/a-3.ogg" /> + <sound name="E" file="fr/alpha/a-4.ogg" /> + <sound name="F" file="fr/alpha/a-5.ogg" /> + <sound name="G" file="fr/alpha/a-6.ogg" /> + <sound name="H" file="fr/alpha/a-7.ogg" /> + <sound name="I" file="fr/alpha/a-8.ogg" /> + <sound name="J" file="fr/alpha/a-9.ogg" /> + <sound name="K" file="fr/alpha/a-10.ogg" /> + <sound name="L" file="fr/alpha/a-11.ogg" /> + <sound name="M" file="fr/alpha/a-12.ogg" /> + <sound name="N" file="fr/alpha/a-13.ogg" /> + <sound name="O" file="fr/alpha/a-14.ogg" /> + <sound name="P" file="fr/alpha/a-15.ogg" /> + <sound name="Q" file="fr/alpha/a-16.ogg" /> + <sound name="R" file="fr/alpha/a-17.ogg" /> + <sound name="S" file="fr/alpha/a-18.ogg" /> + <sound name="T" file="fr/alpha/a-19.ogg" /> + <sound name="U" file="fr/alpha/a-20.ogg" /> + <sound name="V" file="fr/alpha/a-21.ogg" /> + <sound name="W" file="fr/alpha/a-22.ogg" /> + <sound name="X" file="fr/alpha/a-23.ogg" /> + <sound name="Y" file="fr/alpha/a-24.ogg" /> + <sound name="Z" file="fr/alpha/a-25.ogg" /> + </alphabet> + + <syllables> + <sound name="LA" file="fr/syllab/ad-0.ogg" /> + <sound name="LE" file="fr/syllab/ad-1.ogg" /> + <sound name="LI" file="fr/syllab/ad-2.ogg" /> + <sound name="LO" file="fr/syllab/ad-3.ogg" /> + <sound name="LU" file="fr/syllab/ad-4.ogg" /> + <sound name="DE" file="fr/syllab/ad-5.ogg" /> + <sound name="DA" file="fr/syllab/ad-6.ogg" /> + <sound name="DI" file="fr/syllab/ad-7.ogg" /> + <sound name="DO" file="fr/syllab/ad-8.ogg" /> + <sound name="DU" file="fr/syllab/ad-9.ogg" /> + <sound name="ME" file="fr/syllab/ad-10.ogg" /> + <sound name="MA" file="fr/syllab/ad-11.ogg" /> + <sound name="MO" file="fr/syllab/ad-12.ogg" /> + <sound name="MI" file="fr/syllab/ad-13.ogg" /> + <sound name="MU" file="fr/syllab/ad-14.ogg" /> + <sound name="RA" file="fr/syllab/ad-15.ogg" /> + <sound name="RE" file="fr/syllab/ad-16.ogg" /> + <sound name="RI" file="fr/syllab/ad-17.ogg" /> + <sound name="RO" file="fr/syllab/ad-18.ogg" /> + <sound name="RU" file="fr/syllab/ad-19.ogg" /> + <sound name="PO" file="fr/syllab/ad-20.ogg" /> + <sound name="PA" file="fr/syllab/ad-21.ogg" /> + <sound name="PI" file="fr/syllab/ad-22.ogg" /> + <sound name="PU" file="fr/syllab/ad-23.ogg" /> + <sound name="SA" file="fr/syllab/ad-24.ogg" /> + <sound name="SI" file="fr/syllab/ad-25.ogg" /> + <sound name="SO" file="fr/syllab/ad-26.ogg" /> + <sound name="SU" file="fr/syllab/ad-27.ogg" /> + </syllables> + + </language> + + + <language code="nl"> + + <menuitem> + <label>D&utch</label> + </menuitem> + + <alphabet> + <sound name="A" file="nl/alpha/a-0.ogg" /> + <sound name="B" file="nl/alpha/a-1.ogg" /> + <sound name="D" file="nl/alpha/a-2.ogg" /> + <sound name="E" file="nl/alpha/a-3.ogg" /> + <sound name="F" file="nl/alpha/a-4.ogg" /> + <sound name="G" file="nl/alpha/a-5.ogg" /> + <sound name="H" file="nl/alpha/a-6.ogg" /> + <sound name="I" file="nl/alpha/a-7.ogg" /> + <sound name="J" file="nl/alpha/a-8.ogg" /> + <sound name="K" file="nl/alpha/a-9.ogg" /> + <sound name="L" file="nl/alpha/a-10.ogg" /> + <sound name="M" file="nl/alpha/a-11.ogg" /> + <sound name="N" file="nl/alpha/a-12.ogg" /> + <sound name="O" file="nl/alpha/a-13.ogg" /> + <sound name="P" file="nl/alpha/a-14.ogg" /> + <sound name="R" file="nl/alpha/a-15.ogg" /> + <sound name="S" file="nl/alpha/a-16.ogg" /> + <sound name="T" file="nl/alpha/a-17.ogg" /> + <sound name="U" file="nl/alpha/a-18.ogg" /> + <sound name="V" file="nl/alpha/a-19.ogg" /> + <sound name="W" file="nl/alpha/a-20.ogg" /> + <sound name="Z" file="nl/alpha/a-21.ogg" /> + </alphabet> + <syllables> + <sound name="AA" file="nl/syllab/ad-0.ogg" /> + <sound name="AAN" file="nl/syllab/ad-1.ogg" /> + <sound name="AAP" file="nl/syllab/ad-2.ogg" /> + <sound name="EE" file="nl/syllab/ad-3.ogg" /> + <sound name="EEN" file="nl/syllab/ad-4.ogg" /> + <sound name="EET" file="nl/syllab/ad-5.ogg" /> + <sound name="EI" file="nl/syllab/ad-6.ogg" /> + <sound name="EN" file="nl/syllab/ad-7.ogg" /> + <sound name="EU" file="nl/syllab/ad-8.ogg" /> + <sound name="IE" file="nl/syllab/ad-9.ogg" /> + <sound name="IK" file="nl/syllab/ad-10.ogg" /> + <sound name="IN" file="nl/syllab/ad-11.ogg" /> + <sound name="IS" file="nl/syllab/ad-12.ogg" /> + <sound name="ME" file="nl/syllab/ad-13.ogg" /> + <sound name="OE" file="nl/syllab/ad-14.ogg" /> + <sound name="OM" file="nl/syllab/ad-15.ogg" /> + <sound name="OO" file="nl/syllab/ad-16.ogg" /> + <sound name="OOG" file="nl/syllab/ad-17.ogg" /> + <sound name="OOM" file="nl/syllab/ad-18.ogg" /> + <sound name="OOR" file="nl/syllab/ad-19.ogg" /> + <sound name="OP" file="nl/syllab/ad-20.ogg" /> + <sound name="TE" file="nl/syllab/ad-21.ogg" /> + <sound name="UI" file="nl/syllab/ad-22.ogg" /> + <sound name="UU" file="nl/syllab/ad-23.ogg" /> + <sound name="UUR" file="nl/syllab/ad-24.ogg" /> + <sound name="YS" file="nl/syllab/ad-25.ogg" /> + </syllables> + + </language> + + + <language code="sk"> + + <menuitem> + <label>&Slovak</label> + </menuitem> + + <alphabet> + <sound name="A" file="sk/alpha/a-0.ogg" /> + <sound name="Á" file="sk/alpha/a-1.ogg" /> + <sound name="Ä" file="sk/alpha/a-2.ogg" /> + <sound name="B" file="sk/alpha/a-3.ogg" /> + <sound name="C" file="sk/alpha/a-4.ogg" /> + <sound name="Č" file="sk/alpha/a-5.ogg" /> + <sound name="D" file="sk/alpha/a-6.ogg" /> + <sound name="Ď" file="sk/alpha/a-7.ogg" /> + <sound name="E" file="sk/alpha/a-8.ogg" /> + <sound name="É" file="sk/alpha/a-9.ogg" /> + <sound name="F" file="sk/alpha/a-10.ogg" /> + <sound name="G" file="sk/alpha/a-11.ogg" /> + <sound name="H" file="sk/alpha/a-12.ogg" /> + <sound name="I" file="sk/alpha/a-14.ogg" /> + <sound name="Í" file="sk/alpha/a-15.ogg" /> + <sound name="J" file="sk/alpha/a-16.ogg" /> + <sound name="K" file="sk/alpha/a-17.ogg" /> + <sound name="L" file="sk/alpha/a-18.ogg" /> + <sound name="Ĺ" file="sk/alpha/a-19.ogg" /> + <sound name="Ľ" file="sk/alpha/a-20.ogg" /> + <sound name="M" file="sk/alpha/a-21.ogg" /> + <sound name="N" file="sk/alpha/a-22.ogg" /> + <sound name="Ň" file="sk/alpha/a-23.ogg" /> + <sound name="O" file="sk/alpha/a-24.ogg" /> + <sound name="Ó" file="sk/alpha/a-25.ogg" /> + <sound name="Ô" file="sk/alpha/a-26.ogg" /> + <sound name="P" file="sk/alpha/a-27.ogg" /> + <sound name="Q" file="sk/alpha/a-28.ogg" /> + <sound name="R" file="sk/alpha/a-29.ogg" /> + <sound name="Ŕ" file="sk/alpha/a-30.ogg" /> + <sound name="S" file="sk/alpha/a-31.ogg" /> + <sound name="Š" file="sk/alpha/a-32.ogg" /> + <sound name="T" file="sk/alpha/a-33.ogg" /> + <sound name="Ť" file="sk/alpha/a-34.ogg" /> + <sound name="U" file="sk/alpha/a-35.ogg" /> + <sound name="Ú" file="sk/alpha/a-36.ogg" /> + <sound name="V" file="sk/alpha/a-37.ogg" /> + <sound name="X" file="sk/alpha/a-38.ogg" /> + <sound name="Y" file="sk/alpha/a-39.ogg" /> + <sound name="Z" file="sk/alpha/a-40.ogg" /> + <sound name="Ž" file="sk/alpha/a-41.ogg" /> + </alphabet> + + <syllables> + <sound name="AJ" file="sk/syllab/ad-0.ogg" /> + <sound name="BA" file="sk/syllab/ad-1.ogg" /> + <sound name="BU" file="sk/syllab/ad-2.ogg" /> + <sound name="ČA" file="sk/syllab/ad-3.ogg" /> + <sound name="ČE" file="sk/syllab/ad-4.ogg" /> + <sound name="CI" file="sk/syllab/ad-5.ogg" /> + <sound name="CO" file="sk/syllab/ad-6.ogg" /> + <sound name="DA" file="sk/syllab/ad-7.ogg" /> + <sound name="ĎA" file="sk/syllab/ad-8.ogg" /> + <sound name="ĎO" file="sk/syllab/ad-9.ogg" /> + <sound name="DO" file="sk/syllab/ad-10.ogg" /> + <sound name="DZ" file="sk/syllab/ad-11.ogg" /> + <sound name="EJ" file="sk/syllab/ad-12.ogg" /> + <sound name="FA" file="sk/syllab/ad-13.ogg" /> + <sound name="FU" file="sk/syllab/ad-14.ogg" /> + <sound name="GA" file="sk/syllab/ad-15.ogg" /> + <sound name="GU" file="sk/syllab/ad-16.ogg" /> + <sound name="HA" file="sk/syllab/ad-17.ogg" /> + <sound name="HU" file="sk/syllab/ad-18.ogg" /> + <sound name="IA" file="sk/syllab/ad-19.ogg" /> + <sound name="IE" file="sk/syllab/ad-20.ogg" /> + <sound name="IU" file="sk/syllab/ad-21.ogg" /> + <sound name="JA" file="sk/syllab/ad-22.ogg" /> + <sound name="JAJ" file="sk/syllab/ad-23.ogg" /> + <sound name="JE" file="sk/syllab/ad-24.ogg" /> + <sound name="JEJ" file="sk/syllab/ad-25.ogg" /> + <sound name="JO" file="sk/syllab/ad-26.ogg" /> + <sound name="JOJ" file="sk/syllab/ad-27.ogg" /> + <sound name="JUJ" file="sk/syllab/ad-28.ogg" /> + <sound name="JÚ" file="sk/syllab/ad-29.ogg" /> + <sound name="KA" file="sk/syllab/ad-30.ogg" /> + <sound name="KO" file="sk/syllab/ad-31.ogg" /> + <sound name="LA" file="sk/syllab/ad-32.ogg" /> + <sound name="LÁ" file="sk/syllab/ad-33.ogg" /> + <sound name="LÉ" file="sk/syllab/ad-34.ogg" /> + <sound name="ĽA" file="sk/syllab/ad-35.ogg" /> + <sound name="ĽU" file="sk/syllab/ad-36.ogg" /> + <sound name="LU" file="sk/syllab/ad-37.ogg" /> + <sound name="LÚ" file="sk/syllab/ad-38.ogg" /> + <sound name="MA" file="sk/syllab/ad-40.ogg" /> + <sound name="MÁ" file="sk/syllab/ad-41.ogg" /> + <sound name="MÁME" file="sk/syllab/ad-42.ogg" /> + <sound name="MAME" file="sk/syllab/ad-43.ogg" /> + <sound name="ME" file="sk/syllab/ad-44.ogg" /> + <sound name="MÉ" file="sk/syllab/ad-45.ogg" /> + <sound name="MI" file="sk/syllab/ad-46.ogg" /> + <sound name="MÍ" file="sk/syllab/ad-47.ogg" /> + <sound name="MO" file="sk/syllab/ad-48.ogg" /> + <sound name="MU" file="sk/syllab/ad-49.ogg" /> + <sound name="MÚ" file="sk/syllab/ad-50.ogg" /> + <sound name="NA" file="sk/syllab/ad-51.ogg" /> + <sound name="ŇA" file="sk/syllab/ad-52.ogg" /> + <sound name="ŇU" file="sk/syllab/ad-53.ogg" /> + <sound name="NO" file="sk/syllab/ad-54.ogg" /> + <sound name="OJ" file="sk/syllab/ad-55.ogg" /> + <sound name="OU" file="sk/syllab/ad-56.ogg" /> + <sound name="PÍ" file="sk/syllab/ad-57.ogg" /> + <sound name="RA" file="sk/syllab/ad-58.ogg" /> + <sound name="RU" file="sk/syllab/ad-59.ogg" /> + <sound name="SA" file="sk/syllab/ad-60.ogg" /> + <sound name="SE" file="sk/syllab/ad-61.ogg" /> + <sound name="SI" file="sk/syllab/ad-62.ogg" /> + <sound name="SO" file="sk/syllab/ad-63.ogg" /> + <sound name="ŠA" file="sk/syllab/ad-64.ogg" /> + <sound name="ŠI" file="sk/syllab/ad-65.ogg" /> + <sound name="SÚ" file="sk/syllab/ad-66.ogg" /> + <sound name="TO" file="sk/syllab/ad-67.ogg" /> + <sound name="ŤA" file="sk/syllab/ad-68.ogg" /> + <sound name="ŤU" file="sk/syllab/ad-69.ogg" /> + <sound name="TU" file="sk/syllab/ad-70.ogg" /> + <sound name="VA" file="sk/syllab/ad-71.ogg" /> + <sound name="VE" file="sk/syllab/ad-72.ogg" /> + <sound name="VI" file="sk/syllab/ad-73.ogg" /> + <sound name="VO" file="sk/syllab/ad-74.ogg" /> + <sound name="VU" file="sk/syllab/ad-75.ogg" /> + <sound name="ŽA" file="sk/syllab/ad-76.ogg" /> + <sound name="ŽI" file="sk/syllab/ad-77.ogg" /> + </syllables> + + </language> + + <language code="it"> + + <menuitem> + <label>&Italian</label> + </menuitem> + + <alphabet> + <sound name="A" file="it/alpha/a.ogg" /> + <sound name="B" file="it/alpha/b.ogg" /> + <sound name="C" file="it/alpha/c.ogg" /> + <sound name="D" file="it/alpha/d.ogg" /> + <sound name="E" file="it/alpha/e.ogg" /> + <sound name="F" file="it/alpha/f.ogg" /> + <sound name="G" file="it/alpha/d.ogg" /> + <sound name="H" file="it/alpha/h.ogg" /> + <sound name="I" file="it/alpha/i.ogg" /> + <sound name="J" file="it/alpha/j.ogg" /> + <sound name="K" file="it/alpha/k.ogg" /> + <sound name="L" file="it/alpha/l.ogg" /> + <sound name="M" file="it/alpha/m.ogg" /> + <sound name="N" file="it/alpha/n.ogg" /> + <sound name="O" file="it/alpha/o.ogg" /> + <sound name="P" file="it/alpha/p.ogg" /> + <sound name="Q" file="it/alpha/q.ogg" /> + <sound name="R" file="it/alpha/r.ogg" /> + <sound name="S" file="it/alpha/s.ogg" /> + <sound name="T" file="it/alpha/t.ogg" /> + <sound name="U" file="it/alpha/u.ogg" /> + <sound name="W" file="it/alpha/w.ogg" /> + <sound name="X" file="it/alpha/x.ogg" /> + <sound name="Y" file="it/alpha/y.ogg" /> + <sound name="Z" file="it/alpha/z.ogg" /> + </alphabet> + + <syllables> + <sound name="BA" file="it/syllab/ba.ogg" /> + <sound name="BE" file="it/syllab/be.ogg" /> + <sound name="BI" file="it/syllab/bi.ogg" /> + <sound name="BO" file="it/syllab/bo.ogg" /> + <sound name="BU" file="it/syllab/bu.ogg" /> + <sound name="CA" file="it/syllab/ca.ogg" /> + <sound name="CE" file="it/syllab/ce.ogg" /> + <sound name="CI" file="it/syllab/ci.ogg" /> + <sound name="CO" file="it/syllab/co.ogg" /> + <sound name="CU" file="it/syllab/cu.ogg" /> + <sound name="DA" file="it/syllab/da.ogg" /> + <sound name="DE" file="it/syllab/de.ogg" /> + <sound name="DI" file="it/syllab/di.ogg" /> + <sound name="DO" file="it/syllab/do.ogg" /> + <sound name="DU" file="it/syllab/du.ogg" /> + <sound name="FA" file="it/syllab/fa.ogg" /> + <sound name="FE" file="it/syllab/fe.ogg" /> + <sound name="FI" file="it/syllab/fi.ogg" /> + <sound name="FO" file="it/syllab/fo.ogg" /> + <sound name="GA" file="it/syllab/ga.ogg" /> + <sound name="GE" file="it/syllab/ge.ogg" /> + <sound name="GI" file="it/syllab/gi.ogg" /> + <sound name="GLI" file="it/syllab/gli.ogg" /> + <sound name="GNA" file="it/syllab/gna.ogg" /> + <sound name="GNE" file="it/syllab/gne.ogg" /> + <sound name="GNI" file="it/syllab/gni.ogg" /> + <sound name="GNO" file="it/syllab/gno.ogg" /> + <sound name="GNU" file="it/syllab/gnu.ogg" /> + <sound name="GO" file="it/syllab/go.ogg" /> + <sound name="GU" file="it/syllab/gu.ogg" /> + <sound name="LA" file="it/syllab/la.ogg" /> + <sound name="LE" file="it/syllab/le.ogg" /> + <sound name="LI" file="it/syllab/li.ogg" /> + <sound name="LO" file="it/syllab/lo.ogg" /> + <sound name="LU" file="it/syllab/lu.ogg" /> + <sound name="MA" file="it/syllab/ma.ogg" /> + <sound name="ME" file="it/syllab/me.ogg" /> + <sound name="MI" file="it/syllab/mi.ogg" /> + <sound name="MO" file="it/syllab/mo.ogg" /> + <sound name="MU" file="it/syllab/mu.ogg" /> + <sound name="NA" file="it/syllab/na.ogg" /> + <sound name="NE" file="it/syllab/ne.ogg" /> + <sound name="NI" file="it/syllab/ni.ogg" /> + <sound name="NO" file="it/syllab/no.ogg" /> + <sound name="NU" file="it/syllab/nu.ogg" /> + <sound name="PA" file="it/syllab/pa.ogg" /> + <sound name="PE" file="it/syllab/pe.ogg" /> + <sound name="PI" file="it/syllab/pi.ogg" /> + <sound name="PO" file="it/syllab/po.ogg" /> + <sound name="PU" file="it/syllab/pu.ogg" /> + <sound name="RA" file="it/syllab/ra.ogg" /> + <sound name="RE" file="it/syllab/re.ogg" /> + <sound name="RI" file="it/syllab/ri.ogg" /> + <sound name="RO" file="it/syllab/ro.ogg" /> + <sound name="RU" file="it/syllab/ru.ogg" /> + <sound name="SA" file="it/syllab/sa.ogg" /> + <sound name="SE" file="it/syllab/se.ogg" /> + <sound name="SI" file="it/syllab/si.ogg" /> + <sound name="SO" file="it/syllab/so.ogg" /> + <sound name="SU" file="it/syllab/su.ogg" /> + <sound name="TA" file="it/syllab/ta.ogg" /> + <sound name="TE" file="it/syllab/te.ogg" /> + <sound name="TI" file="it/syllab/ti.ogg" /> + <sound name="TO" file="it/syllab/to.ogg" /> + <sound name="TU" file="it/syllab/tu.ogg" /> + <sound name="VA" file="it/syllab/va.ogg" /> + <sound name="VE" file="it/syllab/ve.ogg" /> + <sound name="VI" file="it/syllab/vi.ogg" /> + <sound name="VO" file="it/syllab/vo.ogg" /> + <sound name="VU" file="it/syllab/vu.ogg" /> + <sound name="ZA" file="it/syllab/za.ogg" /> + <sound name="ZE" file="it/syllab/ze.ogg" /> + <sound name="ZI" file="it/syllab/zi.ogg" /> + <sound name="ZO" file="it/syllab/zo.ogg" /> + <sound name="ZU" file="it/syllab/zu.ogg" /> + </syllables> + + </language> + + <language code="hi-ro"> + + <menuitem> + <label>Romanized&Hindi</label> + </menuitem> + + <alphabet> + <sound name="A" file="hi-ro/alpha/a0.ogg" /> + <sound name="AA" file="hi-ro/alpha/a1.ogg" /> + <sound name="I" file="hi-ro/alpha/a2.ogg" /> + <sound name="EE" file="hi-ro/alpha/a3.ogg" /> + <sound name="U" file="hi-ro/alpha/a4.ogg" /> + <sound name="OO" file="hi-ro/alpha/a5.ogg" /> + <sound name="E " file="hi-ro/alpha/a6.ogg" /> + <sound name="AI" file="hi-ro/alpha/a7.ogg" /> + <sound name="O" file="hi-ro/alpha/a8.ogg" /> + <sound name="AU" file="hi-ro/alpha/a9.ogg" /> + <sound name="KA" file="hi-ro/alpha/a10.ogg" /> + <sound name="KHA" file="hi-ro/alpha/a11.ogg" /> + <sound name="GA" file="hi-ro/alpha/a12.ogg" /> + <sound name="GHA" file="hi-ro/alpha/a13.ogg" /> + <sound name="CHA" file="hi-ro/alpha/a14.ogg" /> + <sound name="CHHA" file="hi-ro/alpha/a15.ogg" /> + <sound name="JA" file="hi-ro/alpha/a16.ogg" /> + <sound name="JHA" file="hi-ro/alpha/a17.ogg" /> + <sound name="TA" file="hi-ro/alpha/a18.ogg" /> + <sound name="DHA" file="hi-ro/alpha/a19.ogg" /> + <sound name="DA" file="hi-ro/alpha/a20.ogg" /> + <sound name="THA" file="hi-ro/alpha/a21.ogg" /> + <sound name="TA" file="hi-ro/alpha/a22.ogg" /> + <sound name="THA" file="hi-ro/alpha/a23.ogg" /> + <sound name="DA" file="hi-ro/alpha/a24.ogg" /> + <sound name="DHA" file="hi-ro/alpha/a25.ogg" /> + <sound name="NA" file="hi-ro/alpha/a26.ogg" /> + <sound name="PA" file="hi-ro/alpha/a27.ogg" /> + <sound name="PHA" file="hi-ro/alpha/a28.ogg" /> + <sound name="BA" file="hi-ro/alpha/a29.ogg" /> + <sound name="BHA" file="hi-ro/alpha/a30.ogg" /> + <sound name="MA" file="hi-ro/alpha/a31.ogg" /> + <sound name="YA" file="hi-ro/alpha/a32.ogg" /> + <sound name="RA" file="hi-ro/alpha/a33.ogg" /> + <sound name="LA" file="hi-ro/alpha/a34.ogg" /> + <sound name="VA" file="hi-ro/alpha/a35.ogg" /> + <sound name="SHA" file="hi-ro/alpha/a36.ogg" /> + <sound name="SA" file="hi-ro/alpha/a37.ogg" /> + <sound name="HA" file="hi-ro/alpha/a-38.ogg" /> + </alphabet> + + <syllables> + <sound name="KA" file="hi-ro/syllab/ad0.ogg" /> + <sound name="KI" file="hi-ro/syllab/ad1.ogg" /> + <sound name="KEE" file="hi-ro/syllab/ad2.ogg" /> + <sound name="KU" file="hi-ro/syllab/ad3.ogg" /> + <sound name="KOO" file="hi-ro/syllab/ad4.ogg" /> + <sound name="KE" file="hi-ro/syllab/ad5.ogg" /> + <sound name="KAI" file="hi-ro/syllab/ad6.ogg" /> + <sound name="KO" file="hi-ro/syllab/ad7.ogg" /> + <sound name="KAU" file="hi-ro/syllab/ad8.ogg" /> + <sound name="KHA" file="hi-ro/syllab/ad9.ogg" /> + <sound name="KHI" file="hi-ro/syllab/ad10.ogg" /> + <sound name="KHEE" file="hi-ro/syllab/ad11.ogg" /> + <sound name="KHU" file="hi-ro/syllab/ad12.ogg" /> + <sound name="KHOO" file="hi-ro/syllab/ad13.ogg" /> + <sound name="KHE" file="hi-ro/syllab/ad14.ogg" /> + <sound name="KHAI" file="hi-ro/syllab/ad15.ogg" /> + <sound name="KHO" file="hi-ro/syllab/ad16.ogg" /> + <sound name="KHAU" file="hi-ro/syllab/ad17.ogg" /> + <sound name="GA" file="hi-ro/syllab/ad18.ogg" /> + <sound name="GI" file="hi-ro/syllab/ad19.ogg" /> + <sound name="GEE" file="hi-ro/syllab/ad20.ogg" /> + <sound name="GU" file="hi-ro/syllab/ad21.ogg" /> + <sound name="GOO" file="hi-ro/syllab/ad22.ogg" /> + <sound name="GE" file="hi-ro/syllab/ad23.ogg" /> + <sound name="GAI" file="hi-ro/syllab/ad24.ogg" /> + <sound name="GO" file="hi-ro/syllab/ad25.ogg" /> + <sound name="GAU" file="hi-ro/syllab/ad26.ogg" /> + <sound name="GHA" file="hi-ro/syllab/ad27.ogg" /> + <sound name="GHI" file="hi-ro/syllab/ad28.ogg" /> + <sound name="GHEE" file="hi-ro/syllab/ad29.ogg" /> + <sound name="GHU" file="hi-ro/syllab/ad30.ogg" /> + <sound name="GHOO" file="hi-ro/syllab/ad31.ogg" /> + <sound name="GHE" file="hi-ro/syllab/ad32.ogg" /> + <sound name="GHAI" file="hi-ro/syllab/ad33.ogg" /> + <sound name="GHO" file="hi-ro/syllab/ad34.ogg" /> + <sound name="GHAU" file="hi-ro/syllab/ad35.ogg" /> + <sound name="CHA" file="hi-ro/syllab/ad36.ogg" /> + <sound name="CHI" file="hi-ro/syllab/ad37.ogg" /> + <sound name="CHEE" file="hi-ro/syllab/ad38.ogg" /> + <sound name="CHU" file="hi-ro/syllab/ad39.ogg" /> + <sound name="CHOO" file="hi-ro/syllab/ad40.ogg" /> + <sound name="CHE" file="hi-ro/syllab/ad41.ogg" /> + <sound name="CHAI" file="hi-ro/syllab/ad42.ogg" /> + <sound name="CHO" file="hi-ro/syllab/ad43.ogg" /> + <sound name="CHAU" file="hi-ro/syllab/ad44.ogg" /> + <sound name="CHHA" file="hi-ro/syllab/ad45.ogg" /> + <sound name="CHHI" file="hi-ro/syllab/ad46.ogg" /> + <sound name="CHHEE" file="hi-ro/syllab/ad47.ogg" /> + <sound name="CHHU" file="hi-ro/syllab/ad48.ogg" /> + <sound name="CHHOO" file="hi-ro/syllab/ad49.ogg" /> + <sound name="CHHE" file="hi-ro/syllab/ad50.ogg" /> + <sound name="CHHAI" file="hi-ro/syllab/ad51.ogg" /> + <sound name="CHHO" file="hi-ro/syllab/ad52.ogg" /> + <sound name="CHHAU" file="hi-ro/syllab/ad53.ogg" /> + <sound name="JA" file="hi-ro/syllab/ad54.ogg" /> + <sound name="JI" file="hi-ro/syllab/ad55.ogg" /> + <sound name="JEE" file="hi-ro/syllab/ad56.ogg" /> + <sound name="JU" file="hi-ro/syllab/ad57.ogg" /> + <sound name="JOO" file="hi-ro/syllab/ad58.ogg" /> + <sound name="JE" file="hi-ro/syllab/ad59.ogg" /> + <sound name="JAI" file="hi-ro/syllab/ad60.ogg" /> + <sound name="JO" file="hi-ro/syllab/ad61.ogg" /> + <sound name="JAU" file="hi-ro/syllab/ad62.ogg" /> + <sound name="JHA" file="hi-ro/syllab/ad63.ogg" /> + <sound name="JHI" file="hi-ro/syllab/ad64.ogg" /> + <sound name="JHEE" file="hi-ro/syllab/ad65.ogg" /> + <sound name="JHU" file="hi-ro/syllab/ad66.ogg" /> + <sound name="JHOO" file="hi-ro/syllab/ad67.ogg" /> + <sound name="JHE" file="hi-ro/syllab/ad68.ogg" /> + <sound name="JHAI" file="hi-ro/syllab/ad69.ogg" /> + <sound name="JHO" file="hi-ro/syllab/ad70.ogg" /> + <sound name="JHAU" file="hi-ro/syllab/ad71.ogg" /> + <sound name="TA" file="hi-ro/syllab/ad72.ogg" /> + <sound name="TI" file="hi-ro/syllab/ad73.ogg" /> + <sound name="TEE" file="hi-ro/syllab/ad74.ogg" /> + <sound name="TU" file="hi-ro/syllab/ad75.ogg" /> + <sound name="TOO" file="hi-ro/syllab/ad76.ogg" /> + <sound name="TE" file="hi-ro/syllab/ad77.ogg" /> + <sound name="TAI" file="hi-ro/syllab/ad78.ogg" /> + <sound name="TO" file="hi-ro/syllab/ad79.ogg" /> + <sound name="TAU" file="hi-ro/syllab/ad80.ogg" /> + <sound name="THA" file="hi-ro/syllab/ad81.ogg" /> + <sound name="THI" file="hi-ro/syllab/ad82.ogg" /> + <sound name="THEE" file="hi-ro/syllab/ad83.ogg" /> + <sound name="THU" file="hi-ro/syllab/ad84.ogg" /> + <sound name="THOO" file="hi-ro/syllab/ad85.ogg" /> + <sound name="THE" file="hi-ro/syllab/ad86.ogg" /> + <sound name="THAI" file="hi-ro/syllab/ad87.ogg" /> + <sound name="THO" file="hi-ro/syllab/ad88.ogg" /> + <sound name="THAU" file="hi-ro/syllab/ad89.ogg" /> + <sound name="DA" file="hi-ro/syllab/ad90.ogg" /> + <sound name="DI" file="hi-ro/syllab/ad91.ogg" /> + <sound name="DEE" file="hi-ro/syllab/ad92.ogg" /> + <sound name="DU" file="hi-ro/syllab/ad93.ogg" /> + <sound name="DOO" file="hi-ro/syllab/ad94.ogg" /> + <sound name="DE" file="hi-ro/syllab/ad95.ogg" /> + <sound name="DAI" file="hi-ro/syllab/ad96.ogg" /> + <sound name="DO" file="hi-ro/syllab/ad97.ogg" /> + <sound name="DAU" file="hi-ro/syllab/ad98.ogg" /> + <sound name="TA" file="hi-ro/syllab/ad99.ogg" /> + <sound name="TI" file="hi-ro/syllab/ad100.ogg" /> + <sound name="TEE" file="hi-ro/syllab/ad101.ogg" /> + <sound name="TU" file="hi-ro/syllab/ad102.ogg" /> + <sound name="TOO" file="hi-ro/syllab/ad103.ogg" /> + <sound name="TE" file="hi-ro/syllab/ad104.ogg" /> + <sound name="TAI" file="hi-ro/syllab/ad105.ogg" /> + <sound name="TO" file="hi-ro/syllab/ad106.ogg" /> + <sound name="TAU" file="hi-ro/syllab/ad107.ogg" /> + <sound name="DA" file="hi-ro/syllab/ad108.ogg" /> + <sound name="DI" file="hi-ro/syllab/ad109.ogg" /> + <sound name="DEE" file="hi-ro/syllab/ad110.ogg" /> + <sound name="DU" file="hi-ro/syllab/ad111.ogg" /> + <sound name="DOO" file="hi-ro/syllab/ad112.ogg" /> + <sound name="DE" file="hi-ro/syllab/ad113.ogg" /> + <sound name="DAI" file="hi-ro/syllab/ad114.ogg" /> + <sound name="DO" file="hi-ro/syllab/ad115.ogg" /> + <sound name="DAU" file="hi-ro/syllab/ad116.ogg" /> + <sound name="DHA" file="hi-ro/syllab/ad117.ogg" /> + <sound name="DHI" file="hi-ro/syllab/ad118.ogg" /> + <sound name="DHEE" file="hi-ro/syllab/ad119.ogg" /> + <sound name="DHU" file="hi-ro/syllab/ad120.ogg" /> + <sound name="DHOO" file="hi-ro/syllab/ad121.ogg" /> + <sound name="DHE" file="hi-ro/syllab/ad122.ogg" /> + <sound name="DHAI" file="hi-ro/syllab/ad123.ogg" /> + <sound name="DHO" file="hi-ro/syllab/ad124.ogg" /> + <sound name="DHAU" file="hi-ro/syllab/ad125.ogg" /> + <sound name="NA" file="hi-ro/syllab/ad126.ogg" /> + <sound name="NI" file="hi-ro/syllab/ad127.ogg" /> + <sound name="NEE" file="hi-ro/syllab/ad128.ogg" /> + <sound name="NU" file="hi-ro/syllab/ad129.ogg" /> + <sound name="NOO" file="hi-ro/syllab/ad130.ogg" /> + <sound name="NE" file="hi-ro/syllab/ad131.ogg" /> + <sound name="NAI" file="hi-ro/syllab/ad132.ogg" /> + <sound name="NO" file="hi-ro/syllab/ad133.ogg" /> + <sound name="NAO" file="hi-ro/syllab/ad134.ogg" /> + <sound name="PA" file="hi-ro/syllab/ad135.ogg" /> + <sound name="PI" file="hi-ro/syllab/ad136.ogg" /> + <sound name="PEE" file="hi-ro/syllab/ad137.ogg" /> + <sound name="PU" file="hi-ro/syllab/ad138.ogg" /> + <sound name="POO" file="hi-ro/syllab/ad139.ogg" /> + <sound name="PE" file="hi-ro/syllab/ad140.ogg" /> + <sound name="PAI" file="hi-ro/syllab/ad141.ogg" /> + <sound name="PO" file="hi-ro/syllab/ad142.ogg" /> + <sound name="PAU" file="hi-ro/syllab/ad143.ogg" /> + <sound name="PHA" file="hi-ro/syllab/ad144.ogg" /> + <sound name="PHI" file="hi-ro/syllab/ad145.ogg" /> + <sound name="PHEE" file="hi-ro/syllab/ad146.ogg" /> + <sound name="PHU" file="hi-ro/syllab/ad147.ogg" /> + <sound name="PHOO" file="hi-ro/syllab/ad148.ogg" /> + <sound name="PHE" file="hi-ro/syllab/ad149.ogg" /> + <sound name="PHAI" file="hi-ro/syllab/ad150.ogg" /> + <sound name="PHO" file="hi-ro/syllab/ad151.ogg" /> + <sound name="PHAO" file="hi-ro/syllab/ad152.ogg" /> + <sound name="BA" file="hi-ro/syllab/ad153.ogg" /> + <sound name="BI" file="hi-ro/syllab/ad154.ogg" /> + <sound name="BEE" file="hi-ro/syllab/ad155.ogg" /> + <sound name="BU" file="hi-ro/syllab/ad156.ogg" /> + <sound name="BOO" file="hi-ro/syllab/ad157.ogg" /> + <sound name="BE" file="hi-ro/syllab/ad158.ogg" /> + <sound name="BAI" file="hi-ro/syllab/ad159.ogg" /> + <sound name="BO" file="hi-ro/syllab/ad160.ogg" /> + <sound name="BAU" file="hi-ro/syllab/ad161.ogg" /> + <sound name="BHA" file="hi-ro/syllab/ad162.ogg" /> + <sound name="BHI" file="hi-ro/syllab/ad163.ogg" /> + <sound name="BHEE" file="hi-ro/syllab/ad164.ogg" /> + <sound name="BHU" file="hi-ro/syllab/ad165.ogg" /> + <sound name="BHOO" file="hi-ro/syllab/ad166.ogg" /> + <sound name="BHE" file="hi-ro/syllab/ad167.ogg" /> + <sound name="BHAI" file="hi-ro/syllab/ad168.ogg" /> + <sound name="BHO" file="hi-ro/syllab/ad169.ogg" /> + <sound name="BHAO" file="hi-ro/syllab/ad170.ogg" /> + <sound name="MA" file="hi-ro/syllab/ad171.ogg" /> + <sound name="MI" file="hi-ro/syllab/ad172.ogg" /> + <sound name="MEE" file="hi-ro/syllab/ad173.ogg" /> + <sound name="MU" file="hi-ro/syllab/ad174.ogg" /> + <sound name="MOO" file="hi-ro/syllab/ad175.ogg" /> + <sound name="ME" file="hi-ro/syllab/ad176.ogg" /> + <sound name="MAI" file="hi-ro/syllab/ad177.ogg" /> + <sound name="MO" file="hi-ro/syllab/ad178.ogg" /> + <sound name="MAU" file="hi-ro/syllab/ad179.ogg" /> + <sound name="YA" file="hi-ro/syllab/ad180.ogg" /> + <sound name="YI" file="hi-ro/syllab/ad181.ogg" /> + <sound name="YEE" file="hi-ro/syllab/ad182.ogg" /> + <sound name="YU" file="hi-ro/syllab/ad183.ogg" /> + <sound name="YOO" file="hi-ro/syllab/ad184.ogg" /> + <sound name="YE" file="hi-ro/syllab/ad185.ogg" /> + <sound name="YAI" file="hi-ro/syllab/ad186.ogg" /> + <sound name="YO" file="hi-ro/syllab/ad187.ogg" /> + <sound name="YAU" file="hi-ro/syllab/ad188.ogg" /> + <sound name="RA" file="hi-ro/syllab/ad189.ogg" /> + <sound name="RI" file="hi-ro/syllab/ad190.ogg" /> + <sound name="REE" file="hi-ro/syllab/ad191.ogg" /> + <sound name="RU" file="hi-ro/syllab/ad192.ogg" /> + <sound name="ROO" file="hi-ro/syllab/ad193.ogg" /> + <sound name="RE" file="hi-ro/syllab/ad194.ogg" /> + <sound name="RAI" file="hi-ro/syllab/ad195.ogg" /> + <sound name="RO" file="hi-ro/syllab/ad196.ogg" /> + <sound name="RAU" file="hi-ro/syllab/ad197.ogg" /> + <sound name="LA" file="hi-ro/syllab/ad198.ogg" /> + <sound name="LI" file="hi-ro/syllab/ad199.ogg" /> + <sound name="LEE" file="hi-ro/syllab/ad200.ogg" /> + <sound name="LU" file="hi-ro/syllab/ad201.ogg" /> + <sound name="LOO" file="hi-ro/syllab/ad202.ogg" /> + <sound name="LE" file="hi-ro/syllab/ad203.ogg" /> + <sound name="LAI" file="hi-ro/syllab/ad204.ogg" /> + <sound name="LO" file="hi-ro/syllab/ad205.ogg" /> + <sound name="LAU" file="hi-ro/syllab/ad206.ogg" /> + <sound name="VA" file="hi-ro/syllab/ad207.ogg" /> + <sound name="VI" file="hi-ro/syllab/ad208.ogg" /> + <sound name="VEE" file="hi-ro/syllab/ad209.ogg" /> + <sound name="VU" file="hi-ro/syllab/ad210.ogg" /> + <sound name="VOO" file="hi-ro/syllab/ad211.ogg" /> + <sound name="VE" file="hi-ro/syllab/ad212.ogg" /> + <sound name="VAI" file="hi-ro/syllab/ad213.ogg" /> + <sound name="VO" file="hi-ro/syllab/ad214.ogg" /> + <sound name="VAU" file="hi-ro/syllab/ad215.ogg" /> + <sound name="SA" file="hi-ro/syllab/ad216.ogg" /> + <sound name="SI" file="hi-ro/syllab/ad217.ogg" /> + <sound name="SEE" file="hi-ro/syllab/ad218.ogg" /> + <sound name="SU" file="hi-ro/syllab/ad219.ogg" /> + <sound name="SOO" file="hi-ro/syllab/ad220.ogg" /> + <sound name="SE" file="hi-ro/syllab/ad221.ogg" /> + <sound name="SAI" file="hi-ro/syllab/ad222.ogg" /> + <sound name="SO" file="hi-ro/syllab/ad223.ogg" /> + <sound name="SAU" file="hi-ro/syllab/ad224.ogg" /> + <sound name="SHA" file="hi-ro/syllab/ad225.ogg" /> + <sound name="SHI" file="hi-ro/syllab/ad226.ogg" /> + <sound name="SHEE" file="hi-ro/syllab/ad227.ogg" /> + <sound name="SHU" file="hi-ro/syllab/ad228.ogg" /> + <sound name="SHOO" file="hi-ro/syllab/ad229.ogg" /> + <sound name="SHE" file="hi-ro/syllab/ad230.ogg" /> + <sound name="SHAI" file="hi-ro/syllab/ad231.ogg" /> + <sound name="SHO" file="hi-ro/syllab/ad232.ogg" /> + <sound name="SHAU" file="hi-ro/syllab/ad233.ogg" /> + <sound name="HA" file="hi-ro/syllab/ad234.ogg" /> + <sound name="HI" file="hi-ro/syllab/ad235.ogg" /> + <sound name="HEE" file="hi-ro/syllab/ad236.ogg" /> + <sound name="HU" file="hi-ro/syllab/ad236.ogg" /> + <sound name="HOO" file="hi-ro/syllab/ad237.ogg" /> + <sound name="HE" file="hi-ro/syllab/ad238.ogg" /> + <sound name="HAI" file="hi-ro/syllab/ad239.ogg" /> + <sound name="HO" file="hi-ro/syllab/ad240.ogg" /> + <sound name="HAU" file="hi-ro/syllab/ad241.ogg" /> + </syllables> + + </language> +</klettres> diff --git a/klettres/klettres/en/alpha/A.ogg b/klettres/klettres/en/alpha/A.ogg Binary files differnew file mode 100644 index 00000000..2fd80c45 --- /dev/null +++ b/klettres/klettres/en/alpha/A.ogg diff --git a/klettres/klettres/en/alpha/B.ogg b/klettres/klettres/en/alpha/B.ogg Binary files differnew file mode 100644 index 00000000..b324af70 --- /dev/null +++ b/klettres/klettres/en/alpha/B.ogg diff --git a/klettres/klettres/en/alpha/C.ogg b/klettres/klettres/en/alpha/C.ogg Binary files differnew file mode 100644 index 00000000..3587b7be --- /dev/null +++ b/klettres/klettres/en/alpha/C.ogg diff --git a/klettres/klettres/en/alpha/D.ogg b/klettres/klettres/en/alpha/D.ogg Binary files differnew file mode 100644 index 00000000..6fe5b319 --- /dev/null +++ b/klettres/klettres/en/alpha/D.ogg diff --git a/klettres/klettres/en/alpha/E.ogg b/klettres/klettres/en/alpha/E.ogg Binary files differnew file mode 100644 index 00000000..598dd6c6 --- /dev/null +++ b/klettres/klettres/en/alpha/E.ogg diff --git a/klettres/klettres/en/alpha/F.ogg b/klettres/klettres/en/alpha/F.ogg Binary files differnew file mode 100644 index 00000000..ef54f336 --- /dev/null +++ b/klettres/klettres/en/alpha/F.ogg diff --git a/klettres/klettres/en/alpha/G.ogg b/klettres/klettres/en/alpha/G.ogg Binary files differnew file mode 100644 index 00000000..afd4aa66 --- /dev/null +++ b/klettres/klettres/en/alpha/G.ogg diff --git a/klettres/klettres/en/alpha/H.ogg b/klettres/klettres/en/alpha/H.ogg Binary files differnew file mode 100644 index 00000000..ad0f847b --- /dev/null +++ b/klettres/klettres/en/alpha/H.ogg diff --git a/klettres/klettres/en/alpha/I.ogg b/klettres/klettres/en/alpha/I.ogg Binary files differnew file mode 100644 index 00000000..76e0b109 --- /dev/null +++ b/klettres/klettres/en/alpha/I.ogg diff --git a/klettres/klettres/en/alpha/J.ogg b/klettres/klettres/en/alpha/J.ogg Binary files differnew file mode 100644 index 00000000..6ed9ad6c --- /dev/null +++ b/klettres/klettres/en/alpha/J.ogg diff --git a/klettres/klettres/en/alpha/K.ogg b/klettres/klettres/en/alpha/K.ogg Binary files differnew file mode 100644 index 00000000..7a3a1b97 --- /dev/null +++ b/klettres/klettres/en/alpha/K.ogg diff --git a/klettres/klettres/en/alpha/L.ogg b/klettres/klettres/en/alpha/L.ogg Binary files differnew file mode 100644 index 00000000..d1370390 --- /dev/null +++ b/klettres/klettres/en/alpha/L.ogg diff --git a/klettres/klettres/en/alpha/M.ogg b/klettres/klettres/en/alpha/M.ogg Binary files differnew file mode 100644 index 00000000..4495b9cc --- /dev/null +++ b/klettres/klettres/en/alpha/M.ogg diff --git a/klettres/klettres/en/alpha/N.ogg b/klettres/klettres/en/alpha/N.ogg Binary files differnew file mode 100644 index 00000000..dd195c3c --- /dev/null +++ b/klettres/klettres/en/alpha/N.ogg diff --git a/klettres/klettres/en/alpha/O.ogg b/klettres/klettres/en/alpha/O.ogg Binary files differnew file mode 100644 index 00000000..0f56fd43 --- /dev/null +++ b/klettres/klettres/en/alpha/O.ogg diff --git a/klettres/klettres/en/alpha/P.ogg b/klettres/klettres/en/alpha/P.ogg Binary files differnew file mode 100644 index 00000000..8f13b609 --- /dev/null +++ b/klettres/klettres/en/alpha/P.ogg diff --git a/klettres/klettres/en/alpha/Q.ogg b/klettres/klettres/en/alpha/Q.ogg Binary files differnew file mode 100644 index 00000000..94728401 --- /dev/null +++ b/klettres/klettres/en/alpha/Q.ogg diff --git a/klettres/klettres/en/alpha/R.ogg b/klettres/klettres/en/alpha/R.ogg Binary files differnew file mode 100644 index 00000000..4241ebbf --- /dev/null +++ b/klettres/klettres/en/alpha/R.ogg diff --git a/klettres/klettres/en/alpha/S.ogg b/klettres/klettres/en/alpha/S.ogg Binary files differnew file mode 100644 index 00000000..15a91cc5 --- /dev/null +++ b/klettres/klettres/en/alpha/S.ogg diff --git a/klettres/klettres/en/alpha/T.ogg b/klettres/klettres/en/alpha/T.ogg Binary files differnew file mode 100644 index 00000000..2374745d --- /dev/null +++ b/klettres/klettres/en/alpha/T.ogg diff --git a/klettres/klettres/en/alpha/U.ogg b/klettres/klettres/en/alpha/U.ogg Binary files differnew file mode 100644 index 00000000..2c10dbd4 --- /dev/null +++ b/klettres/klettres/en/alpha/U.ogg diff --git a/klettres/klettres/en/alpha/V.ogg b/klettres/klettres/en/alpha/V.ogg Binary files differnew file mode 100644 index 00000000..afe7f9bd --- /dev/null +++ b/klettres/klettres/en/alpha/V.ogg diff --git a/klettres/klettres/en/alpha/W.ogg b/klettres/klettres/en/alpha/W.ogg Binary files differnew file mode 100644 index 00000000..93e1742f --- /dev/null +++ b/klettres/klettres/en/alpha/W.ogg diff --git a/klettres/klettres/en/alpha/X.ogg b/klettres/klettres/en/alpha/X.ogg Binary files differnew file mode 100644 index 00000000..2cbd07b6 --- /dev/null +++ b/klettres/klettres/en/alpha/X.ogg diff --git a/klettres/klettres/en/alpha/Y.ogg b/klettres/klettres/en/alpha/Y.ogg Binary files differnew file mode 100644 index 00000000..d1eb408d --- /dev/null +++ b/klettres/klettres/en/alpha/Y.ogg diff --git a/klettres/klettres/en/alpha/Z.ogg b/klettres/klettres/en/alpha/Z.ogg Binary files differnew file mode 100644 index 00000000..d0a0fb11 --- /dev/null +++ b/klettres/klettres/en/alpha/Z.ogg diff --git a/klettres/klettres/en/sounds.xml b/klettres/klettres/en/sounds.xml new file mode 100644 index 00000000..03469205 --- /dev/null +++ b/klettres/klettres/en/sounds.xml @@ -0,0 +1,75 @@ +<!-- + KDE EDU KLettres + + Thanks to Eric Bischoff (KTuberling) + + Modify this file if you want to add new sounds + or modify existing ones. + + IMPORTANT: when you modify this file, save it using kwrite or kate with Save as and choose + utf8 in the encoding combobox on the right of the file title. +--> + +<klettres> + + <language code="en"> + <menuitem> + <label>&English</label> + </menuitem> + + <alphabet> + <sound name="A" file="en/alpha/A.ogg" /> + <sound name="B" file="en/alpha/B.ogg" /> + <sound name="C" file="en/alpha/C.ogg" /> + <sound name="D" file="en/alpha/D.ogg" /> + <sound name="E" file="en/alpha/E.ogg" /> + <sound name="F" file="en/alpha/F.ogg" /> + <sound name="G" file="en/alpha/G.ogg" /> + <sound name="H" file="en/alpha/H.ogg" /> + <sound name="I" file="en/alpha/I.ogg" /> + <sound name="J" file="en/alpha/J.ogg" /> + <sound name="K" file="en/alpha/K.ogg" /> + <sound name="L" file="en/alpha/L.ogg" /> + <sound name="M" file="en/alpha/M.ogg" /> + <sound name="N" file="en/alpha/N.ogg" /> + <sound name="O" file="en/alpha/O.ogg" /> + <sound name="P" file="en/alpha/P.ogg" /> + <sound name="Q" file="en/alpha/Q.ogg" /> + <sound name="R" file="en/alpha/R.ogg" /> + <sound name="S" file="en/alpha/S.ogg" /> + <sound name="T" file="en/alpha/T.ogg" /> + <sound name="U" file="en/alpha/U.ogg" /> + <sound name="V" file="en/alpha/V.ogg" /> + <sound name="W" file="en/alpha/W.ogg" /> + <sound name="X" file="en/alpha/X.ogg" /> + <sound name="Y" file="en/alpha/Y.ogg" /> + <sound name="Z" file="en/alpha/Z.ogg" /> + </alphabet> + + <syllables> + <sound name="AR" file="en/syllab/ar.ogg" /> + <sound name="AW" file="en/syllab/aw.ogg" /> + <sound name="CAR" file="en/syllab/car.ogg" /> + <sound name="DOG" file="en/syllab/dog.ogg" /> + <sound name="FIX" file="en/syllab/fix.ogg" /> + <sound name="GAS" file="en/syllab/gas.ogg" /> + <sound name="GEM" file="en/syllab/gem.ogg" /> + <sound name="HOT" file="en/syllab/hot.ogg" /> + <sound name="JET" file="en/syllab/jet.ogg" /> + <sound name="KEY" file="en/syllab/key.ogg" /> + <sound name="ME" file="en/syllab/me.ogg" /> + <sound name="MY" file="en/syllab/my.ogg" /> + <sound name="NO" file="en/syllab/no.ogg" /> + <sound name="PET" file="en/syllab/pet.ogg" /> + <sound name="SAW" file="en/syllab/saw.ogg" /> + <sound name="SAY" file="en/syllab/say.ogg" /> + <sound name="SIT" file="en/syllab/sit.ogg" /> + <sound name="SKY" file="en/syllab/sky.ogg" /> + <sound name="TH" file="en/syllab/th.ogg" /> + </syllables> + + </language> + + + +</klettres> diff --git a/klettres/klettres/en/syllab/aw.ogg b/klettres/klettres/en/syllab/aw.ogg Binary files differnew file mode 100644 index 00000000..51bd021e --- /dev/null +++ b/klettres/klettres/en/syllab/aw.ogg diff --git a/klettres/klettres/en/syllab/car.ogg b/klettres/klettres/en/syllab/car.ogg Binary files differnew file mode 100644 index 00000000..2639b8b8 --- /dev/null +++ b/klettres/klettres/en/syllab/car.ogg diff --git a/klettres/klettres/en/syllab/ch.ogg b/klettres/klettres/en/syllab/ch.ogg Binary files differnew file mode 100644 index 00000000..554e9e38 --- /dev/null +++ b/klettres/klettres/en/syllab/ch.ogg diff --git a/klettres/klettres/en/syllab/dog.ogg b/klettres/klettres/en/syllab/dog.ogg Binary files differnew file mode 100644 index 00000000..f0f18f5d --- /dev/null +++ b/klettres/klettres/en/syllab/dog.ogg diff --git a/klettres/klettres/en/syllab/fix.ogg b/klettres/klettres/en/syllab/fix.ogg Binary files differnew file mode 100644 index 00000000..dee499cb --- /dev/null +++ b/klettres/klettres/en/syllab/fix.ogg diff --git a/klettres/klettres/en/syllab/gas.ogg b/klettres/klettres/en/syllab/gas.ogg Binary files differnew file mode 100644 index 00000000..ea1d4485 --- /dev/null +++ b/klettres/klettres/en/syllab/gas.ogg diff --git a/klettres/klettres/en/syllab/gem.ogg b/klettres/klettres/en/syllab/gem.ogg Binary files differnew file mode 100644 index 00000000..80225ba5 --- /dev/null +++ b/klettres/klettres/en/syllab/gem.ogg diff --git a/klettres/klettres/en/syllab/hot.ogg b/klettres/klettres/en/syllab/hot.ogg Binary files differnew file mode 100644 index 00000000..e99a52c2 --- /dev/null +++ b/klettres/klettres/en/syllab/hot.ogg diff --git a/klettres/klettres/en/syllab/jet.ogg b/klettres/klettres/en/syllab/jet.ogg Binary files differnew file mode 100644 index 00000000..56f62276 --- /dev/null +++ b/klettres/klettres/en/syllab/jet.ogg diff --git a/klettres/klettres/en/syllab/key.ogg b/klettres/klettres/en/syllab/key.ogg Binary files differnew file mode 100644 index 00000000..173416cb --- /dev/null +++ b/klettres/klettres/en/syllab/key.ogg diff --git a/klettres/klettres/en/syllab/me.ogg b/klettres/klettres/en/syllab/me.ogg Binary files differnew file mode 100644 index 00000000..1b236faa --- /dev/null +++ b/klettres/klettres/en/syllab/me.ogg diff --git a/klettres/klettres/en/syllab/my.ogg b/klettres/klettres/en/syllab/my.ogg Binary files differnew file mode 100644 index 00000000..be98cc12 --- /dev/null +++ b/klettres/klettres/en/syllab/my.ogg diff --git a/klettres/klettres/en/syllab/no.ogg b/klettres/klettres/en/syllab/no.ogg Binary files differnew file mode 100644 index 00000000..2686ec5d --- /dev/null +++ b/klettres/klettres/en/syllab/no.ogg diff --git a/klettres/klettres/en/syllab/pet.ogg b/klettres/klettres/en/syllab/pet.ogg Binary files differnew file mode 100644 index 00000000..cd12ab50 --- /dev/null +++ b/klettres/klettres/en/syllab/pet.ogg diff --git a/klettres/klettres/en/syllab/saw.ogg b/klettres/klettres/en/syllab/saw.ogg Binary files differnew file mode 100644 index 00000000..634fcf2e --- /dev/null +++ b/klettres/klettres/en/syllab/saw.ogg diff --git a/klettres/klettres/en/syllab/say.ogg b/klettres/klettres/en/syllab/say.ogg Binary files differnew file mode 100644 index 00000000..02e65e4b --- /dev/null +++ b/klettres/klettres/en/syllab/say.ogg diff --git a/klettres/klettres/en/syllab/sit.ogg b/klettres/klettres/en/syllab/sit.ogg Binary files differnew file mode 100644 index 00000000..1f9ac418 --- /dev/null +++ b/klettres/klettres/en/syllab/sit.ogg diff --git a/klettres/klettres/en/syllab/sky.ogg b/klettres/klettres/en/syllab/sky.ogg Binary files differnew file mode 100644 index 00000000..18111663 --- /dev/null +++ b/klettres/klettres/en/syllab/sky.ogg diff --git a/klettres/klettres/en/syllab/th.ogg b/klettres/klettres/en/syllab/th.ogg Binary files differnew file mode 100644 index 00000000..d8184c67 --- /dev/null +++ b/klettres/klettres/en/syllab/th.ogg diff --git a/klettres/klettres/fontsdlg.ui b/klettres/klettres/fontsdlg.ui new file mode 100644 index 00000000..34c72ad5 --- /dev/null +++ b/klettres/klettres/fontsdlg.ui @@ -0,0 +1,38 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>fontsdlg</class> +<widget class="QDialog"> + <property name="name"> + <cstring>fontsdlg</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>484</width> + <height>330</height> + </rect> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="KFontChooser" row="0" column="0"> + <property name="name"> + <cstring>kcfg_Font</cstring> + </property> + <property name="font"> + <font> + <pointsize>48</pointsize> + <bold>1</bold> + </font> + </property> + </widget> + </grid> +</widget> +<customwidgets> +</customwidgets> +<layoutdefaults spacing="6" margin="11"/> +<includehints> + <includehint>kfontdialog.h</includehint> +</includehints> +</UI> diff --git a/klettres/klettres/fr/alpha/a-0.ogg b/klettres/klettres/fr/alpha/a-0.ogg Binary files differnew file mode 100644 index 00000000..dfbbb361 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-0.ogg diff --git a/klettres/klettres/fr/alpha/a-1.ogg b/klettres/klettres/fr/alpha/a-1.ogg Binary files differnew file mode 100644 index 00000000..44aed1b6 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-1.ogg diff --git a/klettres/klettres/fr/alpha/a-10.ogg b/klettres/klettres/fr/alpha/a-10.ogg Binary files differnew file mode 100644 index 00000000..5d984de5 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-10.ogg diff --git a/klettres/klettres/fr/alpha/a-11.ogg b/klettres/klettres/fr/alpha/a-11.ogg Binary files differnew file mode 100644 index 00000000..43a89b32 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-11.ogg diff --git a/klettres/klettres/fr/alpha/a-12.ogg b/klettres/klettres/fr/alpha/a-12.ogg Binary files differnew file mode 100644 index 00000000..e769e8cb --- /dev/null +++ b/klettres/klettres/fr/alpha/a-12.ogg diff --git a/klettres/klettres/fr/alpha/a-13.ogg b/klettres/klettres/fr/alpha/a-13.ogg Binary files differnew file mode 100644 index 00000000..b1bce28b --- /dev/null +++ b/klettres/klettres/fr/alpha/a-13.ogg diff --git a/klettres/klettres/fr/alpha/a-14.ogg b/klettres/klettres/fr/alpha/a-14.ogg Binary files differnew file mode 100644 index 00000000..7d2ff40a --- /dev/null +++ b/klettres/klettres/fr/alpha/a-14.ogg diff --git a/klettres/klettres/fr/alpha/a-15.ogg b/klettres/klettres/fr/alpha/a-15.ogg Binary files differnew file mode 100644 index 00000000..70302d2f --- /dev/null +++ b/klettres/klettres/fr/alpha/a-15.ogg diff --git a/klettres/klettres/fr/alpha/a-16.ogg b/klettres/klettres/fr/alpha/a-16.ogg Binary files differnew file mode 100644 index 00000000..c459d599 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-16.ogg diff --git a/klettres/klettres/fr/alpha/a-17.ogg b/klettres/klettres/fr/alpha/a-17.ogg Binary files differnew file mode 100644 index 00000000..4d5b9dc5 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-17.ogg diff --git a/klettres/klettres/fr/alpha/a-18.ogg b/klettres/klettres/fr/alpha/a-18.ogg Binary files differnew file mode 100644 index 00000000..2cae5ed9 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-18.ogg diff --git a/klettres/klettres/fr/alpha/a-19.ogg b/klettres/klettres/fr/alpha/a-19.ogg Binary files differnew file mode 100644 index 00000000..8345a447 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-19.ogg diff --git a/klettres/klettres/fr/alpha/a-2.ogg b/klettres/klettres/fr/alpha/a-2.ogg Binary files differnew file mode 100644 index 00000000..7ac113e0 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-2.ogg diff --git a/klettres/klettres/fr/alpha/a-20.ogg b/klettres/klettres/fr/alpha/a-20.ogg Binary files differnew file mode 100644 index 00000000..97f94041 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-20.ogg diff --git a/klettres/klettres/fr/alpha/a-21.ogg b/klettres/klettres/fr/alpha/a-21.ogg Binary files differnew file mode 100644 index 00000000..b9318123 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-21.ogg diff --git a/klettres/klettres/fr/alpha/a-22.ogg b/klettres/klettres/fr/alpha/a-22.ogg Binary files differnew file mode 100644 index 00000000..f4365fbf --- /dev/null +++ b/klettres/klettres/fr/alpha/a-22.ogg diff --git a/klettres/klettres/fr/alpha/a-23.ogg b/klettres/klettres/fr/alpha/a-23.ogg Binary files differnew file mode 100644 index 00000000..d84272dc --- /dev/null +++ b/klettres/klettres/fr/alpha/a-23.ogg diff --git a/klettres/klettres/fr/alpha/a-24.ogg b/klettres/klettres/fr/alpha/a-24.ogg Binary files differnew file mode 100644 index 00000000..c5551471 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-24.ogg diff --git a/klettres/klettres/fr/alpha/a-25.ogg b/klettres/klettres/fr/alpha/a-25.ogg Binary files differnew file mode 100644 index 00000000..cf88c3c4 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-25.ogg diff --git a/klettres/klettres/fr/alpha/a-3.ogg b/klettres/klettres/fr/alpha/a-3.ogg Binary files differnew file mode 100644 index 00000000..b30a553d --- /dev/null +++ b/klettres/klettres/fr/alpha/a-3.ogg diff --git a/klettres/klettres/fr/alpha/a-4.ogg b/klettres/klettres/fr/alpha/a-4.ogg Binary files differnew file mode 100644 index 00000000..23487f9d --- /dev/null +++ b/klettres/klettres/fr/alpha/a-4.ogg diff --git a/klettres/klettres/fr/alpha/a-5.ogg b/klettres/klettres/fr/alpha/a-5.ogg Binary files differnew file mode 100644 index 00000000..718301fa --- /dev/null +++ b/klettres/klettres/fr/alpha/a-5.ogg diff --git a/klettres/klettres/fr/alpha/a-6.ogg b/klettres/klettres/fr/alpha/a-6.ogg Binary files differnew file mode 100644 index 00000000..3e91e04d --- /dev/null +++ b/klettres/klettres/fr/alpha/a-6.ogg diff --git a/klettres/klettres/fr/alpha/a-7.ogg b/klettres/klettres/fr/alpha/a-7.ogg Binary files differnew file mode 100644 index 00000000..eae2effd --- /dev/null +++ b/klettres/klettres/fr/alpha/a-7.ogg diff --git a/klettres/klettres/fr/alpha/a-8.ogg b/klettres/klettres/fr/alpha/a-8.ogg Binary files differnew file mode 100644 index 00000000..4607e214 --- /dev/null +++ b/klettres/klettres/fr/alpha/a-8.ogg diff --git a/klettres/klettres/fr/alpha/a-9.ogg b/klettres/klettres/fr/alpha/a-9.ogg Binary files differnew file mode 100644 index 00000000..5aaaec0b --- /dev/null +++ b/klettres/klettres/fr/alpha/a-9.ogg diff --git a/klettres/klettres/fr/sounds.xml b/klettres/klettres/fr/sounds.xml new file mode 100644 index 00000000..f5b49577 --- /dev/null +++ b/klettres/klettres/fr/sounds.xml @@ -0,0 +1,81 @@ +<!-- + KDE EDU KLettres + + Thanks to Eric Bischoff (KTuberling) + + Modify this file if you want to add new sounds + or modify existing ones. + + IMPORTANT: when you modify this file, save it using kwrite or kate with Save as and choose + utf8 in the encoding combobox on the right of the file title. +--> + +<klettres> + + <language code="fr"> + + <menuitem> + <label>&French</label> + </menuitem> + <alphabet> + <sound name="A" file="fr/alpha/a-0.ogg" /> + <sound name="B" file="fr/alpha/a-1.ogg" /> + <sound name="C" file="fr/alpha/a-2.ogg" /> + <sound name="D" file="fr/alpha/a-3.ogg" /> + <sound name="E" file="fr/alpha/a-4.ogg" /> + <sound name="F" file="fr/alpha/a-5.ogg" /> + <sound name="G" file="fr/alpha/a-6.ogg" /> + <sound name="H" file="fr/alpha/a-7.ogg" /> + <sound name="I" file="fr/alpha/a-8.ogg" /> + <sound name="J" file="fr/alpha/a-9.ogg" /> + <sound name="K" file="fr/alpha/a-10.ogg" /> + <sound name="L" file="fr/alpha/a-11.ogg" /> + <sound name="M" file="fr/alpha/a-12.ogg" /> + <sound name="N" file="fr/alpha/a-13.ogg" /> + <sound name="O" file="fr/alpha/a-14.ogg" /> + <sound name="P" file="fr/alpha/a-15.ogg" /> + <sound name="Q" file="fr/alpha/a-16.ogg" /> + <sound name="R" file="fr/alpha/a-17.ogg" /> + <sound name="S" file="fr/alpha/a-18.ogg" /> + <sound name="T" file="fr/alpha/a-19.ogg" /> + <sound name="U" file="fr/alpha/a-20.ogg" /> + <sound name="V" file="fr/alpha/a-21.ogg" /> + <sound name="W" file="fr/alpha/a-22.ogg" /> + <sound name="X" file="fr/alpha/a-23.ogg" /> + <sound name="Y" file="fr/alpha/a-24.ogg" /> + <sound name="Z" file="fr/alpha/a-25.ogg" /> + </alphabet> + + <syllables> + <sound name="LA" file="fr/syllab/ad-0.ogg" /> + <sound name="LE" file="fr/syllab/ad-1.ogg" /> + <sound name="LI" file="fr/syllab/ad-2.ogg" /> + <sound name="LO" file="fr/syllab/ad-3.ogg" /> + <sound name="LU" file="fr/syllab/ad-4.ogg" /> + <sound name="DE" file="fr/syllab/ad-5.ogg" /> + <sound name="DA" file="fr/syllab/ad-6.ogg" /> + <sound name="DI" file="fr/syllab/ad-7.ogg" /> + <sound name="DO" file="fr/syllab/ad-8.ogg" /> + <sound name="DU" file="fr/syllab/ad-9.ogg" /> + <sound name="ME" file="fr/syllab/ad-10.ogg" /> + <sound name="MA" file="fr/syllab/ad-11.ogg" /> + <sound name="MO" file="fr/syllab/ad-12.ogg" /> + <sound name="MI" file="fr/syllab/ad-13.ogg" /> + <sound name="MU" file="fr/syllab/ad-14.ogg" /> + <sound name="RA" file="fr/syllab/ad-15.ogg" /> + <sound name="RE" file="fr/syllab/ad-16.ogg" /> + <sound name="RI" file="fr/syllab/ad-17.ogg" /> + <sound name="RO" file="fr/syllab/ad-18.ogg" /> + <sound name="RU" file="fr/syllab/ad-19.ogg" /> + <sound name="PO" file="fr/syllab/ad-20.ogg" /> + <sound name="PA" file="fr/syllab/ad-21.ogg" /> + <sound name="PI" file="fr/syllab/ad-22.ogg" /> + <sound name="PU" file="fr/syllab/ad-23.ogg" /> + <sound name="SA" file="fr/syllab/ad-24.ogg" /> + <sound name="SI" file="fr/syllab/ad-25.ogg" /> + <sound name="SO" file="fr/syllab/ad-26.ogg" /> + <sound name="SU" file="fr/syllab/ad-27.ogg" /> + </syllables> + + </language> +</klettres> diff --git a/klettres/klettres/fr/syllab/ad-0.ogg b/klettres/klettres/fr/syllab/ad-0.ogg Binary files differnew file mode 100644 index 00000000..6535c478 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-0.ogg diff --git a/klettres/klettres/fr/syllab/ad-1.ogg b/klettres/klettres/fr/syllab/ad-1.ogg Binary files differnew file mode 100644 index 00000000..43dd93a1 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-1.ogg diff --git a/klettres/klettres/fr/syllab/ad-10.ogg b/klettres/klettres/fr/syllab/ad-10.ogg Binary files differnew file mode 100644 index 00000000..53c2a865 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-10.ogg diff --git a/klettres/klettres/fr/syllab/ad-11.ogg b/klettres/klettres/fr/syllab/ad-11.ogg Binary files differnew file mode 100644 index 00000000..67c8adb2 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-11.ogg diff --git a/klettres/klettres/fr/syllab/ad-12.ogg b/klettres/klettres/fr/syllab/ad-12.ogg Binary files differnew file mode 100644 index 00000000..88276fcd --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-12.ogg diff --git a/klettres/klettres/fr/syllab/ad-13.ogg b/klettres/klettres/fr/syllab/ad-13.ogg Binary files differnew file mode 100644 index 00000000..90f9a997 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-13.ogg diff --git a/klettres/klettres/fr/syllab/ad-14.ogg b/klettres/klettres/fr/syllab/ad-14.ogg Binary files differnew file mode 100644 index 00000000..55a864ab --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-14.ogg diff --git a/klettres/klettres/fr/syllab/ad-15.ogg b/klettres/klettres/fr/syllab/ad-15.ogg Binary files differnew file mode 100644 index 00000000..719c710b --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-15.ogg diff --git a/klettres/klettres/fr/syllab/ad-16.ogg b/klettres/klettres/fr/syllab/ad-16.ogg Binary files differnew file mode 100644 index 00000000..a0379a91 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-16.ogg diff --git a/klettres/klettres/fr/syllab/ad-17.ogg b/klettres/klettres/fr/syllab/ad-17.ogg Binary files differnew file mode 100644 index 00000000..35765e24 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-17.ogg diff --git a/klettres/klettres/fr/syllab/ad-18.ogg b/klettres/klettres/fr/syllab/ad-18.ogg Binary files differnew file mode 100644 index 00000000..7c2ab97c --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-18.ogg diff --git a/klettres/klettres/fr/syllab/ad-19.ogg b/klettres/klettres/fr/syllab/ad-19.ogg Binary files differnew file mode 100644 index 00000000..43df844b --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-19.ogg diff --git a/klettres/klettres/fr/syllab/ad-2.ogg b/klettres/klettres/fr/syllab/ad-2.ogg Binary files differnew file mode 100644 index 00000000..7c1ac057 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-2.ogg diff --git a/klettres/klettres/fr/syllab/ad-20.ogg b/klettres/klettres/fr/syllab/ad-20.ogg Binary files differnew file mode 100644 index 00000000..9c8be15b --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-20.ogg diff --git a/klettres/klettres/fr/syllab/ad-21.ogg b/klettres/klettres/fr/syllab/ad-21.ogg Binary files differnew file mode 100644 index 00000000..24ab94ae --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-21.ogg diff --git a/klettres/klettres/fr/syllab/ad-22.ogg b/klettres/klettres/fr/syllab/ad-22.ogg Binary files differnew file mode 100644 index 00000000..c3fdcc65 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-22.ogg diff --git a/klettres/klettres/fr/syllab/ad-23.ogg b/klettres/klettres/fr/syllab/ad-23.ogg Binary files differnew file mode 100644 index 00000000..a093f6d7 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-23.ogg diff --git a/klettres/klettres/fr/syllab/ad-24.ogg b/klettres/klettres/fr/syllab/ad-24.ogg Binary files differnew file mode 100644 index 00000000..596d1e27 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-24.ogg diff --git a/klettres/klettres/fr/syllab/ad-25.ogg b/klettres/klettres/fr/syllab/ad-25.ogg Binary files differnew file mode 100644 index 00000000..1038cd25 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-25.ogg diff --git a/klettres/klettres/fr/syllab/ad-26.ogg b/klettres/klettres/fr/syllab/ad-26.ogg Binary files differnew file mode 100644 index 00000000..e3a67e9a --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-26.ogg diff --git a/klettres/klettres/fr/syllab/ad-27.ogg b/klettres/klettres/fr/syllab/ad-27.ogg Binary files differnew file mode 100644 index 00000000..6e2aadaa --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-27.ogg diff --git a/klettres/klettres/fr/syllab/ad-3.ogg b/klettres/klettres/fr/syllab/ad-3.ogg Binary files differnew file mode 100644 index 00000000..838adc0d --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-3.ogg diff --git a/klettres/klettres/fr/syllab/ad-4.ogg b/klettres/klettres/fr/syllab/ad-4.ogg Binary files differnew file mode 100644 index 00000000..f06bbf16 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-4.ogg diff --git a/klettres/klettres/fr/syllab/ad-5.ogg b/klettres/klettres/fr/syllab/ad-5.ogg Binary files differnew file mode 100644 index 00000000..40048c97 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-5.ogg diff --git a/klettres/klettres/fr/syllab/ad-6.ogg b/klettres/klettres/fr/syllab/ad-6.ogg Binary files differnew file mode 100644 index 00000000..4b146f3f --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-6.ogg diff --git a/klettres/klettres/fr/syllab/ad-7.ogg b/klettres/klettres/fr/syllab/ad-7.ogg Binary files differnew file mode 100644 index 00000000..ddb61a20 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-7.ogg diff --git a/klettres/klettres/fr/syllab/ad-8.ogg b/klettres/klettres/fr/syllab/ad-8.ogg Binary files differnew file mode 100644 index 00000000..59b83e36 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-8.ogg diff --git a/klettres/klettres/fr/syllab/ad-9.ogg b/klettres/klettres/fr/syllab/ad-9.ogg Binary files differnew file mode 100644 index 00000000..34aac296 --- /dev/null +++ b/klettres/klettres/fr/syllab/ad-9.ogg diff --git a/klettres/klettres/hi128-app-klettres.png b/klettres/klettres/hi128-app-klettres.png Binary files differnew file mode 100644 index 00000000..e9f89b4f --- /dev/null +++ b/klettres/klettres/hi128-app-klettres.png diff --git a/klettres/klettres/hi16-app-klettres.png b/klettres/klettres/hi16-app-klettres.png Binary files differnew file mode 100644 index 00000000..4030f836 --- /dev/null +++ b/klettres/klettres/hi16-app-klettres.png diff --git a/klettres/klettres/hi22-app-klettres.png b/klettres/klettres/hi22-app-klettres.png Binary files differnew file mode 100644 index 00000000..0bf8f601 --- /dev/null +++ b/klettres/klettres/hi22-app-klettres.png diff --git a/klettres/klettres/hi32-app-klettres.png b/klettres/klettres/hi32-app-klettres.png Binary files differnew file mode 100644 index 00000000..a94740b8 --- /dev/null +++ b/klettres/klettres/hi32-app-klettres.png diff --git a/klettres/klettres/hi48-app-klettres.png b/klettres/klettres/hi48-app-klettres.png Binary files differnew file mode 100644 index 00000000..4dd30ce9 --- /dev/null +++ b/klettres/klettres/hi48-app-klettres.png diff --git a/klettres/klettres/hisc-app-klettres.svgz b/klettres/klettres/hisc-app-klettres.svgz Binary files differnew file mode 100644 index 00000000..dca12f7b --- /dev/null +++ b/klettres/klettres/hisc-app-klettres.svgz diff --git a/klettres/klettres/icons/Makefile.am b/klettres/klettres/icons/Makefile.am new file mode 100644 index 00000000..c8d9aaa8 --- /dev/null +++ b/klettres/klettres/icons/Makefile.am @@ -0,0 +1,2 @@ +klettresdir = $(kde_datadir)/klettres/icons +klettres_ICON = AUTO diff --git a/klettres/klettres/icons/cr128-action-klettres_desert.png b/klettres/klettres/icons/cr128-action-klettres_desert.png Binary files differnew file mode 100644 index 00000000..a8d491a2 --- /dev/null +++ b/klettres/klettres/icons/cr128-action-klettres_desert.png diff --git a/klettres/klettres/icons/cr128-action-klettres_grownup.png b/klettres/klettres/icons/cr128-action-klettres_grownup.png Binary files differnew file mode 100644 index 00000000..7051a69d --- /dev/null +++ b/klettres/klettres/icons/cr128-action-klettres_grownup.png diff --git a/klettres/klettres/icons/cr128-action-klettres_kids.png b/klettres/klettres/icons/cr128-action-klettres_kids.png Binary files differnew file mode 100644 index 00000000..923a66fe --- /dev/null +++ b/klettres/klettres/icons/cr128-action-klettres_kids.png diff --git a/klettres/klettres/icons/cr16-action-klettres_desert.png b/klettres/klettres/icons/cr16-action-klettres_desert.png Binary files differnew file mode 100644 index 00000000..a91c56ca --- /dev/null +++ b/klettres/klettres/icons/cr16-action-klettres_desert.png diff --git a/klettres/klettres/icons/cr16-action-klettres_grownup.png b/klettres/klettres/icons/cr16-action-klettres_grownup.png Binary files differnew file mode 100644 index 00000000..b3826fcb --- /dev/null +++ b/klettres/klettres/icons/cr16-action-klettres_grownup.png diff --git a/klettres/klettres/icons/cr16-action-klettres_kids.png b/klettres/klettres/icons/cr16-action-klettres_kids.png Binary files differnew file mode 100644 index 00000000..dd56f257 --- /dev/null +++ b/klettres/klettres/icons/cr16-action-klettres_kids.png diff --git a/klettres/klettres/icons/cr22-action-klettres_desert.png b/klettres/klettres/icons/cr22-action-klettres_desert.png Binary files differnew file mode 100644 index 00000000..8f4cbec2 --- /dev/null +++ b/klettres/klettres/icons/cr22-action-klettres_desert.png diff --git a/klettres/klettres/icons/cr22-action-klettres_grownup.png b/klettres/klettres/icons/cr22-action-klettres_grownup.png Binary files differnew file mode 100644 index 00000000..9ffc899b --- /dev/null +++ b/klettres/klettres/icons/cr22-action-klettres_grownup.png diff --git a/klettres/klettres/icons/cr22-action-klettres_kids.png.png b/klettres/klettres/icons/cr22-action-klettres_kids.png.png Binary files differnew file mode 100644 index 00000000..712fc9ea --- /dev/null +++ b/klettres/klettres/icons/cr22-action-klettres_kids.png.png diff --git a/klettres/klettres/icons/cr32-action-klettres_desert.png b/klettres/klettres/icons/cr32-action-klettres_desert.png Binary files differnew file mode 100644 index 00000000..3ec7fc79 --- /dev/null +++ b/klettres/klettres/icons/cr32-action-klettres_desert.png diff --git a/klettres/klettres/icons/cr32-action-klettres_grownup.png b/klettres/klettres/icons/cr32-action-klettres_grownup.png Binary files differnew file mode 100644 index 00000000..7a541c42 --- /dev/null +++ b/klettres/klettres/icons/cr32-action-klettres_grownup.png diff --git a/klettres/klettres/icons/cr32-action-klettres_kids.png b/klettres/klettres/icons/cr32-action-klettres_kids.png Binary files differnew file mode 100644 index 00000000..dda08859 --- /dev/null +++ b/klettres/klettres/icons/cr32-action-klettres_kids.png diff --git a/klettres/klettres/icons/cr48-action-klettres_desert.png b/klettres/klettres/icons/cr48-action-klettres_desert.png Binary files differnew file mode 100644 index 00000000..f2aa087b --- /dev/null +++ b/klettres/klettres/icons/cr48-action-klettres_desert.png diff --git a/klettres/klettres/icons/cr48-action-klettres_grownup.png b/klettres/klettres/icons/cr48-action-klettres_grownup.png Binary files differnew file mode 100644 index 00000000..e188a658 --- /dev/null +++ b/klettres/klettres/icons/cr48-action-klettres_grownup.png diff --git a/klettres/klettres/icons/cr48-action-klettres_kids.png b/klettres/klettres/icons/cr48-action-klettres_kids.png Binary files differnew file mode 100644 index 00000000..a24a1647 --- /dev/null +++ b/klettres/klettres/icons/cr48-action-klettres_kids.png diff --git a/klettres/klettres/icons/cr64-action-klettres_desert.png b/klettres/klettres/icons/cr64-action-klettres_desert.png Binary files differnew file mode 100644 index 00000000..c05803b0 --- /dev/null +++ b/klettres/klettres/icons/cr64-action-klettres_desert.png diff --git a/klettres/klettres/icons/cr64-action-klettres_grownup.png.png b/klettres/klettres/icons/cr64-action-klettres_grownup.png.png Binary files differnew file mode 100644 index 00000000..669a2bf3 --- /dev/null +++ b/klettres/klettres/icons/cr64-action-klettres_grownup.png.png diff --git a/klettres/klettres/icons/cr64-action-klettres_kids.png b/klettres/klettres/icons/cr64-action-klettres_kids.png Binary files differnew file mode 100644 index 00000000..9aceea21 --- /dev/null +++ b/klettres/klettres/icons/cr64-action-klettres_kids.png diff --git a/klettres/klettres/icons/crsc-action-klettres_desert.svgz b/klettres/klettres/icons/crsc-action-klettres_desert.svgz Binary files differnew file mode 100644 index 00000000..fbaca462 --- /dev/null +++ b/klettres/klettres/icons/crsc-action-klettres_desert.svgz diff --git a/klettres/klettres/icons/crsc-action-klettres_grownup.svgz b/klettres/klettres/icons/crsc-action-klettres_grownup.svgz Binary files differnew file mode 100644 index 00000000..233a6246 --- /dev/null +++ b/klettres/klettres/icons/crsc-action-klettres_grownup.svgz diff --git a/klettres/klettres/icons/crsc-action-klettres_kids.svgz b/klettres/klettres/icons/crsc-action-klettres_kids.svgz Binary files differnew file mode 100644 index 00000000..36d860cb --- /dev/null +++ b/klettres/klettres/icons/crsc-action-klettres_kids.svgz diff --git a/klettres/klettres/klettres.cpp b/klettres/klettres/klettres.cpp new file mode 100644 index 00000000..031f2f3c --- /dev/null +++ b/klettres/klettres/klettres.cpp @@ -0,0 +1,527 @@ +/*************************************************************************** + * Copyright (C) 2001-2006 by Anne-Marie Mahfouf * + * annemarie.mahfouf@free.fr * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +//Qt includes +#include <qbitmap.h> +#include <qdir.h> +#include <qfile.h> +#include <qlabel.h> +#include <qpainter.h> +#include <qstring.h> +#include <qtooltip.h> +#include <qwhatsthis.h> + +//KDE includes +#include <kaction.h> +#include <kapplication.h> +#include <kcombobox.h> +#include <kconfigdialog.h> +#include <kdebug.h> +#include <klocale.h> +#include <kmenubar.h> +#include <kmessagebox.h> +#include <knuminput.h> +#include <kstandarddirs.h> +#include <kstatusbar.h> +#include <ktoolbar.h> +#include <ktoolbarbutton.h> +//Project includes +#include "klnewstuff.h" +#include "klettres.h" +#include "fontsdlg.h" +#include "timer.h" +#include "prefs.h" + +const int ID_KIDB = 100; +const int ID_GROWNB = 101; +const int ID_MENUBARB = 102; + +KLettres::KLettres() + : KMainWindow( 0, "KLettres" ) +{ + mNewStuff = 0; + m_view = new KLettresView(this); + // tell the KMainWindow that this is indeed the main widget + setCentralWidget(m_view); + //Scan for existing languages -> m_languages + findLanguages(); + Prefs::setLanguage(Prefs::defaultLanguage()); + Prefs::writeConfig(); + //MainWindow GUI: menus, tolbars and statusbar + setupActions(); + setupStatusbar(); + setupToolbars(); + //Load Settings + loadSettings(); + //Setup current language sounds + soundFactory = new SoundFactory(this, "sounds"); + setMinimumSize( QSize( 640, 550 ) ); + setMaximumSize( QSize( 640, 550 ) ); + //Start game + m_view->game(); +} + +KLettres::~KLettres() +{ +} + +void KLettres::findLanguages() +{ + m_languages.clear(); + m_languageNames.clear(); + //m_sortedNames.clear(); + //the program scans in khangman/data/ to see what languages data is found + QStringList mdirs = KGlobal::dirs()->findDirs("data", "klettres/"); + if (mdirs.isEmpty()) return; + for (QStringList::Iterator it =mdirs.begin(); it !=mdirs.end(); ++it ) { + QDir dir(*it); + m_languages += dir.entryList(QDir::Dirs, QDir::Name); + m_languages.remove(m_languages.find(".")); + m_languages.remove(m_languages.find("..")); + } + m_languages.remove(m_languages.find("pics")); + m_languages.remove(m_languages.find("data")); + m_languages.remove(m_languages.find("icons")); + m_languages.sort(); + if (m_languages.isEmpty()) return; + Prefs::setLanguages(m_languages); + Prefs::writeConfig(); + //find duplicated entries in KDEDIR and KDEHOME + QStringList temp_languages; + for (uint i=0; i<m_languages.count(); i++) + { + if (m_languages.contains(m_languages[i])>1) { + temp_languages.append(m_languages[i]); + m_languages.remove(m_languages[i]); + } + for (uint i=0; i<temp_languages.count(); i++) + { + if (i%2==0) + m_languages.append(temp_languages[i]);//append 1 of the 2 instances found + } + temp_languages.clear(); + } +//TODO TEST in FRENCH + m_languages.sort(); + //write the present languages in config so they cannot be downloaded + KConfig *config=kapp->config(); + config->setGroup("KNewStuffStatus"); + for (uint i=0; i<m_languages.count(); i++) + { + QString tmp = m_languages[i]; + if (!config->readEntry(tmp)) + config->writeEntry(tmp, QDate::currentDate().toString()); + } + //we look in $KDEDIR/share/locale/all_languages from /kdelibs/kdecore/all_languages + //to find the name of the country + //corresponding to the code and the language the user set + KConfig entry(locate("locale", "all_languages")); + const QStringList::ConstIterator itEnd = m_languages.end(); + for (QStringList::Iterator it = m_languages.begin(); it != m_languages.end(); ++it) { + if (*it == "hi-ro") + m_languageNames.append(i18n("Romanized Hindi")); + else if (*it =="lug_UG") + m_languageNames.append(i18n("Luganda")); + else + { + entry.setGroup(*it); + m_languageNames.append(entry.readEntry("Name")); + } + } + //never sort m_languageNames as it's m_languages translated + //m_sortedNames = m_languageNames; +} + +QString Prefs::defaultLanguage() +{ + //see what is the user language for KDE + QStringList defaultLanguages = KGlobal::locale()->languagesTwoAlpha(); + if (!defaultLanguages.isEmpty()) { + //scan to see if defaultLanguages[0] belongs to m_languages. If not, en is default. + int i = Prefs::self()->m_languages.findIndex(defaultLanguages[0]); + if (Prefs::self()->m_languages.contains(Prefs::language())) + return Prefs::language(); //the last language played + else if (i<1) + return "en"; //if no other + else + return Prefs::self()->m_languages[i]; //KDE default if exists + } + return QString::null; +} + + +bool KLettres::loadLayout(QDomDocument &layoutDocument) +{ + QFile layoutFile(locate("data", "klettres/"+Prefs::language()+"/sounds.xml")); + //if xml file is not found, program exits + if (!layoutFile.exists()) + { + kdWarning() << "sounds.xml file not found in $KDEDIR/share/apps/klettres/"+Prefs::language() << endl; + QString mString=i18n("The file sounds.xml was not found in\n" + "$KDEDIR/share/apps/klettres/\n\n" + "Please install this file and start KLettres again.\n\n"); + KMessageBox::information( this, mString,"KLettres - Error" ); + kapp->quit();//exit(1); + } + if (!layoutFile.open(IO_ReadOnly)) + return false; + //Check if document is well-formed + if (!layoutDocument.setContent(&layoutFile)) + { + layoutFile.close(); + return false; + } + layoutFile.close(); + + return true; +} + +void KLettres::setupActions() +{ + KAction *m_newAction = new KAction(i18n("New Sound"), "file_new", CTRL+Key_N, m_view, SLOT(game()), actionCollection(), "play_new"); + m_newAction->setToolTip(i18n("Play a new sound")); + m_newAction->setWhatsThis(i18n("You can play a new sound by clicking this button or using the File menu, New Sound.")); + new KAction( i18n("Get Alphabet in New Language..."), "knewstuff", 0, this, SLOT( slotDownloadNewStuff() ), actionCollection(), "downloadnewstuff" ); + KAction *m_playAgainAction = new KAction(i18n("Replay Sound"),"player_play", CTRL+Key_P, m_view, SLOT(slotPlayAgain()), actionCollection(), "play_again"); + m_playAgainAction->setToolTip(i18n("Play the same sound again")); + m_playAgainAction->setWhatsThis(i18n("You can replay the same sound again by clicking this button or using the File menu, Replay Sound.")); + KStdAction::quit(kapp, SLOT(quit()), actionCollection()); + + m_menubarAction = new KToggleAction(i18n("Show &Menubar"),"editclear", CTRL+Key_M, this, SLOT(slotMenubar()), actionCollection(), "menubar"); + m_menubarAction->setCheckedState(i18n("Hide &Menubar")); + m_menubarAction->setChecked(true); + m_menubarAction->setWhatsThis(i18n("You can show or hide the menubar as you wish by clicking this button.")); + + m_levelAction = new KSelectAction(i18n("L&evel"), KShortcut(), actionCollection(), "levels"); + m_levelAction->setToolTip(i18n("Select the level")); + m_levelAction->setWhatsThis(i18n("You can select the level: level 1 displays a letter and you hear it; level 2 does not display the letter, you only hear it; level 3 displays a syllable and you hear it; level 4 does not display the syllable, you only hear it.")); + + m_languageAction = new KSelectAction(i18n("&Language"), KShortcut(), actionCollection(), "languages"); + m_languageAction->setItems(m_languageNames); + + m_levelsNames.append(i18n( "Level 1" )); + m_levelsNames.append(i18n( "Level 2" )); + m_levelsNames.append(i18n( "Level 3" )); + m_levelsNames.append(i18n( "Level 4" )); + m_levelAction->setItems(m_levelsNames); + + m_themeAction = new KSelectAction(i18n("Themes"), KShortcut(), actionCollection(), "looks"); + m_themesNames.append(i18n("Classroom")); + m_themesNames.append(i18n("Arctic")); + m_themesNames.append(i18n("Desert")); + m_themeAction->setItems(m_themesNames); + m_themeAction->setToolTip(i18n("Select the theme")); + m_themeAction->setWhatsThis(i18n("Here you can change the theme for KLettres. A theme consists in the background picture and the font color for the letter displayed.")); + + m_kidAction = new KToggleAction(i18n("Mode Kid"), "klettres_kids", CTRL+Key_K, this, SLOT(slotModeKid()), actionCollection(), "mode_kid"); + m_kidAction->setWhatsThis(i18n("If you are in the Grown-up mode, clicking on this button will set up the Kid mode. The Kid mode has no menubar and the font is bigger in the statusbar.")); + m_grownupAction = new KToggleAction(i18n("Mode Grown-up"), "klettres_grownup", CTRL+Key_G, this, SLOT(slotModeGrownup()), actionCollection(), "mode_grownup"); + m_grownupAction->setWhatsThis(i18n("The Grown-up mode is the normal mode where you can see the menubar.")); + + connect(m_levelAction, SIGNAL(activated(int)), this, SLOT(slotChangeLevel(int))); + connect(m_languageAction, SIGNAL(activated(int)), this, SLOT(slotChangeLanguage(int))); + connect(m_themeAction, SIGNAL(activated(int)), this, SLOT(slotChangeTheme(int))); + + KStdAction::preferences(this, SLOT(optionsPreferences()), actionCollection()); + + setupGUI(); +} + +void KLettres::setupStatusbar() +{ + KStatusBar *st=statusBar(); + m_langLabel = new QLabel(st); + m_levLabel = new QLabel(st); + st->addWidget(m_levLabel); + st->insertFixedItem("", 1);//add a space + st->addWidget(m_langLabel); + statusBar(); +} + +void KLettres::setupToolbars() +{ + //toolbar for special characters + m_secondToolbar = toolBar("secondToolbar"); + m_secondToolbar->setBarPos(KToolBar::Bottom); +} + +void KLettres::optionsPreferences() +{ + if(KConfigDialog::showDialog("settings")) + return; + + KConfigDialog *dialog = new KConfigDialog(this, "settings", Prefs::self()); + dialog->addPage(new fontsdlg(0, "mFont"), i18n("Font Settings"), "fonts"); + //fontsdlg is the page name, mFont is the widget name, Font Settings is the page display string + //fonts is the icon + Timer *m_timer = new Timer(); + dialog->addPage(m_timer, i18n("Timer"), "clock"); + connect(dialog, SIGNAL(settingsChanged()), this, SLOT(slotUpdateSettings())); + dialog->show(); +} + +void KLettres::loadSettings() +{ + //TODO load default language + //selectedLanguage = Prefs::languageNumber(); + //m_view->selectedLanguage = selectedLanguage; + m_languageAction->setCurrentItem(Prefs::languageNumber()); + QString langString = m_languageNames[Prefs::languageNumber()]; + langString.replace("&", QString::null); + m_langLabel->setText(i18n("Current language is %1").arg(langString)); + loadLangToolBar(); + // load default level + m_levelAction->setCurrentItem(Prefs::level()-1); + m_levLabel->setText(i18n("Current level is %1").arg(Prefs::level())); + + if (Prefs::theme() == Prefs::EnumTheme::classroom) { + m_themeAction->setCurrentItem(0); + m_view->viewThemeClassroom(); + } + else if (Prefs::theme() == Prefs::EnumTheme::arctic) { + m_themeAction->setCurrentItem(1); + m_view->viewThemeArctic(); + } + else { + m_themeAction->setCurrentItem(2); + m_view->viewThemeDesert(); + } + + if (Prefs::mode() == Prefs::EnumMode::grownup) + slotModeGrownup(); + else + slotModeKid(); +} + +void KLettres::slotDownloadNewStuff() +{ + if ( !mNewStuff ) + mNewStuff = new KLNewStuff( m_view ); + mNewStuff->download(); +} + +void KLettres::slotMenubar() +{ + switch (m_menubarAction->isChecked()){ + case false: + m_menubarAction->setChecked(false); + m_menubarAction->setToolTip(i18n("Show Menubar")); + menuBar()->hide(); + break; + case true: + m_menubarAction->setChecked(true); + m_menubarAction->setToolTip(i18n("Hide Menubar")); + menuBar()->show(); + break; + } +} + +void KLettres::slotUpdateSettings() +{ + m_view->m_timer = Prefs::kidTimer(); + m_view->m_timer = Prefs::grownTimer(); + //apply the font + m_view->setFont(Prefs::font()); +} + +void KLettres::slotChangeLevel(int newLevel) +{ + Prefs::setLevel(newLevel+1); + Prefs::writeConfig(); + updateLevMenu(newLevel); + //TODO is that necessary? Change level effectively by reloading sounds + + //this is duplicated in changeLanguage() + soundFactory->change(Prefs::language()); + //update game effectively + m_view->game(); +} + +void KLettres::updateLevMenu(int id) +{ + //m_levelCombo->setCurrentItem(id); + m_levelAction->setCurrentItem(id); + m_levLabel->setText(i18n("Current level is %1").arg(Prefs::level())); +} + +void KLettres::slotChangeLanguage(int newLanguage) +{ + // Write new language in config + Prefs::setLanguage(m_languages[newLanguage]); + Prefs::writeConfig(); + // Update the StatusBar + QString langString = m_languageNames[newLanguage]; + langString.replace("&", QString::null); + m_langLabel->setText(i18n("Current language is %1").arg(langString)); + loadLangToolBar(); + // Change language effectively + bool ok = loadLayout(soundFactory->m_layoutsDocument); + if (ok) + soundFactory->change(Prefs::language()); + m_view->game(); +} + +void KLettres::slotChangeTheme(int index) +{ + switch (index) { + case 0: + m_view->viewThemeClassroom(); + break; + + case 1: + m_view->viewThemeArctic(); + break; + + case 2: + m_view->viewThemeDesert(); + break; + } +} + +void KLettres::slotModeGrownup() +{ + QPalette pal; + QColorGroup cg; + cg.setColor( QColorGroup::Background, white); + pal.setActive( cg ); + statusBar()->setPalette( pal ); + QFont f_lab( "Serif" , 10); //font for statusBar + m_levLabel->setFont(f_lab); + m_langLabel->setFont(f_lab); + m_menubarAction->setChecked(true); + m_grownupAction->setChecked(true); + m_kidAction->setChecked(false); + m_grownupAction->setToolTip(i18n("Grown-up mode is currently active")); + m_kidAction->setToolTip(i18n("Switch to Kid mode")); + m_menubarAction->setToolTip(i18n("Hide Menubar")); + slotMenubar(); + //m_secondToolbar->setIconSize(22); //causes a crash when adding/removing actions in toolbar + setMinimumSize( QSize( 640, 538 ) ); + setMaximumSize( QSize( 640, 538 ) ); + m_view->m_timer = Prefs::grownTimer(); + Prefs::setMode(Prefs::EnumMode::grownup); + Prefs::writeConfig(); +} + +void KLettres::slotModeKid() +{ + QPalette pal; + QColorGroup cg; + cg.setColor( QColorGroup::Background, white); + pal.setActive( cg ); + statusBar()->setPalette( pal ); + QFont f_lab( "Serif" , 12); //font for statusBar + f_lab.setBold(true); + m_levLabel->setFont(f_lab); + m_langLabel->setFont(f_lab); + m_menubarAction->setChecked(false); + slotMenubar(); + m_kidAction->setChecked(true); + m_kidAction->setToolTip(i18n("Kid mode is currently active")); + m_grownupAction->setToolTip(i18n("Switch to Grown-up mode")); + m_menubarAction->setToolTip(i18n("Show Menubar")); + m_grownupAction->setChecked(false); + //m_secondToolbar->setIconSize(32); + setMinimumSize( QSize( 640, 480 ) ); + setMaximumSize( QSize( 640, 480 ) ); + m_view->m_timer = Prefs::kidTimer(); + Prefs::setMode(Prefs::EnumMode::kid); + Prefs::writeConfig(); +} + +void KLettres::loadLangToolBar() +{ + m_secondToolbar->clear(); + if (m_languages[Prefs::languageNumber()]== "cs" || m_languages[Prefs::languageNumber()]== "da" || m_languages[Prefs::languageNumber()]== "sk" || m_languages[Prefs::languageNumber()]== "es" || m_languages[Prefs::languageNumber()]== "de" || m_languages[Prefs::languageNumber()]== "nds")//Dutch, English, French and Italian have no special characters + { + allData.clear(); + QString myString=QString("klettres/%1.txt").arg(m_languages[Prefs::languageNumber()]); + QFile myFile; + myFile.setName(locate("data",myString)); + if (!myFile.exists()) + { + + QString mString=i18n("File $KDEDIR/share/apps/klettres/%1.txt not found;\n" + "please check your installation.").arg(m_languages[Prefs::languageNumber()]); + KMessageBox::sorry( this, mString, + i18n("Error") ); + kapp->quit(); + } + update(); + //we open the file and store info into the stream... + QFile openFileStream(myFile.name()); + openFileStream.open(IO_ReadOnly); + QTextStream readFileStr(&openFileStream); + readFileStr.setEncoding(QTextStream::UnicodeUTF8); + //allData contains all the words from the file + allData = QStringList::split("\n", readFileStr.read(), true); + openFileStream.close(); + for (int i=0; i<(int) allData.count(); i++) { + if (!allData[i].isEmpty()) + m_secondToolbar->insertButton (charIcon(allData[i].at(0)), i, SIGNAL( clicked() ), this, SLOT( slotPasteChar()), true, i18n("Inserts the character %1").arg(allData[i]), i+1 ); + } + } +} + +void KLettres::slotPasteChar() +{ + KToolBarButton *charBut = (KToolBarButton* ) sender(); + m_view->m_letterEdit->insert(allData[charBut->id()]); +} + +QString KLettres::charIcon(const QChar & c) +{ + ///Create a name and path for the icon + QString s = locateLocal("icon", "char" + QString::number(c.unicode()) + ".png"); + + QRect r(4, 4, 120, 120); + + ///A font to draw the character with + QFont font; + font.setFamily( "Arial" ); + font.setPixelSize(120); + font.setWeight(QFont::Normal); + + ///Create the pixmap + QPixmap pm(128, 128); + pm.fill(Qt::white); + QPainter p(&pm); + p.setFont(font); + p.setPen(Qt::black); + p.drawText(r, Qt::AlignCenter, (QString) c); + + ///Create transparency mask + QBitmap bm(128, 128); + bm.fill(Qt::color0); + QPainter b(&bm); + b.setFont(font); + b.setPen(Qt::color1); + b.drawText(r, Qt::AlignCenter, (QString) c); + + ///Mask the pixmap + pm.setMask(bm); + + ///Save the icon to disk + pm.save(s, "PNG"); + + return s; +} + +#include "klettres.moc" diff --git a/klettres/klettres/klettres.desktop b/klettres/klettres/klettres.desktop new file mode 100644 index 00000000..7193c668 --- /dev/null +++ b/klettres/klettres/klettres.desktop @@ -0,0 +1,130 @@ +# KDE Config File +[Desktop Entry] +Type=Application +Exec=klettres -caption "%c" %i %m +Icon=klettres +DocPath=klettres/index.html +Comment= a KDE program to learn the alphabet +Comment[be]=Праграма KDE для вывучэння алфавіту +Comment[bg]=Учене на азбуката +Comment[bn]=বর্ণমালা শেখার জন্য একটি কে.ডি.ই. প্রোগ্রাম +Comment[bs]= KDE program za učenje abecede +Comment[ca]=Un programa per a KDE per ajudar l'aprenentatge de l'alfabet +Comment[cs]=KDE program pro výuku abecedy +Comment[csb]=Programa KDE do ùczbë alfabétu +Comment[da]=Et KDE program for at lære sig alfabetet +Comment[de]=Ein KDE-Programm zum Erlernen des Alphabets +Comment[el]=Μία εφαρμογή του KDE για την εκμάθηση του αλφάβητου +Comment[eo]=KDE programo por lerni alfabeton +Comment[es]=Un programa de KDE para aprender el alfabeto +Comment[et]=KDE tähestiku omandamise programm +Comment[eu]=Alfabetoa ikasteko KDE programa +Comment[fa]=برنامهای از KDE برای یادگیری الفبا +Comment[fi]=Ohjelma aakkosien harjoitteluun +Comment[fr]=Un programme KDE pour apprendre l'alphabet +Comment[ga]=Clár KDE chun an aibítir a fhoghlaim +Comment[gl]=Aprenda o alfabeto con KDE +Comment[he]=תוכנת KDE ללימוד האלפבית +Comment[hr]=KDE program za učenje abecede +Comment[hu]=KDE-alapú oktatóprogram az ábécé gyakorlásához +Comment[is]=KDE forrit til að læra stafrófið +Comment[it]=Un programma KDE per imparare l'alfabeto +Comment[ja]=アルファベットを学習するプログラム +Comment[ka]= KDE ანბანის შესასწავლი პროგრამა +Comment[km]= កម្មវិធីរបស់ KDE សម្រាប់រៀនអក្ខរក្រម +Comment[lt]= KDE programa raidyno mokymuisi +Comment[nb]=Et KDE-program for å lære alfabetet +Comment[nds]=En KDE-Programm för't Lehren vun dat Alfabeet +Comment[ne]= वर्ण सिक्नका लागि KDE कार्यक्रम +Comment[nl]=Een KDE-programma waarmee het alfabet geleerd kan worden +Comment[nn]=Eit KDE-program for å læra alfabetet +Comment[pl]=Program do nauki alfabetu dla KDE +Comment[pt]=Um programa do KDE para aprender o alfabeto +Comment[pt_BR]=Um programa do KDE para aprender o alfabeto +Comment[ru]=Программа для изучения алфавита +Comment[sk]=KDE program pre výuku abecedy +Comment[sl]=Program za učenje abecede +Comment[sr]=KDE програм за учење алфабета +Comment[sr@Latn]=KDE program za učenje alfabeta +Comment[sv]=Ett KDE program för att lära sig alfabetet +Comment[tr]=Alfabe öğrenme programı +Comment[uk]=Програма для вивчення алфавіту +Comment[vi]= một chương trình KDE để học bảng chữ cái +Comment[zh_CN]=帮助学习字母表的 KDE 程序 +Comment[zh_TW]= 學習字母的 KDE 程式 +Terminal=false +Name=KLettres +Name[af]=K-letters +Name[ar]=الاحرف ك +Name[bn]=কে-লেটার্স +Name[csb]=KLetters +Name[hi]=के-लेटर्स +Name[hr]=KSlova +Name[ne]=केडीई अक्षर +Name[sr]=Klettres +Name[sr@Latn]=Klettres +Name[sv]=Klettres +Name[ta]=கே +Name[tr]=Harfler +Name[ven]=Lunwalo lwa K +Name[vi]=Chữ cái K +Name[zh_TW]=KLetters +Name[zu]=IKLettres +GenericName=Learn Alphabet +GenericName[af]=Leer die Alfabet +GenericName[ar]=تعلّم الحروف +GenericName[be]=Вывучэнне алфавіту +GenericName[bg]=Изучаване на азбуката +GenericName[bn]=অক্ষর শিখুন +GenericName[br]=Deskiñ an alfabet +GenericName[bs]=Naučite abecedu +GenericName[ca]=Aprenent l'alfabet +GenericName[cs]=Výuka abecedy +GenericName[csb]=Ùczba Alfabétu +GenericName[cy]=Dysgu'r Wyddor +GenericName[da]=Lær alfabetet +GenericName[de]=Lerne das Alphabet +GenericName[el]=Εκμάθηση αλφάβητου +GenericName[eo]=Lernado de alfabeto +GenericName[es]=Aprender el alfabeto +GenericName[et]=Tähestiku õppimine +GenericName[eu]=Ikasi alfabetoa +GenericName[fa]=یادگیری الفبا +GenericName[fi]=Opettele aakkosia +GenericName[fr]=Apprentissage de l'alphabet +GenericName[ga]=Foghlaim an Aibítir +GenericName[gl]=Aprender o alfabeto +GenericName[he]=למידת האלפבית +GenericName[hi]=वर्णमाला सीखें +GenericName[hr]=Učite abecedu +GenericName[hu]=Ábécétanító +GenericName[is]=Læra stafrófið +GenericName[it]=Impara l'alfabeto +GenericName[ja]=アルファベットの学習 +GenericName[ka]=ანბანის შესწავლა +GenericName[km]=រៀនអក្ខរក្រម +GenericName[lt]=Išmokite raidyną +GenericName[mk]=Учете азбука +GenericName[ms]=Belajar Huruf +GenericName[nb]=Lær alfabetet +GenericName[nds]=Alfabeet lehren +GenericName[ne]=वर्ण सिक्नुहोस् +GenericName[nl]=Leer het alfabet +GenericName[nn]=Lær alfabetet +GenericName[pl]=Nauka alfabetu +GenericName[pt]=Aprender o Alfabeto +GenericName[pt_BR]=Aprenda o alfabeto +GenericName[ru]=Изучение алфавита +GenericName[sk]=Výuka abecedy +GenericName[sl]=Učenje abecede +GenericName[sr]=Научите азбуку +GenericName[sr@Latn]=Naučite azbuku +GenericName[sv]=Inlärning av alfabetet +GenericName[ta]=ஹாங்க்மேன் விளையாட்டு +GenericName[tg]=Омӯхтани Алифбо +GenericName[tr]=Alfabeyi Öğrenin +GenericName[uk]=Вивчення абетки +GenericName[vi]=Học Bảng chữ cái +GenericName[zh_CN]=学习字母 +GenericName[zh_TW]=學習字母 +Categories=Qt;KDE;Education;Languages; diff --git a/klettres/klettres/klettres.h b/klettres/klettres/klettres.h new file mode 100644 index 00000000..82ce62ed --- /dev/null +++ b/klettres/klettres/klettres.h @@ -0,0 +1,151 @@ +/*************************************************************************** + * Copyright (C) 2001-2006 by Anne-Marie Mahfouf * + * annemarie.mahfouf@free.fr * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + + +#ifndef KLETTRES_H +#define KLETTRES_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <kmainwindow.h> + +#include "klettresview.h" +#include "soundfactory.h" + +class QLabel; +class KToggleAction; +class KSelectAction; +class KComboBox; +class KToolBar; +class KLNewStuff; + +/** + * @short Application Main Window + * @author Anne-Marie Mahfouf <annemarie.mahfouf@free.fr> + * @version 1.4 + */ +class KLettres : public KMainWindow +{ + Q_OBJECT +public: + + ///Constructor + KLettres(); + ///Destructor + virtual ~KLettres(); + + ///Sound class + SoundFactory *soundFactory; + ///All available language codes + QStringList m_languages; + ///All available language names + QStringList m_languageNames; + /** + *Load the xml file + *@param layoutDocument the xml file + *@return bool true if the xml document is found and well formed, false otherwise + */ + bool loadLayout(QDomDocument &layoutDocument); + ///Number corresponding to the selected language: 0 is Czech, 1 is Danish, 2 is English (default), 3 is French, 4 is Dutch, 5 is Slovak + //uint selectedLanguage; + ///Action that sets up the Language menu + KSelectAction *m_languageAction; + ///Look for all languages available + void findLanguages(); + + public slots: + ///Set the new language + void slotChangeLanguage(int); + +protected: + ///Call an instance of the KLettresView widget + KLettresView *m_view; + ///Action that enables the ShowMenuBar item in the Settings menu + KToggleAction *m_menubarAction; + ///Action that sets up the Level menu + KSelectAction *m_levelAction; + ///Action that sets up the Look menu + KSelectAction *m_themeAction; + ///Action allow the Kid mode + KToggleAction *m_kidAction; + ///Action allow the Grownup mode + KToggleAction *m_grownupAction; + ///Label stating the language in the statusbar + QLabel *m_langLabel; + ///Label stating the level in the statusbar + QLabel *m_levLabel; + ///Holds the levels + QStringList m_levelsNames; + ///Holds the looks + QStringList m_themesNames; + ///Create an instance of a KToolBar + KToolBar *m_mainToolbar; + ///Second toolbar with buttons of special characters per language + KToolBar *m_secondToolbar; + ///is false when menubar button is not shown + bool menuBool; + ///Build the main window menus + void setupActions(); + ///Create and setup statusbar + void setupStatusbar(); + ///Create main and second toolbars + void setupToolbars(); + /**generates icons for the special characters toolbar + * @param c the character that will be painted on the icon + */ + QString charIcon(const QChar &c); + /** + *Update the level menu and level combobox + * @param id The id of the new level + */ + void updateLevMenu(int id); + ///Create a KNewStuff instance + KLNewStuff *mNewStuff; + ///Set the correct buttons on the second toolbar according to the language + void loadLangToolBar(); + ///All the special characters from a language file, these characters will be as buttons on the Special Characters Toolbar + QStringList allData; + + protected slots: + ///Call the Get New Stuff dialog + void slotDownloadNewStuff(); + ///Hide/Show the menubar + void slotMenubar(); + ///Set the new font and the new timers + void slotUpdateSettings(); + ///Set the new level + void slotChangeLevel(int); + ///Switch to the grown-up look, menubar is shown + void slotModeGrownup(); + ///Switch to the kid look, menubar is hidden + void slotModeKid(); + ///Change Look from menu Look + void slotChangeTheme(int); + ///Display the Configure KLettres dialog + void optionsPreferences(); + ///Load the configuration settings and apply them + void loadSettings(); + ///When a button is clicked on the characters toolbar, the corresponding character is written in the lineedit + void slotPasteChar(); +}; + +#endif // KLETTRES_H diff --git a/klettres/klettres/klettres.kcfg b/klettres/klettres/klettres.kcfg new file mode 100644 index 00000000..4769b359 --- /dev/null +++ b/klettres/klettres/klettres.kcfg @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 + http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" > + <kcfgfile name="klettresrc"/> + <group name="General"> + <entry name="Language" type="String"> + <label>Language</label> + </entry> + <entry name="Theme" type="Enum" key="myTheme"> + <label>Theme</label> + <choices> + <choice name="classroom"/> + <choice name="arctic"/> + <choice name="desert"/> + </choices> + <default>arctic</default> + </entry> + <entry name="Mode" type="Enum" key="myMode"> + <label>Mode</label> + <choices> + <choice name="kid"/> + <choice name="grownup"/> + </choices> + <default>grownup</default> + </entry> + <entry name="Level" type="Int" key="myLevel"> + <label>Difficulty level.</label> + <default>1</default> + <min>1</min> + <max>4</max> + </entry> + <entry name="KidTimer" type="Int"> + <label>Kid Timer</label> + <default>4</default> + </entry> + <entry name="GrownTimer" type="Int"> + <label>Grown-up Timer</label> + <default>2</default> + </entry> + </group> + <group name="mFont"> + <entry name="Font" type="Font" key="mFont"> + <label>Font</label> + <code>QFont defaultFont = KGlobalSettings::largeFont(); + defaultFont.setPointSize(48); + defaultFont.setBold(true); + </code> + <default code="true">defaultFont</default> + </entry> + </group> +</kcfg> diff --git a/klettres/klettres/klettresrc b/klettres/klettres/klettresrc new file mode 100644 index 00000000..ac08286b --- /dev/null +++ b/klettres/klettres/klettresrc @@ -0,0 +1,3 @@ +[KNewStuff] +ProvidersUrl=http://edu.kde.org/klettres/downloads/providers.xml + diff --git a/klettres/klettres/klettresui.rc b/klettres/klettres/klettresui.rc new file mode 100644 index 00000000..ca7680b8 --- /dev/null +++ b/klettres/klettres/klettresui.rc @@ -0,0 +1,49 @@ +<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> +<kpartgui name="klettres" version="5"> + <MenuBar> + <Menu name="file" noMerge="1"><text>&File</text> + <Action name ="play_new"/> + <Action name="play_again"/> + <Action name="downloadnewstuff"/> + <Action name="file_quit"/> + </Menu> + + <Action name="levels"/> + + <Action name="languages"/> + + <Menu name="look_mode" noMerge="1"><text>L&ook</text> + <Action name="looks" /> + <Separator/> + <Action name="mode_kid"/> + <Action name="mode_grownup"/> + </Menu> + + + <Menu name="settings" noMerge="1"><text>&Settings</text> + <Action name="menubar" /> + <Merge name="StandardToolBarMenuHandler" /> + <Action name="options_show_statusbar"/> + <Separator/> + <Action name="options_configure_keybinding"/> + <Action name="options_configure_toolbars"/> + <Action name="options_configure"/> + </Menu> + </MenuBar> + <ToolBar name="mainToolbar" noMerge="1"><Text>Main</Text> + <Action name="levels"/> + <Separator/> + <Action name="looks" /> + <Separator/> + <Action name="mode_kid"/> + <Action name="mode_grownup"/> + <Separator/> + <Action name="menubar"/> + <Separator/> + <Action name="play_again"/> + <Separator /> + <Action name="file_quit"/> + </ToolBar> + <ToolBar name="secondToolbar" position="bottom" noMerge="1"><text>Characters</text> + </ToolBar> +</kpartgui> diff --git a/klettres/klettres/klettresview.cpp b/klettres/klettres/klettresview.cpp new file mode 100644 index 00000000..f015c18d --- /dev/null +++ b/klettres/klettres/klettresview.cpp @@ -0,0 +1,225 @@ +/*************************************************************************** + * Copyright (C) 2001-2006 by Anne-Marie Mahfouf * + * annemarie.mahfouf@free.fr * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <qlabel.h> +#include <qtimer.h> +#include <qtooltip.h> +#include <qwhatsthis.h> +#include <qpainter.h> + +#include <kapplication.h> +#include <klocale.h> +#include <kstandarddirs.h> +#include <kdebug.h> +//Project headers +#include "klettres.h" +#include "klettresview.h" +#include "prefs.h" + +KLettresView::KLettresView(KLettres *parent) + : QWidget(parent) +{ + m_klettres = parent; + + setMinimumSize( QSize( 640, 480 ) ); + setMaximumSize( QSize( 640, 480 ) ); + + //lineEdit for user input + m_letterEdit = new KLineEdit( this, "line1" ); + m_letterEdit->setGeometry( QRect( 40, 310, 161, 160 ) ); + QToolTip::add( m_letterEdit, i18n( "Type the letter or syllable that you just heard" ) ); + + setFont(Prefs::font()); + //load background pics + m_grownupPicture.load(locate("data","klettres/pics/klettres_grownup.png")); + m_kidPicture.load(locate("data","klettres/pics/klettres_kids.jpeg")); + m_desertPicture.load(locate("data","klettres/pics/klettres_desert.png")); + +} + +KLettresView::~KLettresView() +{ +} + +void KLettresView::chooseSound() +{ + //If there are no sounds loaded + if (m_klettres->soundFactory->sounds ==0) + return; + //get a random sound + m_random=kapp->random()%(m_klettres->soundFactory->sounds); + //have not 2 same sounds consecutively + int temp = 0; + if (temp<0) + temp=m_random; + else + { + while (m_random==temp) + m_random=kapp->random()%(m_klettres->soundFactory->sounds); + temp=m_random; + } + + //The sound is played + kdDebug() << "m_random " << m_random << endl; + m_klettres->soundFactory->playSound(m_random); + //store letter or syllable in m_currentLetter + m_currentLetter = m_klettres->soundFactory->namesList[m_random]; + //Find the length of the syllable + m_length=m_klettres->soundFactory->namesList[m_random].length(); + kdDebug() << "syllable length " << m_length << endl; + int width; + if (m_length<3) + width = 200; + else + width = 200+(20*(m_length-2)); + update(); + m_letterEdit->setMinimumSize( QSize( width, 160 ) ); + m_letterEdit->setMaximumSize( QSize( width, 160 ) ); +} + +void KLettresView::paintEvent( QPaintEvent * ) +{ + if (Prefs::level()%2==1) { + QPainter paint(this); + paint.setFont(Prefs::font()); + QString start = i18n("Start"); + + paint.setFont(Prefs::font()); + if (Prefs::theme() == Prefs::EnumTheme::desert) { + paint.setPen( QColor(115, 50, 95)); //brown + //m_letterEdit->setPaletteForegroundColor(QColor(115, 50, 95)); + } + else if (Prefs::theme() == Prefs::EnumTheme::arctic) { + paint.setPen( Qt::white ); + //m_letterEdit->setPaletteForegroundColor(QColor(48, 75, 137)); + } + else { + paint.setPen( Qt::white ); + //m_letterEdit->setPaletteForegroundColor(Qt::black); + } + paint.drawText(50, 230, m_currentLetter); + } +} + + +void KLettresView::game() +{ + m_cursorPos = 1; + //reset everything so when you change language or levels + //it all restarts nicely + QObject::disconnect(m_letterEdit, SIGNAL(textChanged(const QString&)),this,SLOT(slotProcess(const QString&)) ); + m_letterEdit->clear(); + m_letterEdit->setCursorPosition(0); + m_letterEdit->setMaxLength(1); //fix that's in trunk + m_letterEdit->setFocus(); + chooseSound(); + QObject::connect(m_letterEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotProcess(const QString&)) ); +} + +void KLettresView::slotProcess(const QString &inputLetter) +{ + QObject::disconnect(m_letterEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotProcess(const QString&)) ); + //check if backspace + if(inputLetter.length() != m_cursorPos) + { + m_cursorPos--; + m_letterEdit->setMaxLength( m_cursorPos ); + QObject::connect(m_letterEdit, SIGNAL(textChanged(const QString&)),this,SLOT(slotProcess(const QString&)) ); + return; + } + + QChar input_character = inputLetter.at(inputLetter.length()-1); + + if (input_character.isLetter()) //(a1.at(inputLetter.length()).lower().isLetter()) + { + m_upperLetter = inputLetter.upper(); //put it in uppercase + m_letterEdit->selectAll(); + m_letterEdit->cut(); + m_letterEdit->setText(m_upperLetter); + QTimer::singleShot(m_timer*100, this, SLOT(slotTimerDone())); + } + else + { + kdDebug() << "in no char loop" << endl; + kdDebug() << "cursor " << m_cursorPos << endl; + m_letterEdit->backspace(); + QObject::connect(m_letterEdit, SIGNAL(textChanged(const QString&)),this,SLOT(slotProcess(const QString&)) ); + } +} + +void KLettresView::slotTimerDone() +{ + kdDebug() << "in timer done" << endl; + QString match = m_currentLetter.left(m_cursorPos ); + + if (match == m_upperLetter) + { + if (m_cursorPos!=m_length) //if text in lineEdit not equal to text on button + { //i.e if you still have to allow input + m_letterEdit->setMaxLength( m_cursorPos +1 ); + m_letterEdit->setCursorPosition( m_cursorPos ); + m_letterEdit->setFocus(); + m_cursorPos ++; + QObject::connect(m_letterEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotProcess(const QString&)) ); + } + else + { + game(); //another syllable + } + } + else //if not, cut it + { + m_letterEdit->backspace(); //delete the char to the left and position curseur accordingly + m_letterEdit->setFocus(); + //play sound again + m_klettres->soundFactory->playSound(m_random); + + QObject::connect(m_letterEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotProcess(const QString&)) ); + } +} + +void KLettresView::slotPlayAgain() +{ + //TODO wait for the previous sound to be payed before playing again as it won't play if the previous one was not finished + m_klettres->soundFactory->playSound(m_random); +} + +void KLettresView::viewThemeArctic() +{ + Prefs::setTheme(Prefs::EnumTheme::arctic); + Prefs::writeConfig(); + setPaletteBackgroundPixmap(m_grownupPicture); +} + +void KLettresView::viewThemeClassroom() +{ + Prefs::setTheme(Prefs::EnumTheme::classroom); + Prefs::writeConfig(); + setPaletteBackgroundPixmap(m_kidPicture); +} + +void KLettresView::viewThemeDesert() +{ + Prefs::setTheme(Prefs::EnumTheme::desert); + Prefs::writeConfig(); + setPaletteBackgroundPixmap(m_desertPicture); +} + +#include "klettresview.moc" diff --git a/klettres/klettres/klettresview.h b/klettres/klettres/klettresview.h new file mode 100644 index 00000000..80c8a95b --- /dev/null +++ b/klettres/klettres/klettresview.h @@ -0,0 +1,107 @@ +/*************************************************************************** + * Copyright (C) 2001-2006 by Anne-Marie Mahfouf * + * annemarie.mahfouf@free.fr * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#ifndef KLETTRESVIEW_H +#define KLETTRESVIEW_H + +#include <qwidget.h> +#include <qpalette.h> +#include <klineedit.h> + +class QLabel; +class KLettres; + +/** + * This class serves as the view for KLettres. It holds the GUI for the kid and grown-up looks + * and has the code to display the letter/syllable and play the sound. + * + * @short KLettres View class + * @author Anne-Marie Mahfouf <annma@kde.org> + * @version 1.1 + */ + + +class KLettresView : public QWidget +{ + Q_OBJECT +public: + /** + * Default constructor + */ + KLettresView(KLettres *parent); + + /** + * Destructor + */ + virtual ~KLettresView(); + + ///Set the Grown-up background, show menubar, show the Kid button + void viewThemeArctic(); + ///Set the Kid background pic, hide the menubar, show the Grownup button + void viewThemeClassroom(); + ///Set the Desert background pic, hide the menubar, show the Grownup button + void viewThemeDesert(); + ///The timer value i.e. the time for displaying the letters/syllables + int m_timer; + ///A Klettres object + KLettres *m_klettres; + ///The line where the user enters his/her input + KLineEdit *m_letterEdit; + +protected: + + ///The pixmaps for the themes backgrounds + QPixmap m_grownupPicture, + m_kidPicture, + m_desertPicture; + ///Palette changes wether it's kid or grown-up + QPalette pal; + QColorGroup cg; + ///cursor position in the line edit + int m_cursorPos; + ///Random number that decides on the letter/syllable and sound + int m_random; + ///Length of the syllables + int m_length; + ///Choose a sound in random and ensure that it's not the same than the previous one + void chooseSound(); + ///Current letter or syllable stored + QString m_currentLetter; + ///Current letter entered uppercase i.e. m_inputLetter.upper() + QString m_upperLetter; + ///Current letter entered + //QString m_inputLetter; NOTE: not used + ///Paint the letter/syllable in levels 1 and 3 + void paintEvent( QPaintEvent * ); + + public slots: + ///Start playing displaying a new letter/syllable, playing the associated sound + void game(); + + protected slots: + ///Play the same sound again + void slotPlayAgain(); + + void slotProcess(const QString &inputLetter); + + void slotTimerDone(); +}; + +#endif // KLETTRESVIEW_H diff --git a/klettres/klettres/klnewstuff.cpp b/klettres/klettres/klnewstuff.cpp new file mode 100644 index 00000000..c6d601ba --- /dev/null +++ b/klettres/klettres/klnewstuff.cpp @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> + * Copyright (C) 2004-2006 Anne-Marie Mahfouf <annma@kde.org> + * + This program is free software; you can redistribute it and/or + modify it under the terms of version 2 of the GNU General Public + License as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <kdebug.h> +#include <ktar.h> +#include <qdir.h> +#include <kaction.h> +#include <kapplication.h> +#include <kstandarddirs.h> +#include "klnewstuff.h" +#include "prefs.h" + +KLNewStuff::KLNewStuff( KLettresView *view ) : + KNewStuff( "klettres", view ), + m_view( view ) +{ +} + +bool KLNewStuff::install( const QString &fileName ) +{ + kdDebug(5850) << "KLNewStuff::install(): " << fileName << endl; + + KTar archive( fileName ); + if ( !archive.open( IO_ReadOnly ) ) + return false; + const KArchiveDirectory *archiveDir = archive.directory(); + KStandardDirs myStdDir; + const QString destDir =myStdDir.saveLocation("data", kapp->instanceName() + "/", true); + KStandardDirs::makeDir( destDir ); + archiveDir->copyTo(destDir); + archive.close(); + //look for languages dirs installed + m_view->m_klettres->findLanguages(); + //refresh Languages menu + //kdDebug() << "---- selected language : " << m_view->m_klettres->selectedLanguage << endl; + m_view->m_klettres->m_languageAction->setItems(m_view->m_klettres->m_languageNames); + m_view->m_klettres->slotChangeLanguage(m_view->m_klettres->m_languages.findIndex(Prefs::defaultLanguage())); + m_view->m_klettres->m_languageAction->setCurrentItem(m_view->m_klettres->m_languages.findIndex(Prefs::defaultLanguage())); + return true; +} + +bool KLNewStuff::createUploadFile( const QString &fileName ) +{ + //return mView->saveCalendar( fileName ); + return true; +} diff --git a/klettres/klettres/klnewstuff.h b/klettres/klettres/klnewstuff.h new file mode 100644 index 00000000..f7cd9803 --- /dev/null +++ b/klettres/klettres/klnewstuff.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2002 Cornelius Schumacher <schumacher@kde.org> + * Copyright (C) 2004-2006 Anne-Marie Mahfouf <annma@kde.org> + * + This program is free software; you can redistribute it and/or + modify it under the terms of version 2 of the GNU General Public + License as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KLNEWSTUFF_H +#define KLNEWSTUFF_H + +#include "knewstuff/knewstuff.h" +#include "klettres.h" + +class KLettres; + +class KLNewStuff : public KNewStuff +{ +public: + KLNewStuff( KLettresView * ); + + bool install( const QString &fileName ); + bool createUploadFile( const QString &fileName ); + + //private: + KLettresView *m_view; +}; + +#endif diff --git a/klettres/klettres/main.cpp b/klettres/klettres/main.cpp new file mode 100644 index 00000000..cb9a2368 --- /dev/null +++ b/klettres/klettres/main.cpp @@ -0,0 +1,123 @@ +/*************************************************************************** + * Copyright (C) 2001-2005 by Anne-Marie Mahfouf * + * annemarie.mahfouf@free.fr * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +/*****************************************************/ +/* Please save with utf8 encoding, thanks */ +/*****************************************************/ + +#include <kaboutdata.h> +#include <kcmdlineargs.h> +#include <kapplication.h> + +#include "klettres.h" +#include "version.h" + +static const char description[] = + I18N_NOOP("KLettres helps a very young child or an adult learning \n" + "a new language by associating sounds and \n" + "letters in this language.\n" + "13 languages are available: British, Czech, Danish, Dutch, English, French,\nGerman, Hebrew, Italian, Luganda, Romanized Hindi, Spanish and Slovak."); + +static const char version[] = "1.5.1"; + +static KCmdLineOptions options[] = + { + // { "+[URL]", I18N_NOOP( "Document to open" ), 0 }, + KCmdLineLastOption + }; + +int main(int argc, char **argv) +{ + KAboutData about("klettres", I18N_NOOP("KLettres"), KLETTRES_VERSION, description, + KAboutData::License_GPL, "(C) 2001-2006 Anne-Marie Mahfouf",0, "http://edu.kde.org/klettres", "submit@bugs.kde.org"); + about.addAuthor( "Anne-Marie Mahfouf", 0, "annma AT kde.org"); + about.addCredit("Ludovic Grossard", + I18N_NOOP("French sounds"), "grossard AT kde.org"); + about.addCredit("Geert Stams", + I18N_NOOP("Dutch sounds"), "geert AT pa3csg.myweb.nl"); + about.addCredit("Erik Kjaer Pedersen", + I18N_NOOP("Danish sounds"), "erik AT binghamton.edu"); + about.addCredit("Eva Mikulčíková", + I18N_NOOP("Czech sounds"), "evmi AT seznam.cz"); + about.addCredit("Silvia Motyčková & Jozef Říha", + I18N_NOOP("Slovak sounds"), "silviamotycka AT seznam.cz"); + about.addCredit("Robert Wadley", + I18N_NOOP("English sounds"), "robntina AT juno DOT com"); + about.addCredit("Pietro Pasotti", + I18N_NOOP("Italian sounds"), "pietro AT itopen.it"); + about.addCredit("Ana Belén Caballero and Juan Pedro Paredes", + I18N_NOOP("Spanish sounds"), "neneta AT iquis.com"); + about.addCredit("Vikas Kharat", + I18N_NOOP("Romanized Hindi sounds"), "kharat AT sancharnet.in"); + about.addCredit("John Magoye and Cormac Lynch", + I18N_NOOP("Luganda sounds"), "cormaclynch AT eircom.net"); + about.addCredit("Helmut Kriege", + I18N_NOOP("German sounds"), "h.kriege AT freenet.de"); + about.addCredit("Assaf Gorgon and Diego Iastrubni", + I18N_NOOP("Hebrew sounds"), "elcuco AT kde.org"); + about.addCredit("Lisa Kriege", + I18N_NOOP("British English sounds"), "h.kriege AT freenet.de"); + about.addCredit("Primoz Anzur", + I18N_NOOP("Icons"), "zerokode AT yahoo.com"); + about.addCredit("Renaud Blanchard", + I18N_NOOP("Background picture"), "kisukuma AT chez.com"); + about.addCredit("Robert Gogolok", + I18N_NOOP("Support and coding guidance"), "mail AT robert-gogolok.de"); + about.addCredit("Chris Luetchford", + I18N_NOOP("SVG icon"), "chris AT os11.com"); + about.addCredit("Peter Hedlund", + I18N_NOOP("Code for generating special characters' icons"), "peter.hedlund AT kdemail.net"); + about.addCredit("Waldo Bastian", + I18N_NOOP("Port to KConfig XT, coding help"), "bastian AT kde.org"); + about.addCredit("Danny Allen", + I18N_NOOP("Kids and grown-up SVG icons"), "danny AT dannyallen.co.uk"); + about.addCredit("Michael Goettsche", + I18N_NOOP("Timer setting widgets"), "michael.goettsche AT kdemail.net"); + KCmdLineArgs::init(argc, argv, &about); + KCmdLineArgs::addCmdLineOptions(options); + KApplication app; + + // see if we are starting with session management + if (app.isRestored()) + RESTORE(KLettres) + else + { + // no session.. just start up normally + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + if (args->count() == 0) + { + KLettres *widget = new KLettres; + widget->show(); + } + else + { + int i = 0; + for (; i < args->count(); i++) + { + KLettres *widget = new KLettres; + widget->show(); + } + } + args->clear(); + } + + return app.exec(); +} + diff --git a/klettres/klettres/pics/Makefile.am b/klettres/klettres/pics/Makefile.am new file mode 100644 index 00000000..a76e605d --- /dev/null +++ b/klettres/klettres/pics/Makefile.am @@ -0,0 +1,2 @@ +pics_DATA = klettres_kids.jpeg klettres_grownup.png klettres_desert.png +picsdir = $(kde_datadir)/klettres/pics diff --git a/klettres/klettres/pics/klettres_desert.png b/klettres/klettres/pics/klettres_desert.png Binary files differnew file mode 100644 index 00000000..9a78ff74 --- /dev/null +++ b/klettres/klettres/pics/klettres_desert.png diff --git a/klettres/klettres/pics/klettres_grownup.png b/klettres/klettres/pics/klettres_grownup.png Binary files differnew file mode 100644 index 00000000..57d724b5 --- /dev/null +++ b/klettres/klettres/pics/klettres_grownup.png diff --git a/klettres/klettres/pics/klettres_kids.jpeg b/klettres/klettres/pics/klettres_kids.jpeg Binary files differnew file mode 100644 index 00000000..afa0bf97 --- /dev/null +++ b/klettres/klettres/pics/klettres_kids.jpeg diff --git a/klettres/klettres/pics/menubar.png b/klettres/klettres/pics/menubar.png Binary files differnew file mode 100644 index 00000000..1f20a6da --- /dev/null +++ b/klettres/klettres/pics/menubar.png diff --git a/klettres/klettres/prefs.kcfgc b/klettres/klettres/prefs.kcfgc new file mode 100644 index 00000000..91156dab --- /dev/null +++ b/klettres/klettres/prefs.kcfgc @@ -0,0 +1,8 @@ +# Code generation options for kconfig_compiler +File=klettres.kcfg +IncludeFiles=kdebug.h +ClassName=Prefs +Singleton=true +CustomAdditions=true +Mutators=true + diff --git a/klettres/klettres/prefs_addons.h b/klettres/klettres/prefs_addons.h new file mode 100644 index 00000000..42744ffa --- /dev/null +++ b/klettres/klettres/prefs_addons.h @@ -0,0 +1,48 @@ +/*************************************************************************** + * Copyright (C) 2004 by Waldo Bastian * + * bastian@kde.org * + * Copyright (c) 2005 Anne-Marie Mahfouf <annma@kde.org> + * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + + public: +static QString defaultLanguage(); +static void setLanguages(const QStringList &languages) +{ + Prefs::self()->m_languages = languages; +} + +static void setLanguageNumber(int i) +{ + setLanguage(Prefs::self()->m_languages[i]); +} + +static int languageNumber() +{ + int i = Prefs::self()->m_languages.findIndex(language()); + if (i != -1) + return i; + i = Prefs::self()->m_languages.findIndex(defaultLanguage()); + if (i != -1) + return i; + i = Prefs::self()->m_languages.findIndex("en"); + if (i != -1) + return i; + + return 0; +} +QStringList m_languages; diff --git a/klettres/klettres/soundfactory.cpp b/klettres/klettres/soundfactory.cpp new file mode 100644 index 00000000..31f243fa --- /dev/null +++ b/klettres/klettres/soundfactory.cpp @@ -0,0 +1,148 @@ +/* ------------------------------------------------------------- + From KDE Tuberling + mailto:e.bischoff@noos.fr + ------------------------------------------------------------- */ +/* + * Copyright (C) 2001 Eric Bischoff + 2004-2006 Anne-Marie Mahfouf <annma@kde.org> + + This program is free software; you can redistribute it and/or + modify it under the terms of version 2 of the GNU General Public + License as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include <stdlib.h> + +#include <kmessagebox.h> +#include <klocale.h> +#include <kaudioplayer.h> +#include <kdebug.h> +#include <kstandarddirs.h> + +#include "soundfactory.h" +#include "soundfactory.moc" +#include "klettres.h" +#include "prefs.h" + + +SoundFactory::SoundFactory(KLettres *parent, const char *name) + : QObject(parent, name) +{ + klettres = parent; + + namesList = filesList = 0; + sounds = 0; + + bool ok = klettres->loadLayout(m_layoutsDocument); + if (ok) change(Prefs::language()); + if (!ok) loadFailure(); +} + +SoundFactory::~SoundFactory() +{ +} + +void SoundFactory::change(QString currentLanguage) +{ + //go load the sounds for the current language + bool ok = loadLanguage(m_layoutsDocument, currentLanguage); + kdDebug() << "ok " << ok << endl; + //tell the user if there are no sounds + if (!ok) loadFailure(); +} + +void SoundFactory::playSound(int mySound) +{ + QString soundFile; + + if ((uint) mySound >= sounds) return; + + soundFile = locate("data", "klettres/" + filesList[mySound]); + kdDebug() << "soundFile " << soundFile << endl; + + if (soundFile == 0) return; + + KAudioPlayer::play(soundFile); +} + +void SoundFactory::loadFailure() +{ + KMessageBox::error(klettres, i18n("Error while loading the sound names.")); +} + +bool SoundFactory::loadLanguage(QDomDocument &layoutDocument, QString currentLanguage) +{ + QDomNodeList languagesList, + alphabetList, + syllablesList, + soundNamesList; + QDomElement languageElement, + alphabetElement, + syllableElement, + soundNameElement; + QDomAttr nameAttribute, fileAttribute; + + languagesList = layoutDocument.elementsByTagName("language"); + QDomAttr codeAttribute; + //check if the sound files match current language + languageElement = (const QDomElement &) languagesList.item(0).toElement(); + codeAttribute = languageElement.attributeNode("code"); + if (currentLanguage != codeAttribute.value()) { + kdDebug() << "Fail reading language !!! " << endl; + return false; + } + else kdDebug() << "current language " << currentLanguage << endl; + //load the sounds for level 1 and 2 (alphabet) + if ((Prefs::level() == 1) || (Prefs::level() == 2)) + { + alphabetList = languageElement.elementsByTagName("alphabet"); + if (alphabetList.count() != 1) + return false; + + alphabetElement = (const QDomElement &) alphabetList.item(0).toElement(); + + soundNamesList = alphabetElement.elementsByTagName("sound"); + } + + //load the sounds for level 3 and 4 (syllables) + if ((Prefs::level() == 3) || (Prefs::level() == 4)) + { + syllablesList = languageElement.elementsByTagName("syllables"); + if (syllablesList.count() != 1) + return false; + + syllableElement = (const QDomElement &) syllablesList.item(0).toElement(); + + soundNamesList = syllableElement.elementsByTagName("sound"); + } + //Counts the number of sounds + sounds = soundNamesList.count(); + if (sounds < 1) + return false; + + namesList.clear(); + filesList.clear(); + + for (uint sound = 0; sound < sounds; sound++) + { + soundNameElement = (const QDomElement &) soundNamesList.item(sound).toElement(); + nameAttribute = soundNameElement.attributeNode("name"); + //namesList helds the names of the letter or syllable to display + namesList.append(nameAttribute.value()); + fileAttribute = soundNameElement.attributeNode("file"); + //filesList helds the names of the sound files (i.e the location of the sounds like fr/alpha/a-0.mp3) + filesList.append(fileAttribute.value()); + } + if (namesList.isEmpty()) return false; + if (filesList.isEmpty()) return false; + return true; +} + diff --git a/klettres/klettres/soundfactory.h b/klettres/klettres/soundfactory.h new file mode 100644 index 00000000..c02b26c4 --- /dev/null +++ b/klettres/klettres/soundfactory.h @@ -0,0 +1,77 @@ +/* ------------------------------------------------------------- + From KDE Tuberling + mailto:e.bischoff@noos.fr + ------------------------------------------------------------- */ + /* + * Copyright (C) 2001 + Eric Bischoff + 2004-2006 Anne-Marie Mahfouf <annma@kde.org> + + This program is free software; you can redistribute it and/or + modify it under the terms of version 2 of the GNU General Public + License as published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#ifndef _SOUNDFACTORY_H_ +#define _SOUNDFACTORY_H_ + +#include <qdom.h> + +class KLettres; + +/** + * This class manages the sounds toplay in KLettres, reading the data about the sounds + * in the sounds.xml file which is in /data. + * + * @short Sounds factory class: find and play the right sound. + * @author Anne-Marie Mahfouf <annma@kde.org> + * @version 1.1 + */ + +class SoundFactory : public QObject +{ + Q_OBJECT + +public: + + SoundFactory(KLettres *parent, const char *name); + ~SoundFactory(); + + ///Call the main instance of the program + KLettres *klettres; + ///Change the language when the user changes the language in the Languages menu + void change(QString currentLanguage); + ///Play the sound associated to int soundRef + void playSound(int ) ; + ///Number of sounds corresponding to the current language and level (alphabet or syllables) + uint sounds; + ///List of sound names + QStringList namesList; + ///List of sound files associated with each sound name + QStringList filesList; + /** + * Load the sounds of one given language + * Call that when you read the language from Config and when the language changes + * or when the level changes + */ + bool loadLanguage(QDomDocument &layoutDocument, QString currentLanguage); + ///The language document + QDomDocument m_layoutsDocument; + +private: + ///Report a load failure + void loadFailure(); + +}; + +#endif diff --git a/klettres/klettres/timer.cpp b/klettres/klettres/timer.cpp new file mode 100644 index 00000000..7ddcc20c --- /dev/null +++ b/klettres/klettres/timer.cpp @@ -0,0 +1,49 @@ +/*************************************************************************** + * Copyright (C) 2005 by Michael Goettsche * + * michael.goettsche@kdemail.net + * Copyright (C) 2006 by Anne-Marie Mahfouf * + * annma@kde.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <klocale.h> + +#include <qlabel.h> +#include <qslider.h> + +#include "timer.h" +#include "prefs.h" + + +Timer::Timer() + :timerdlg() +{ + timeGrownLabel->setText(QString::number(Prefs::grownTimer()) + " " + i18n("tenths of second")); + timeKidLabel->setText(QString::number(Prefs::kidTimer()) + " " + i18n("tenths of second")); + connect(kcfg_GrownTimer, SIGNAL(valueChanged(int)), this, SLOT(sliderValueChanged())); + connect(kcfg_KidTimer, SIGNAL(valueChanged(int)), this, SLOT(sliderValueChanged())); +} + + +void Timer::sliderValueChanged() +{ + timeKidLabel->setText(QString::number(kcfg_KidTimer->value()) + " " + i18n("tenths of second")); + timeGrownLabel->setText(QString::number(kcfg_GrownTimer->value()) + " " + i18n("tenths of second")); +} + + +#include "timer.moc" diff --git a/klettres/klettres/timer.h b/klettres/klettres/timer.h new file mode 100644 index 00000000..91785a32 --- /dev/null +++ b/klettres/klettres/timer.h @@ -0,0 +1,49 @@ +/*************************************************************************** + * Copyright (C) 2005 by Michael Goettsche * + * michael.goettsche@kdemail.net + * Copyright (C) 2006 by Anne-Marie Mahfouf * + * annma@kde.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#ifndef TIMER_H_ +#define TIMER_H_ + + +#include "timerdlg.h" + +/** + * @short Timer widget in Settings dialog + * @author Michael Goettsche <michael.goettsche@kdemail.net > + * @version 0.1 + */ + +class Timer : public timerdlg +{ +Q_OBJECT + +public: + ///Constructor + Timer(); + +protected slots: + ///When the QSlider value changes + void sliderValueChanged(); +}; + + +#endif //TIMER_H_ diff --git a/klettres/klettres/timerdlg.ui b/klettres/klettres/timerdlg.ui new file mode 100644 index 00000000..91ab486f --- /dev/null +++ b/klettres/klettres/timerdlg.ui @@ -0,0 +1,245 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>timerdlg</class> +<widget class="QWidget"> + <property name="name"> + <cstring>timerdlg</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>434</width> + <height>260</height> + </rect> + </property> + <property name="minimumSize"> + <size> + <width>350</width> + <height>0</height> + </size> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="KActiveLabel" row="0" column="0" rowspan="1" colspan="4"> + <property name="name"> + <cstring>kActiveLabel1</cstring> + </property> + <property name="text"> + <string>Set the time between 2 letters.</string> + </property> + </widget> + <widget class="QSlider" row="2" column="0" rowspan="1" colspan="4"> + <property name="name"> + <cstring>kcfg_KidTimer</cstring> + </property> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="maxValue"> + <number>10</number> + </property> + <property name="pageStep"> + <number>1</number> + </property> + <property name="value"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="tickmarks"> + <enum>Below</enum> + </property> + <property name="tickInterval"> + <number>1</number> + </property> + <property name="toolTip" stdset="0"> + <string>Set the timer (in minutes)</string> + </property> + <property name="whatsThis" stdset="0"> + <string>Only used if Use a timer is checked</string> + </property> + </widget> + <widget class="QLabel" row="1" column="0"> + <property name="name"> + <cstring>textLabel1</cstring> + </property> + <property name="text"> + <string>Kid Mode</string> + </property> + </widget> + <spacer row="1" column="1" rowspan="1" colspan="3"> + <property name="name"> + <cstring>spacer8</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>264</width> + <height>20</height> + </size> + </property> + </spacer> + <spacer row="8" column="3"> + <property name="name"> + <cstring>spacer26_2</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>25</width> + <height>16</height> + </size> + </property> + </spacer> + <spacer row="7" column="0" rowspan="1" colspan="3"> + <property name="name"> + <cstring>spacer24_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>270</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QSlider" row="6" column="0" rowspan="1" colspan="4"> + <property name="name"> + <cstring>kcfg_GrownTimer</cstring> + </property> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="maxValue"> + <number>10</number> + </property> + <property name="pageStep"> + <number>1</number> + </property> + <property name="value"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="tickmarks"> + <enum>Below</enum> + </property> + <property name="tickInterval"> + <number>1</number> + </property> + <property name="toolTip" stdset="0"> + <string>Set the timer (in minutes)</string> + </property> + <property name="whatsThis" stdset="0"> + <string>Only used if Use a timer is checked</string> + </property> + </widget> + <spacer row="5" column="2" rowspan="1" colspan="2"> + <property name="name"> + <cstring>spacer8_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>228</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QLabel" row="5" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>textLabel1_2</cstring> + </property> + <property name="text"> + <string>Grown-up Mode</string> + </property> + </widget> + <widget class="QLabel" row="7" column="3"> + <property name="name"> + <cstring>timeGrownLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + <property name="buddy" stdset="0"> + <cstring></cstring> + </property> + </widget> + <spacer row="3" column="0" rowspan="1" colspan="3"> + <property name="name"> + <cstring>spacer24_2_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>226</width> + <height>20</height> + </size> + </property> + </spacer> + <spacer row="4" column="3"> + <property name="name"> + <cstring>spacer26_2_2</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>25</width> + <height>16</height> + </size> + </property> + </spacer> + <widget class="QLabel" row="3" column="3"> + <property name="name"> + <cstring>timeKidLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + <property name="buddy" stdset="0"> + <cstring></cstring> + </property> + </widget> + </grid> +</widget> +<customwidgets> +</customwidgets> +<layoutdefaults spacing="6" margin="11"/> +<includehints> + <includehint>kactivelabel.h</includehint> +</includehints> +</UI> diff --git a/klettres/klettres/version.h b/klettres/klettres/version.h new file mode 100644 index 00000000..f9a01f27 --- /dev/null +++ b/klettres/klettres/version.h @@ -0,0 +1,28 @@ +/*************************************************************************** + * Copyright (C) 2004-2006 by Anne-Marie Mahfouf * + * annemarie.mahfouf@free.fr * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + + /** + * This file serves holds the version number of KLettres + * @author Anne-Marie Mahfouf <annma@kde.org> + * @version 1.1 + */ + #ifndef KLETTRES_VERSION +#define KLETTRES_VERSION "1.5.1" +#endif |